Linux学习-87-LNMP一键安装过程

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 Linux学习-87-LNMP一键安装过程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

17.16 LNMP安装的前期准备(LNMP一键安装包下载)

  • 手工安装 LNMP 环境,那么同样需要安装大概 10多个源码包(根据版本和功能不同而不同)。不过,现在网上非常流行的 LNMP 环境的搭建过程是采用 LNMP 一键安装包直接安装。这个一键安装包实际上就是一个事先写好的安装脚本,按照这个安装脚本,只要指定一些基本的选项,就可以完全自动安装,所以安装过程会大大简化。使用一键安装包来搭建 LNMP 环境之前还是要做一些准备工作的。

1.是否可以和LAMP环境共存:在 Linux 中其实是可以搭建 LNMPA 环境的,也就是在 Linux 中安装 Nginx、Mysql,PHP和 Apache 这样的网站服务器架构,这是结合了 LAMP 环境和 LNMP 环境各自的优点而产生的新的网站服务器架构。

  • 这次只是搭建 LNMP 架构,为将LAMP区别开来,不要在 LAMP 环境中覆盖安装 LNMP 环境,而应该使用一个完全干净的环境重新搭建 LNMP 环境,避免出现不必要的麻烦。最好使用虚拟机来测试,可以直接恢复了初始安装的快照,也可以在new一个新的虚拟机来,在新环境上测试。

  • 下载 LNMP 一键安装包:下载网站地址既然是一键安装包,所以我们就不用去下载单个的源码包了,只要在 http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz 这个地址中下载(1.0–1.9版本) LNMP 一键安装包即可,可以发现里面是安装环境所需的不同版本包。

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian…或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。比较起编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。

具有的优点:

无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成Let’sEcrypt/ZeroSSL/BuyPass免费SSL证书、支持无人值守、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常见PHP模块exif、fileinfo、ldap、bz2、sodium、imap和swoole的一键安装、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

Nginx相比起Apache来说:它是一个小巧而高效的Linux下的Web服务器软件,稳定、功能丰富、安装配置简单、低系统资源……

  • 不同版本的lnmp包含的安装包不同。但都包含了 Nginx+MySQL+PHP 基础环境,而且一键安装的也主要是这3个软件,其他的都是扩展软件包,在安装好这基础环境的情况下,再安装扩展包,安装扩展包时只需进入这解压包中,执行相应的安装脚本即可。
    在这里插入图片描述
    在这里插入图片描述

  • 我们还需要做以下一些准备工作:

    • 保证 yum 源可以使用。
    • 上传 LNMP 一键安装包到 Linux 服务器。
    • 安装 gcc 编译工具。如果没有安装 gcc 编译工具,那么 LNMP 一键安装包会尝试自动 yum 安装,但是要保证 yum 源是可用的。
    • 停用 RPM 包安装的 apache 和 MySQL。
    • 禁用防火墙和 SELinux。(一些服务器没有防火墙,视情况来进行下载)
    • 关闭 Linux 中不必要的服务。
  • 安装要求:

    • Linux下区分大小写,输入命令时请注意!
    • 不要在非常新的Linux发行版上安装旧的PHP/MySQL版本,同理不要在旧的Linux发行版上安装非常新的PHP/MySQL版本。
    • CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/Mint Linux发行版
    • 需要5GB以上可用空间,MySQL 5.7,MariaDB 10至少9GB剩余空间,MySQL8.0最新版至少25GB以上,如空间不够且是x86或x86_64架构MySQL可以选择Generic Binaries安装。
    • 需要128MB以上内存(128MB小内存VPS,Xen需有SWAP,OpenVZ至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
    • 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存,更高版本至少要2G内存!
    • 安装PHP 7及以上版本必须1G以上内存!
    • VPS或服务器必须设置好可用的yum或apt-get源并确保能正常工作,离线安装需要增加 CheckMirror=n 参数!
    • 如有通过yum或apt-get安装的MySQL/MariaDB请自行备份数据等相关文件!
    • CentOS 5、6、8,Debian 6、7、8或更低版本官网已经结束支持无法直接使用,需自行更换vault或archive源!
    • CentOS 6、8请用lnmp 1.9+版本进行安装!
    • Ubuntu 18+,Debian 9+,Mint 19+,Deepin 15.7+及所有新的Linux发行版只能使用1.7+进行安装!
    • PHP 7.1.*以下版本不支持Ubuntu 19+、Debian 10+等等非常新的Linux发行版!
    • 阿里云Ubuntu 14.04和22.04系统模版有问题不要用!!
    • PHP 7.4升级或安装必须CentOS 7+,Debian 8+,Ubuntu 16.04+且必须使用1.7+!!!
    • MySQL 8.0.23以下版本升级或安装必须CentOS 8+,Debian 9+,Ubuntu 16.04+且必须使用1.7+!!!
    • MySQL 8.0.24以上版本升级或安装必须Debian 11+,Ubuntu 20.04+,Fedora 33+且必须使用1.8+!!!

17.17 LNMP一键安装过程详解

#lnmp1.0安装脚本是./centos.sh
wget http://soft.vpser.net/lnmp/lnmp1.0.tar.gz -cO lnmp1.0.tar.gz && tar zxf lnmp1.0.tar.gz && cd lnmp1.0 && ./centos.sh install.sh
#lnmp1.9安装脚本是./centos.sh
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh lnmp



#如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。同时也支持单独安装Nginx或数据库,命令为 ./install.sh nginx 或 ./install.sh db。
17.17.1 以lnmp1.0版本为例,将这条命令详细说明一下:

1.解压缩一键安装包:把 LNMP 一键安装包保存在 /usr/local/src/ 目录下,第一步仍然是解压缩一键安装包。命令如下:

[root@CncLucZK ~]# cd /usr/local/src/
[root@CncLucZK src]# tar -zxvf lnmp1.0-full.tar.gz

2.执行安装脚本安装 LNMP 一键安装包:既然是脚本安装包,那就不需要我们一个一个手工安装了,只要执行安装脚本 centos.sh 即可自动安装(Debian 中执行脚本为 debian.sh,Ubuntu 中执行脚本为 ubuntu.sh)。命令如下:

[root@CncLucZK src]# cd lnmp1.0-full
[root@CncLucZK lnmp1.0-full]#./centos.sh
  • 回车之后安装就会继续,会看到如下界面:
==========================================================
LNMP V1.9 for CentOS/RadHat Linux VPS Written by Licess
==========================================================
A tool to auto-compile & install Nginx+MySQL+PHP on Linux
For more information please visit http://www.lnmp.org/
==========================================================
Please input the root password of mysql:
(Default password: root) : xxxxx  #设定MySQL 的密码,这里设为 123
==========================================================
Do you want to install the InnoDB Storage Engine?
(Default no,if you want please input: y , if not please press the enter button):y
#是否需要安装MySQL InnoDB,如果需要安装则输入y

Install PHP 5.3.17,Please input y
Install PHP 5.2.17,Please input n or press Enter
(Please input y or n) :y
#选择安装PHP的版本,输入y安装的是5.3.17
Install MySQL 5.5.27,Please input y
Install MySQL 5.1.60,Please input n or press Enter
(Please input y or n) :y
#选择安装MySQL的版本,输入y安装的是5.5.27
Press any key to start. . .or Press Ctrl+c to cancel #按任意鍵开始安装
  • 如果在安装过程中输入错误,则可以按“Ctrl+Backspace”组合键来进行删除。这个安装过程完全是依赖 centos.sh 脚本自动执行的,所以比 LAMP 的手工安装过程简单得多,我们只要指定一些基本的选项,就可以完成安装了。

  • 具体的安装时间要视 Linux 服务器的性能而定,可能会等待几十分钟。如果大家有兴趣,则可以查看一下 centos.sh 这个安装脚本,看看它是如何实现自动安装的。如果看到以下界面,则证明安装成功。

=========================================================
Manager for LNMP VI.0 , Written by Licess
=========================================================
LNMP is a tool to auto-compile & install Nginx+MySQL+PHP on Linux
This script is a tool to Manage status of lnmp
For more information please visit http://www.lnmp.org
Usage: /root/lnmp {start|stop|reload|restart|kill|status}
=========================================================
Nginx is runing!
php-fpm is runing!
MySQL running (12489)   [确定]
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address State
tcp 0 0 0.0.0.0:53575   0.0.0.0:*   LISTEN
tcp 0 0 0.0.0.0:3306    0.0.0.0:*   LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:*   LISTEN
tcp 0 0 0.0.0.0:80  0.0.0.0:*   LISTEN
tcp 0 0 0.0.0.0:22  0.0.0.0:*   LISTEN
tcp 0 0 127.0.0.1:631   0.0.0.0:*   LISTEN
tcp 0 0 127.0.0.1:25    0.0.0.0:*   LISTEN
tcp 0 0 :::57454    :::*    LISTEN
tcp 0 0 :::111  :::*    LISTEN
tcp 0 0 :::22   :::*    LISTEN
tcp 0 0 ::1:631 :::*    LISTEN
tcp 0 0 ::1:25  :::*    LISTEN

3.LNMP一键安装包安装的软件及具体位置:既然是一键安装,那么默认安装的软件和软件的安装位置都是事先设定好的,在安装过程中不能更改。具体安装了哪些软件及其位置:

默认安装软件 软件安装位置 软件相关配置文件名 配置文件安装位置
Nginx /usr/local/nginx/ Nginx 配置文件 /usr/local/nginx/conf/nginx.conf
默认网站目录 /home/wwwroot/delault
曰志文件 /home/wwwlogs/
MySQL /usr/local/mysql/ MySQL 配置文件 /etc/my.cnf
数据所在位置 /usr/local/mysql/var/
PHP /usr/local/php/ PHP 配置文件 /usr/local/php/etc/php.ini
php-fpm配置文件 /usr/local/php/clc/php-rpm.conf
phpMyAdmin /homc/wwwroot/dcfault/phpmyadmin/
Zend Optimizer /usr/local/zend/
  • 也就是说,LNMP 一键安装只安装了基本的 Nginx、MySQL、PHP、phpMyAdmin 和 Zend Optimizer。
17.17.2 以lnmp1.9版本为例
  • 使用XShell工具登陆服务器;

  • 登陆后运行:screen -S lnmp创建screen会话。如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装。而CentOS 8上移除了screen,需要yum install epel-release第三方工具后安装screen执行:yum install screen ;注意要提前设置好网络yum源或使用本地yum源

screen作用:SSH远程登录服务器编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止,只能重新连接,重新运行。

Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。

创建screen会话:**screen -S xxx,screen就会创建一个名字为xxx的会话。

临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

恢复screen会话:**screen -r xxx即可恢复到离开前创建的xxx会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表

xxx即为刚才的screen创建的xxx会话,目前已经暂时退出了xxx会话,所以状态为Detached,当使用screen -r xxx后状态就会变为Attached,1234是这个screen的会话的进程ID,恢复会话时也可以使用:**screen -r 1234

关闭screen的会话:执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。

远程演示:首先演示者先在服务器上执行 screen -S xxx创建一个screen会话,观众可以链接到远程服务器上执行screen -x xxx观众屏幕上就会出现和演示者同步。

参考文献:VPS侦探

  • 下载并安装LNMP一键安装包:
#进入/usr/local/src文件中
[root@VM-0-3-centos ~]# cd /usr/local/src
#下载并安装LNMP一键安装包
[root@VM-0-3-centos src]# wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh lnmp
#提示wget: command not found ,使用yum install wget 命令安装。

如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。同时也支持单独安装Nginx或数据库,命令为 ./install.sh nginx 或 ./install.sh db。如需更改网站和数据库目录、自定义Nginx参数、PHP参数模块是否安装、开启lua等需在运行 ./install.sh 命令前修改安装包目录下的 lnmp.conf 文件,详细可以查看lnmp.conf文件参数说明

  • 运行上述LNMP安装命令后,会出现如下提示:
    在这里插入图片描述

目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:./install.sh db。输入对应MySQL或MariaDB版本前面的序号,回车。

选择MySQL 5.7、8.0且是x86或x86_64架构会提示:”Using Generic Binaries [y/n]:“ 这一步是提示是否使用二进制安装,输入 y 为使用二进制安装,输入 n 为使用源码编译安装。

由于MySQL 5.7/8.0二进制包巨大,离线安装请使用编译安装方式或自行下载对应版本二进制包到安装包src目录下

  • 设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需按Backspace键)。输入后回车进入下一步,如下图所示:
  • 询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,(MySQL 无法关闭InnoDB),输入完成,回车进入下一步。

MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB完全兼容mysql,使用方法也是一样的

有的centos7已经默认安装了Mariadb,可以查看自己的有没有安装,没有安装的再进行安装,已经安装了可以不用安装也可以卸载了重装。卸载命令 yum remove mariadb-server.注意,尤其是在版本对应的关系上,一开始Mariadb和MySQL的版本是对应起来的,从MySQL的5.1—5.5版本都是如此,但是在MySQL版本发展到5.5之后,Mariadb的版本就跳到了10.0,到后面,两个产品的版本就不完全直接对应了。后续的对应关系,如下:

在这里插入图片描述
在这里插入图片描述

  • 注意:选择PHP 7+版本时需要自行确认PHP版本是否与自己的程序兼容。输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:
    在这里插入图片描述

  • 可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
    在这里插入图片描述

  • 如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache,“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。
    在这里插入图片描述

  • 再选择Apache版本
    在这里插入图片描述
    按提示输入对应版本前面的数字序号,回车。

  • 提示”Press any key to install…or Press Ctrl+c to cancel”后,按回车键确认开始安装。
    LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。
    在这里插入图片描述
    安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

  • 安装完成如果显示Nginx: OK,MySQL: OK,PHP: OK
    在这里插入图片描述
    在这里插入图片描述
    并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.9 completed! enjoy it.的话,说明已经安装成功。某些系统可能会一直卡在Install lnmp V1.9 completed! enjoy it.不自动退出,可以按Ctrl+c退出。安装完成接下来开始使用就可以了

  • 安装失败
    在这里插入图片描述

  • 浏览器访问远程地址,页面效果:
    在这里插入图片描述

  • 在设置MariaDB远程连接的时候存在两个问题:

#MariaDB安装好后远程链接设置:
#登录MariaDB,通过本地进入数据库
mysql -u root -p 
MariaDB [(none)]> use mysql;	#选择mysql库
MariaDB [mysql]> select host, user from user;	#查看user表中用户
MariaDB [mysql]> update user set host='%' where User='root';  将root用户的主机名字段改为 "%" 

#MariaDB本地修改root密码,IDENTIFIED不用带WITH mysql_native_password命令来进行远程设置
ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';
flush privileges;

#允许root用户远端访问数据库
GRANT ALL PRIVILEGES ON 数据库名.* TO 'root'@'%' IDENTIFIED BY 'new_password'; 
flush privileges;
#使用以下命令可查看是否修改成功
select * from  mysql.global_priv;
select user,authentication_string,Host from user;

#之后刷新权限表或重启mariadb服务
MariaDB [mysql]> flush privileges;

#查看MariaDB版本
MariaDB [mysql]> select @@version;
+--------------------+
| @@version          |
+--------------------+
| 10.6.8-MariaDB-log |
+--------------------+
1 row in set (0.001 sec)

[root@VM-0-3-centos lnmp1.9]# systemctl restart mariadb
#刷新权限表是在数据库中,重启服务是在外部命令行中

1.MariaDB 无法修改用户数据问题:在修改MariaDB中 mysql.user 表时,发生如下错误

View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

报错信息显示了两点:1.表/字段/方法异常或者是权限异常,若是这样可以通过授权解决。

grant all privileges on 数据库名.* to '用户名'@'%' with grant option;

​ 2.另一个时mysql.user不是表是视图问题,官网解释MariaDB从10.4版本开始,不再是一张表而是一个视图,并且MariaDB提供了一个新表mysql.global_priv来替代mysql.user,而且提供了一个新的命令:ALERT USER。

#编辑mysql.global_priv表:
UPDATE mysql.global_priv SET Host='%' WHERE User='root';
#刷新一下权限:
flush privileges;
  • mariadb默认是拒绝 root的远程登录的,远程登录所以需要开放端口号:

    • ****物理服务器:****查询3306端口是否开放
firewall-cmd --query-port=3306/tcp

没有开放则添加3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

添加端口后刷新防火墙

firewall-cmd --reload
    • **云服务器:**配置安全组入站访问规则,增加3306端口号。
      在这里插入图片描述
  • navicat测试能否连接
    在这里插入图片描述

下一篇:Linux学习-88-LNMP安装php扩展模块(eAccelerator、xCache、memcached、imageMagick和ionCube)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123704.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!