技术

LNMP一键安装

转自 官网 https://lnmp.org

统需求:

  • CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版
  • 需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
  • 需要128MB以上内存(如果为128MB的小内存VPS,Xen的需要有SWAP,OpenVZ的至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
  • 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存!
  • VPS或服务器必须已经联网,且必须设置的是网络源不能是光盘源,同时VPS/服务器 DNS要正常!
  • Linux下区分大小写,输入命令时请注意!
  • CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!
LNMP一键安装包 V1.4 已经在Vultr遨游主机搬瓦工PhotonVPSOneAsiahost新加坡VPSBudgetVMDigitalOceanLocVPSLinodeDiaHostingKVMLA景文互联RamNodeBuyVM80VPS快易互联阿里云等众多VPS的CentOS 6-7、RHEL 6-7、Fedora 21-23、Debian 7-9、Ubuntu 10.04-17.04的32位和64位系统上测试通过(CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用,Debian9上Apache需选2.4.26版本以上,深度/deepin只能使用服务器版,桌面版勿用!!)。

安装步骤:
1、使用putty或类似的SSH工具登陆VPS或服务器;

登陆后运行:screen -S lnmp

如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程

2、下载并安装LNMP一键安装包:

您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内用户可用在下载中找国内下载地址替换),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。深度/deepin只能使用服务器版,桌面版请勿安装!!

安装LNMP稳定版
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpalamp即可。如需更改网站和数据库目录先修改安装包目录下的 lnmp.conf 文件。

如下载速度慢请更换其他下载节点,详情请看下载页面LNMP下载节点具体替换方法

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

目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择

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


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

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

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

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

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

如果是LNMPA或LAMP的话还会提示“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。

再选择Apache版本

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

提示”Press any key to install…or Press Ctrl+c to cancel”后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。

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

3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK

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

安装完成接下来开始使用就可以了,按添加虚拟主机教程,添加虚拟主机后可以使用sftpftp服务器上传网站代码,将域名解析到VPS或服务器的IP上,解析生效即可使用。

4、安装失败

如果出现类似上图的提示,有一个没安装成功表明安装失败!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。


默认LNMP是不安装FTP服务器的,如需要FTP服务器:https://lnmp.org/faq/ftpserver.html

5、添加、删除虚拟主机及伪静态管理
https://lnmp.org/faq/lnmp-vhost-add-howto.html

6、eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache的安装
https://lnmp.org/faq/addons.html

7、LNMP相关软件目录及文件位置
https://lnmp.org/faq/lnmp-software-list.html

8、LNMP状态管理命令
https://lnmp.org/faq/lnmp-status-manager.html

LNMP常见问题(FAQ)

  • MySQL的root默认密码是什么?
    如果安装时不输入直接回车,密码为root,否则为你输入的密码。
  • 开始安装LNMP时,提示error: package httpd is not installed , error: package php is not installed ,error: package mysql is not installed
    这个不是错误信息,这个是检查系统环境,将原系统中的php、apache、mysql删除,请不必在意这个问题。
  • 安装LNMP时,停在 make[3]: Leaving directory `/root/lnmp0.4-full/mysql-5.1.44/mysql-test 不动。
    答:MySQL编译测试mysql,这个地方会消耗的时间比较长,多等一下就可以了。
  • 安装时经常掉线怎么办?
    请参照此教程:https://www.vpser.net/manage/run-screen-lnmp.html
  • 安装完LNMP后出现502 Bad Gateway
    解决方法:http://bbs.vpser.net/thread-1144-1-1.html
  • 如何添加删除域名(虚拟主机)?
    解决方法:https://lnmp.org/faq/lnmp-vhost-add-howto.html
  • 如何修改安装默认虚拟主机的域名?
    修改方法:编辑/usr/local/nginx/conf/nginx.conf 查找server_name,修改为你想设置的域名,保存,执行:/usr/local/nginx/sbin/nginx -s reload 重启即可。
  • 如果忘记MySQL root密码,如何重设密码?
    LNMP脚本是提供重置mysql root密码的工具的,请参考教程:https://lnmp.org/faq/lnmp-1-2-tools.html
  • 如何给php安装自己需要的模块?
    解决方法:https://www.vpser.net/manage/lnmp-php-install-ext.html
  • 如何添加自定义404错误页面?
    解决方法:https://bbs.vpser.net/thread-2175-1-1.html
  • 如何启动关闭Nginx/PHP-FPM/MySQL等程序?
    具体请看:https://lnmp.org/faq/lnmp-status-manager.html
  • 网站目录及各种文件都分布在哪?
    具体请看:https://lnmp.org/faq/lnmp-software-list.html
  • MySQL/MariaDB无法远程连接,如何开启?
    为了安全LNMP默认是禁止远程连接的,开启方法:https://bbs.vpser.net/thread-13563-1-1.html
  • Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/***/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/***/public/:/tmp/:/proc/) in /home/wwwroot/***/public/index.php on line 22类似错误如何解决?我想读取网站目录以外的目录,如何关闭/修改LNMP/LNMPA/LAMP的放跨目录设置?
    发生该类错误一般都是在Thinkphp、CI、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以需要将防跨目录访问的设置去掉,参考 https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini 进行设置,有时候这些框架类的程序也可能会提示500错误,也可能是这个问题引起的。
  • 安装完Pureftpd,用创建的ftp帐号链接显示530验证错误。
    解决方法:530 验证错误应该是mysql链接信息错误引起的,检查一下/usr/local/pureftpd/pureftpd-mysql.conf  和/home/wwwroot/ftp/config.php 中的mysql链接信息和mysql数据库中的信息是否一致。
  • MySQL启动错误:[Warning] ‘–skip-locking’ is deprecated and will be removed in a future release. Please use ‘–skip-external-locking’ instead. <解决方法:https://bbs.vpser.net/thread-1844-1-1.html
  • 如何开启IMAP模块?
    解决方法:https://bbs.vpser.net/thread-1150-1-1.html
  • IPv6服务器环境下lnmp的设置及注意事项
    请参考:https://www.vpser.net/build/nginx-lnmp-ipv6.html
  • 如何升级Nginx/PHP/MySQL/MariaDB版本?
    请参考:https://lnmp.org/faq/lnmp1-2-upgrade.html
  • 安装好后,端口正常,Ping正常,但是无法通过IP或域名访问网站
    解决方法:一般都是因为iptables引起的,可以通过yum或apt-get删除iptables,或/etc/init.d/iptables stop 停止iptables。如果想保留iptables可以按这个教程添加上80端口。如果是国内的VPS或服务器不能IP直接访问很正常,国内一般都有白名单。
    另外服务商可能有另外防火墙或者安全组设置。
  • LNMP中如何添加伪静态?
    LNMP伪静态教程
  • LNMPA中如何添加伪静态?
    直接将Apache的伪静态文件.htaccess放在网站目录下即可。
  • 如何修改Pureftpd管理界面的登录密码?
    解决方法:https://bbs.vpser.net/thread-2038-1-1.html
  • Pureftpd目录的文件数限制如何解除?
    解决方法:https://bbs.vpser.net/thread-3509-1-2.html
  • 如何确认Memcached已经安装成功?
    解决方法:https://bbs.vpser.net/thread-6203-1-1.html
  • 升级到PHP 5.3.* 版本后为什么探针显示不支持Zend Optimizer了?
    答:PHP 5.3.* 之后的版本里Zend Optimizer已经改名为Zend Guard Loader,虽然探针无法查到,可以在phpinfo里看到,需要Zend Optimizer的程序也是可以正常运行的,不需要担心。
  • 如何更改网站的存放目录和MySQL的数据库存放目录?
    如果还没开始安装直接修改LNMP安装包目录里lnmp.conf配置文件即可。
  • 安装好LNMP后,如何更改网站的存放目录和MySQL的数据库存放目录?
    网站存放目录的更改只需要修改对应虚拟主机的配置文件,将里面的root 后的目录改成新的目录,然后执行:cp -a 老目录 新目录,chown www:www -R 新目录。
    (LNMP1.2的话还需要修改网站目录下的.user.ini 文件里的目录,参考https://lnmp.org/faq/lnmp-vhost-add-howto.html 末尾“其他事项”的说明。)
    MySQL目录的更改,首先需要停掉mysql服务器/etc/init.d/mysql stop,下面新目录以/data/mysql/ 为例,然后cp -a /usr/local/mysql/var/* /data/mysql/,再chown mysql:mysql -R /data/mysql/ 下面再修改/etc/my.cnf ,查找[mysqld] ,在下面加入datadir = /data/mysql/ 保存,如果开启了innodb还需要修改innodb_data_home_dir 和innodb_log_group_home_dir为新的/data/mysql,启动mysql。
  • LNMP 0.9禁用了部分存在危险的PHP函数,我想开启,怎么操作?
    答:修改/usr/local/php/etc/php.ini 查找disable_functions 将后面要使用的函数删掉,保存,然后执行:/etc/init.d/php-fpm restart 重启后即可。
  • LNMP 0.9 DiscuzX 通信失败或通过Socket连接SMTP无法发送邮件或wordpress Akismet 无法工作问题的解决方法?
    解决方法:https://bbs.vpser.net/thread-7649-1-1.html
  • MySQL无法启动,如下启动信息:Starting MySQL…………?
    解决方法:大部分是当前硬盘或分区空间不足,具体看错误信息/usr/local/mysql/var/主机名.err 的日志,清理日志信息的话参考:https://bbs.vpser.net/thread-8393-1-1.html
  • LNMP 下如何安装pear?
    解决方法:参考 https://bbs.vpser.net/thread-8721-1-1.html
  • LNMP下如何限制Nginx每个IP的连接数和速度?
    解决方法:参考 https://bbs.vpser.net/thread-3017-1-1.html
  • LNMP优化教程
    解决方法:参考 https://bbs.vpser.net/thread-8914-1-1.html
  • 安装时卡在Starting php-fpm如何解决?
    在一些系统下php 5.2版本有问题,可以直接按Ctrl+C后运行./upgrade_php.sh 升级php至升级php到5.3.27或更高版本
  • LNMP模式下如何开启PHP错误日志?访问网站提示500错误如何解决? 500错误首先就需要先开启php错误日志,通过php错误日志来排错。
    LNMP下的错误需要编辑 /usr/local/php/etc/php-fpm.conf 加上
    php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log
    php_admin_flag[log_errors] = on
    或在/usr/local/php/etc/php-fpm.conf里设置,加上catch_workers_output = yes,错误信息就会记录到php-fpm.conf里error_log设置的文件里。 上述两种方法都行,重启php-fpm生效 同理php.ini里的display_errors也是需要在php-fpm.conf里设置的,加上php_flag[display_errors] = On就开启了。 有时可能错误日志文件不自动创建,可以执行:touch /usr/local/php/var/log/php_errors.log && chown www:www /usr/local/php/var/log/php_errors.log
  • LNMPA或LAMP模式下如何开启PHP错误日志?
    LAMP和LNMPA下开启错误日志的方法是:编辑 /usr/local/php/etc/php.ini 查找;error_log 加上 error_log = /usr/local/php/var/log/php_errors.log 然后重启apache生效。
    有时候上面设置可能无法记录下日志,可以尝试设置为 error_log = syslog 这样就会输出到系统日志里,一般是 /var/log/messages 日志文件中会记录php报错的相关信息。
  • php-fpm如何开启慢日志?
    编辑/usr/local/php/etc/php-fpm.conf 里面有个request_slowlog_timeout参数,后面设置多少秒就是执行超过设置时间的就会被记录下来,slowlog = 后面为日志文件保存目录。
    慢日志一般在/usr/local/php/var/log/slow.log 。

问题反馈及更多常见问题
请访问:https://bbs.vpser.net/search.php使用搜索功能搜索相关关键词。
或访问:https://bbs.vpser.net/forum-25-1.html发帖提问,请问前请确保已经在论坛https://www.vpser.net搜索过没有相关的解决方法再发帖。