LNMP是什么?

lnmp.png

LNMP是Linux + Nginx + MySQL + PHP的全称 (国外喜欢简称为LEMP,搜英文资料需要搜LEMP),它代表着Linux下Nginx、MySQL、PHP这种网站服务器架构。同样LAMP就是Linux + Apache + MySQL + PHP的全称,使用的是Apache。相应的,还有LNMPA,就是Linux + Nginx + MySQL + PHP + Apache。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

为什么要用LNMP一键安装包

因为Nginx、MySQL、PHP编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。不会Linux的站长或Linux新手想使用Linux作为生产环境,emm......,就有点难度了。

LNMP一键安装包是一个用Linux Shell编写的可以为各种Linux系统安装

  • 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、备份等许多实用脚本。

安装

下载

下载

海外服务器可以选择下载版(不含源码安装包文件,仅有安装脚本及配置文件),国内VPS推荐完整版。

运行安装命令

若是需要无人值守安装,可以使用无人值守命令生成工具

wget http://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && ./install.sh lnmp

如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。同时也支持单独安装Nginx或数据库,命令为 ./install.sh nginx 或 ./install.sh db。

如需更改网站和数据库目录、自定义Nginx参数、PHP参数模块是否安装、开启lua等需在运行 ./install.sh 命令前修改安装包目录下的 lnmp.conf 文件,详细可以查看lnmp.conf文件参数说明

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

lnmp1.9-install-1.png

Tips: MySQL 5.6,5.7及MariaDB 10如果是编译安装必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:./install.sh db

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

如果选择MySQL/MariaDB如果有对应架构的二进制包会提示:”Using Generic Binaries [y/n]:“ 这一步是提示是否使用二进制安装,输入 y 为使用二进制安装,输入 n 为使用源码编译安装。如果没有提示说明当前架构没有对应的二进制安装包。

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

lnmp1.9-install-2.png

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

lnmp1.9-install-3.png

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

lnmp1.9-install-4.png

注意:选择PHP 7+版本时需要自行确认PHP版本是否与自己的程序兼容。

输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:

lnmp1.9-install-5.png

可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。

如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache

lnmp1.5-install-6.png

“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。

再选择Apache版本

lnmp1.9-install-7.png

按提示输入对应版本前面的数字序号,回车。

提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。 LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。

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

安装完成

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

lnmp1.9-install-success.png

并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.9 completed! enjoy it.的话,说明已经安装成功。

某些系统可能会一直卡在Install lnmp V2.0 completed! enjoy it.不自动退出,可以按Ctrl+c退出。

安装完成就可以使用了。下面我会给出总结的一些LNMP使用方法。

安装失败

lnmp1.5-install-failed.png

如果出现类似上图的提示,说明有一个或几个没安装成功表明安装失败!!

使用命令教程

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,两个是一样的。

LNMPA状态管理

  • LNMPA 1.2+状态管理:lnmp {start|stop|reload|restart|kill|status}

  • LNMPA 1.2+各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}

  • LNMPA1.1状态管理:/root/lnmpa {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}

  • PureFTPd状态管理:/etc/init.d/pureftpd {start|stop|restart|kill|status}

  • ProFTPd状态管理:/etc/init.d/proftpd {start|stop|restart|reload}

  • Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

LAMP状态管理

  • LAMP 1.2+状态管理: lnmp {start|stop|reload|restart|kill|status}

  • LAMP 1.2+各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}

来自https://lnmp.org/faq/lnmp-status-manager.html

FTP管理

lnmp ftp {add|list|del|show}to manage FTP users.

添加、删除虚拟主机以及伪静态教程:

https://lnmp.org/faq/lnmp-vhost-add-howto.html

虚拟主机命令

添加网站(虚拟主机):lnmp vhost add

列出网站(虚拟主机):lnmp vhost list

删除网站(虚拟主机):lnmp vhost del

数据库命令

添加数据库命令:lnmp database add

编辑数据库用户密码命令:lnmp database edit

删除数据库命令:lnmp database del

列出所有数据库命令:lnmp database list