LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Alibaba/Amazon/Mint/Oracle/Rocky/Alma/Kali/UOS/银河麒麟/openEuler/Anolis OS Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。
支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成Let's Ecrypt/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、备份等许多实用脚本。
安装前确认已经安装git命令,如提示git: command not found ,使用yum install git
或 apt-get install git
命令安装。
为防止掉线等情况,建议使用screen,可以先执行:screen -S lnmp 命令后,再执行LNMP安装命令:
git clone https://github.com/moeYuiYui/lnmp.git && cd lnmp && ./install.sh {lnmp|lnmpa|lamp}
或者从release里下载lnmp-lua-zend.tar.gz
tar -xzf lnmp-lua-zend.tar.gz && cd lnmp && ./install.sh {lnmp|lnmpa|lamp}
如断线可使用screen -r lnmp
恢复。详细安装教程参考:https://lnmp.org/install.html
以下操作需在lnmp安装包目录下执行,如lnmp2.1
lnmp.conf配置文件,可以修改lnmp.conf自定义下载服务器地址、网站/数据库目录及添加nginx模块和php编译参数;不论安装升级都会调用该文件里的设置(如果修改了默认的参数建议备份此文件);
执行:./pureftpd.sh
安装,可使用 lnmp ftp {add|list|del}
进行管理。
执行:./upgrade.sh
按提示进行选择
也可以直接带参数:./upgrade.sh {nginx|mysql|mariadb|php|phpa|m2m|phpmyadmin}
执行: ./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|apcu|imagemagick|ioncube|exif|fileinfo|ldap|bz2|sodium|imap|swoole}
以下为扩展插件安装使用说明
./addons.sh {install|uninstall} imageMagick
imageMagick路径:/usr/local/imagemagick/bin/。./addons.sh {install|uninstall} ionCube
。./addons.sh {install|uninstall} sodium
,一般微信支付之类的需要使用,PHP 7.2以下版本不支持通过lnmp.conf开启安装。./addons.sh {install|uninstall} sg
,SourceGuardian加密的PHP文件需要使用此组件解码运行。./install.sh mphp
可以安装多个PHP版本 ,只支持LNMP模式,lnmp vhost add时进行选择或使用时需要将nginx虚拟主机配置文件里的include enable-php.conf替换为 include enable-php5.6.conf 即可前面的5.6换成你刚才安装的PHP的大版本号5.* 或7.0之类的。./install.sh db
可以直接单独安装MySQL或MariaDB数据库。./install.sh nginx
可以直接单独安装Nginx。
以下工具在lnmp安装包tools目录下可拷贝到其他目录下运行./reset_mysql_root_password.sh
可重置MySQL/MariaDB的root密码。./check502.sh
可检测php-fpm是否挂掉,502报错时重启,配合crontab使用。./cut_nginx_logs.sh
日志切割脚本。./remove_disable_function.sh
运行此脚本可删掉禁用函数。无人值守命令生成工具:https://lnmp.org/auto.html
变量名 | 变量值含义 |
---|---|
LNMP_Auto | 启用无人值守自动安装 |
DBSelect | 数据库版本序号 |
DB_Root_Password | 数据库root密码(不可为空),不安装数据库时可不加该参数 |
InstallInnodb | 是否安装Innodb引擎,y 或 n ,不安装数据库时可不加该参数 |
PHPSelect | PHP版本序号 |
SelectMalloc | 内存分配器版本序号 |
ApacheSelect | Apache版本序号,仅LNMPA和LAMP模式需添加该参数 |
ServerAdmin | 管理员邮箱,仅LNMPA和LAMP模式需添加该参数 |
RHELRepo | (非必选)设为 local 时,RHEL使用本地源,不设置源为163 centos源 |
CheckMirror | (非必选)安装时不检查下载镜像,方便无网络安装 |
Bin | (非必选)MySQL 5.7-8.0/MariaDB使用二进制方式安装,y 或 n,默认使用二进制方式安装,离线默认使用源码编译安装 |
MySQL版本 | 对应序号 | PHP版本 | 对应序号 | 内存分配器 | 对应序号 | Apache版本 | 对应序号 |
---|---|---|---|---|---|---|---|
MySQL 5.1 | 1 | PHP 5.2 | 1 | 不安装 | 1 | Apache 2.2 | 1 |
MySQL 5.5 | 2 | PHP 5.3 | 2 | Jemalloc | 2 | Apache 2.4 | 2 |
MySQL 5.6 | 3 | PHP 5.4 | 3 | TCMalloc | 3 | ||
MySQL 5.7 | 4 | PHP 5.5 | 4 | ||||
MySQL 8.0 | 5 | PHP 5.6 | 5 | ||||
MySQL 8.4 | 6 | PHP 8.0 | 11 | ||||
MariaDB 5.5 | 7 | PHP 7.0 | 6 | ||||
MariaDB 10.4 | 8 | PHP 7.1 | 7 | ||||
MariaDB 10.5 | 9 | PHP 7.2 | 8 | ||||
MariaDB 10.6 | 10 | PHP 7.3 | 9 | ||||
MariaDB 10.11 | 11 | PHP 7.4 | 10 | ||||
不安装数据库 | 0 | PHP 8.1 | 12 | ||||
PHP 8.2 | 13 | ||||||
PHP 8.3 | 14 |
wget http://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -cO lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0
然后设置无人值守参数并安装:
LNMP_Auto="y" DBSelect="2" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ./install.sh lnmp
(如果缺失参数的话还是会有要求选择缺失选项的提示)。
./uninstall.sh
按提示选择即可卸载。lnmp {start|stop|reload|restart|kill|status}
lnmp nginx或/etc/init.d/nginx {start|stop|reload|restart}
lnmp mysql或/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
lnmp mariadb或/etc/init.d/mariadb {start|stop|restart|reload|force-reload|status}
lnmp php-fpm或/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
lnmp pureftpd或/etc/init.d/pureftpd {start|stop|restart|kill|status}
lnmp httpd或/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}
lnmp vhost add
lnmp vhost del
lnmp vhost list
lnmp database {add|list|edit|del}
lnmp ftp {add|list|edit|del|show}
lnmp ssl add
lnmp dnsssl {ali|cf|dp|he|gd|aws|namecheap|namesilo}
需依赖域名dns api参数名称 | 参数介绍 | 例子 |
---|---|---|
Download_Mirror | 下载镜像 | 一般默认,如异常可修改下载镜像 |
Nginx_Modules_Options | 添加Nginx模块或其他编译参数 | --add-module=/第三方模块源码目录 |
PHP_Modules_Options | 添加PHP模块或编译参数 | --enable-exif 有些模块需提前安装好依赖包 |
MySQL_Data_Dir | MySQL数据库目录设置 | 默认/usr/local/mysql/var |
MariaDB_Data_Dir | MariaDB数据库目录设置 | 默认/usr/local/mariadb/var |
Default_Website_Dir | 默认虚拟主机网站目录位置 | 默认/home/wwwroot/default |
Enable_Nginx_Openssl | Nginx是否使用新版openssl | 默认 y,建议不修改,y是启用并开启到http2 |
Enable_PHP_Fileinfo | 是否安装开启php的fileinfo模块 | 默认n,根据自己情况而定,安装启用的话改成 y |
Enable_Nginx_Lua | 是否为Nginx安装lua支持 | 默认n,安装lua可以使用一些基于lua的waf网站防火墙 |
Enable_Ngx_FancyIndex | 是否按fancyIndex模块 | 默认n,fancyIndex是一个第三方目录索引模块 |
Enable_Swap | 是否添加SWAP | 默认y,当内存不足时可提高编译安装成功概率 |
Enable_PHP_Exif | 是否添加PHP exif模块 | 默认n,更改为y即安装 |
Enable_PHP_Fileinfo | 是否添加PHP fileinfo模块 | 默认n,更改为y即安装,需1GB以上内存 |
Enable_PHP_Ldap | 是否添加PHP ldap模块 | 默认n,更改为y即安装 |
Enable_PHP_Bz2 | 是否添加PHP bz2模块 | 默认n,更改为y即安装 |
Enable_PHP_Sodium | 是否添加PHP sodium模块,PHP 7.2以下不支持lnmp.conf开启安装 | 默认n,更改为y即安装 |
Enable_PHP_Imap | 是否添加PHP imap模块 | 默认n,更改为y即安装 |