|NO.Z.00062|——————————|LinuxNetwork|——|Linux&LNMP&部署脚本.V02-|
一、LNMPA安装
### --- 系统需求:
~~~ CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/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以上内存,更高版本至少要2G内存!。
~~~ 安装PHP 7及以上版本必须1G以上内存!。
~~~ VPS或服务器必须设置好可用的yum或apt-get源并确保能正常工作,
~~~ 离线安装需要增加 CheckMirror=n 参数!
~~~ Linux下区分大小写,输入命令时请注意!
~~~ 如有通过yum或apt-get安装的MySQL/MariaDB请自行备份数据等相关文件!
~~~ CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!
~~~ Ubuntu 18+,Debian 9+,
~~~ Mint 19+,Deepin 15.7+及所有新的Linux发行版只能使用1.7进行安装!
~~~ PHP 7.1.*以下版本不支持Ubuntu 19+、Debian 10等等非常新的Linux发行版!
~~~ 阿里云Ubuntu 14.04系统模版有问题不要用!!!
~~~ PHP 7.4升级或安装必须CentOS 7+,Debian 8+,Ubuntu 16.04+且必须使用1.7!!!
~~~ MySQL 8.0升级或安装必须CentOS 8+,Debian 9+,Ubuntu 16.04+且必须使用1.7!!!
~~~ LNMP一键安装包 V1.7 已经在Vultr、遨游主机、bwg、LocVPS、Linode、vps2ez、
~~~ DigitalOcean、KVMLA、景文互联、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版本以上。
### --- 安装步骤:
### --- 使用putty或类似的SSH工具登陆VPS或服务器;
~~~ 登陆后运行:screen -S lnmp
~~~ 如果提示screen: command not found 命令不存在可以执行:
~~~ yum install screen 或 apt-get install screen安装,详细内容参考screen教程。
### --- 下载并安装LNMP一键安装包:
~~~ 您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)
~~~ 或者完整版(推荐国内VPS使用,国内用户可用在下载中找国内下载地址替换),
~~~ 两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
~~~ 安装LNMP稳定版
~~~ 如需无人值守安装,请使用 无人值守命令生成工具,或查看无人值守说明教程
~~~ wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./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文件参数说明。
~~~ 如提示wget: command not found ,
~~~ 使用yum install wget 或 apt-get install wget 命令安装。
~~~ 如下载速度慢或无法下载请更换其他下载节点,请查看LNMP下载节点具体替换方法。
~~~ 运行上述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等软件及相关的组件。
~~~ 安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
### --- 安装完成
~~~ 如果显示Nginx: OK,MySQL: OK,PHP: OK
~~~ 并且Nginx、MySQL、PHP都是running,80和3306端口都存在,
~~~ 并提示安装使用的时间及Install lnmp V1.6 completed! enjoy it.的话,说明已经安装成功。
~~~ 某些系统可能会一直卡在Install lnmp V1.5 completed! enjoy it.不自动退出,
~~~ 可以按Ctrl+c退出。
~~~ 安装完成接下来开始使用就可以了,按添加虚拟主机教程,
~~~ 添加虚拟主机后可以使用sftp或ftp服务器上传网站代码,
~~~ 将域名解析到VPS或服务器的IP上,解析生效即可使用。
### --- 安装失败
~~~ 如果出现类似上图的提示,有一个或几个没安装成功表明安装失败!!
~~~ 需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,
~~~ 到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,
~~~ 并将lnmp-install.log压缩以附件形式上传到论坛,
~~~ 我们会通过日志查找错误,并给予相应的解决方法。
~~~ 默认LNMP是不安装FTP服务器的,
~~~ 如需要FTP服务器:https://lnmp.org/faq/ftpserver.html
### --- 添加、删除虚拟主机及伪静态管理
https://lnmp.org/faq/lnmp-vhost-add-howto.html
### --- eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache的安装
https://lnmp.org/faq/addons.html
### --- LNMP相关软件目录及文件位置
https://lnmp.org/faq/lnmp-software-list.html
### --- LNMP状态管理命令
https://lnmp.org/faq/lnmp-status-manager.html
### --- 仅安装数据库、Nginx
~~~ lnmp 1.5开始支持只安装MySQL/MariaDB数据库或Nginx
~~~ 增加单独nginx安装,安装包目录下运行:./install.sh nginx 进行安装;
~~~ 增加单独数据库安装,安装包目录下运行:./install.sh db 进行安装;
### --- lnmp一键安装包支持完全离线模式进行安装
~~~ CentOS系统下离线安装教程:https://www.vpser.net/manage/centos-iso-local-yum-repository.html
~~~ Debian/Ubuntu发行版下类似。
### --- 卸载lnmp一键安装包
~~~ 在lnmp安装包目录下执行:./uninstall.sh 按提示选择当前环境类型,
~~~ 回车确认,会删除lnmp相关程序组件,网站文件会保留,
~~~ 数据库目录会另外备份到 /root 目录下,如有另外需要保存的文件请在卸载前备份。
二、常见问题
### --- 常见问题(FAQ)
~~~ 常见问题关键词快速索引,也可以联系QQ 503228080 购买付费支持服务(联系请直入主题)。
### --- MySQL的root默认密码是什么?
~~~ 1.5之前版本如果安装时不输入直接回车,密码为root,否则为你输入的密码。
~~~ 1.5及之后版本为 lnmp.org#随机数字
~~~ 开始安装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,这个地方会消耗的时间比较长,多等一下就可以了。
### --- 没外网的内网或单机可以离线安装LNMP吗?
~~~ #答:
~~~ 可以,可以参考:https://www.vpser.net/manage/centos-iso-local-yum-repository.html。
### --- 安装时经常掉线怎么办?
~~~ 请参照此教程: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安装自己需要的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 i
~~~ n 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错误,也可能是这个问题引起的。
~~~ #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或域名访问网站 80或443端口
~~~ #解决方法:一般都是因为iptables引起的,可以通过yum或apt-get删除iptables,
~~~ 或/etc/init.d/iptables stop 停止iptables。
~~~ 如果想保留iptables可以按这个教程添加上80和443端口。
~~~ 如果是国内的VPS或服务器不能IP直接访问很正常,国内一般都有白名单。
~~~ 另外一些云服务商可能有另外的安全组或防火墙之类的设置。
### --- LNMP中如何添加伪静态?
~~~ LNMP伪静态教程
~~~ LNMPA中如何添加伪静态?
~~~ 直接将Apache的伪静态文件.htaccess放在网站目录下即可。
### --- 如何禁止IP访问/禁止别人域名解析到自己的IP?
~~~ #解决方法:
~~~ 这是空主机头问题 https://bbs.vpser.net/thread-1794-1-1.html
### --- 如何修改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
### --- 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 。
三、LNMPA
### --- LNMPA是什么?
~~~ 也许大家对LAMP、LNMP比较熟悉,
~~~ LAMP代表Linux下Apache、MySQL、PHP这种网站服务器架构;
~~~ LNMP代表的是Linux下Nginx、MySQL、PHP这种网站服务器架构。
~~~ LNMPA代表的是Linux下Nginx、MySQL、PHP、Apache这种网站服务器架构,
~~~ 是结合LAMP与LNMP各自的优点而产生的新的网站服务器架构。
### --- 我们为什么采用LNMPA这种架构?
~~~ 采用Linux、PHP、MySQL的优点我们不必多说。
~~~ Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,
~~~ 支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等。
~~~ Apache是一款老牌的Web服务器软件,在高并发时对队列的处理比FastCGI更成熟,
~~~ Apache的mod_php效率比php-cgi更高且更稳定、对伪静态支持好,
~~~ 不需要转换、多用户多站点权限等方面有着更好的效果……
### --- LNMPA这种架构有什么优势?
~~~ LNMPA使用Nginx作为前端服务能够更快更及时的静态页面、js、图片等,
~~~ 当客户端请求访问动态页面时由Nginx的反向代理给Apache处理,
~~~ Apache处理完再交予Nginx返回给客户端。
~~~ 采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,
~~~ 同时能够为提供更安全的多用户多站点环境。
### --- 如何安装LNMPA?
~~~ LNMPA目前只能新装无法再LNMP的基础上升级到LNMPA,
~~~ LNMPA安装教程 注意安装命令最后面的参数要改成lnmpa。(低于1G内存不建议使用LNMPA)
~~~ 当提示安装成功后即可体验LNMPA了。
### --- LNMP一键安装包 V1.6 已经在Vultr、遨游主机、bwg、
~~~ # PhotonVPS、BudgetVM、DigitalOcean、LocVPS、Linode、DiaHosting、KVMLA、
~~~ # 景文互联、RamNode、BuyVM、80VPS、快易互联、
~~~ # 腾讯云等众多VPS的CentOS 6-7、RHEL 6-7、Fedora 21-28、Debian 7-9、
~~~ # Ubuntu 10.04-18.04的32位和64位系统上测试通过(CentOS 5,Debian 6
~~~ # 及之前版本其官网已经结束支持无法使用,Debian9上只能安装PHP7.0以上版本。
~~~ 虚拟主机管理
~~~ 教程地址:http://lnmp.org/faq/lnmp-vhost-add-howto.html
### --- 升级LNMPA PHP版本
~~~ 教程地址:http://lnmp.org/faq/lnmp1-2-upgrade.html
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通