17.16 LNMP安装的前期准备(LNMP一键安装包下载)
1.是否可以和LAMP环境共存:在 Linux 中其实是可以搭建 LNMPA 环境的,也就是在 Linux 中安装 Nginx、Mysql,PHP和 Apache 这样的网站服务器架构,这是结合了 LAMP 环境和 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服务器软件,稳定、功能丰富、安装配置简单、低系统资源……
安装要求:
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 #按任意鍵开始安装
=========================================================
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一键安装包安装的软件及具体位置:既然是一键安装linux操作系统介绍,那么默认安装的软件和软件的安装位置都是事先设定好的,在安装过程中不能更改。具体安装了哪些软件及其位置:
默认安装软件软件安装位置软件相关配置文件名配置文件安装位置
Nginx
/usr/local/nginx/
Nginx 配置文件
/usr/local/nginx/conf/nginx.conf
默认网站目录
/home/wwwroot/delault
曰志文件
/home/wwwlogs/
MySQL
/usr/local/mysql/
MySQL 配置文件
/etc/f
数据所在位置
/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/
无
无
17.17.2 以lnmp1.9版本为例
screen作用:SSH远程登录服务器编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止,只能重新连接,重新运行。
Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念centos 远程管理,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
创建screen会话:**screen -S xxxlinux虚拟主机,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侦探
#进入/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 文件,详细可以查看。
目前提供了较多的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目录下。
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后centos 远程管理,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB完全兼容mysql,使用方法也是一样的
有的centos7已经默认安装了Mariadb,可以查看自己的有没有安装,没有安装的再进行安装,已经安装了可以不用安装也可以卸载了重装。卸载命令 yum remove mariadb-server.注意,尤其是在版本对应的关系上,一开始Mariadb和MySQL的版本是对应起来的,从MySQL的5.1—5.5版本都是如此,但是在MySQL版本发展到5.5之后,Mariadb的版本就跳到了10.0,到后面,两个产品的版本就不完全直接对应了。后续的对应关系,如下:
#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;
firewall-cmd --query-port=3306/tcp
没有开放则添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
添加端口后刷新防火墙
firewall-cmd --reload
navicat测试能否连接
下一篇:Linux学习-88-LNMP安装php扩展模块(eAccelerator、xCache、memcached、imageMagick和ionCube)