linux学习笔记 / LNMP一键安装 · 2022年2月5日 0

LNMP一键建站脚本自动安装

LNMP一键建站脚本,这里指的是lnmp.org的一个用Linux Shell编写的在Linux VPS或独立服务器上安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序,支持Nginx和Apache。

LNMP一键建站脚本一直是我们建站的首选Nginx/MySQL/PHP一键安装包,脚本每年会有一次大的改版更新,会加入更新的Nginx和PHP版本,以及增加相应的功能。就使用体验来看,LNMP一键建站脚本参考文档也非常地丰富,自定义功能很多,适合用于正式的生产环境。

一、LNMP一键建站脚本介绍

目前最新稳定版本LNMP为1.8,安装前需要注意以下几点:

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

LNMP一键安装包 V1.8 已经在Vultr遨游主机搬瓦工LocVPSLinodevps2ezDigitalOceanKVMLA景文互联BuyVM狗云80VPS腾讯云等众多VPS的CentOS 6-8、RHEL 6-8、Fedora 21-32、Debian 7-10、Ubuntu 10.04-20.04等众多Linux发行版的32位和64位系统上测试通过(CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用,Debian9上Apache需选2.4.26版本以上。

二、安装命令

wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp

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

如提示wget: command not found ,使用yum install wget 或 apt-get install wget 命令安装。

运行上述LNMP安装命令后,会出现如下提示:

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

输入对应MySQL或MariaDB版本前面的序号,回车进入下一步.

设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步,如下图所示:

询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,(MySQL 5.7+版本无法关闭InnoDB),输入完成,回车进入下一步。

注意:选择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等软件及相关的组件。

安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

3、安装完成


如果显示Nginx: OK,MySQL: OK,PHP: OK

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

lnmp安装视频

4、安装失败


如果出现类似上图的提示,有一个或几个没安装成功表明安装失败!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,通过lnmp-install.log日志查找错误,并查找相应的解决方法。

5、配置缓存

LNMP一键建站脚本默认没有安装eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache,如果用于Wordpress,一般是建议安装Memcached、opcache、Redis这三个,有利于提升PHP的运行效率。

执行命令:./addons.sh,就可以看到安装选项了。

6、升级LNMP

如果你想升级Nginx、PHP、Mysql,可以使用bash upgrade.sh命令。

7、LNMP状态管理命令

日常使用lnmp需要知道的一些基本命令:

LNMP 1.2+状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2+各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Redis状态管理: /etc/init.d/redis {start|stop|restart|kill}

多PHP版本状态管理:/etc/init.d/php-fpm5.5 {start|stop|quit|restart|reload|logrotate} 前面5.5为对应的PHP版本,其他版本自行替换。

如重启LNMP,1.2+输入命令:lnmp restart 即可;单独重启mysql:/etc/init.d/mysql restart 也可以 lnmp mysql restart ,两个是一样的。

8、基本路径

使用LNMP你还需要知道网站的路径、Nginx与PHP等配置文件路径,以便于自己以后进行调整和修改。

LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
多PHP版本目录 : /usr/local/php5.5/ 其他版本前面5.5的版本号换成其他即可
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/

LNMP相关配置文件位置
Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf 1.3及更高版本:/usr/local/pureftpd/etc/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf

LNMPA相关目录文件位置
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
Apache默认虚拟主机配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件名称:/usr/local/apache/conf/vhost/域名.conf

lnmp.conf 配置文件参数说明

nmp.conf文件位于lnmp安装包目录下