这里记录了小喵的博客的服务器的一些小的技巧,包括安装和各种参数的配置,便于以后查看。不定期更新。
1. LNMP环境的配置——oneinstack
LNMP
环境就是 Linux
、Nginx
、Mysql
和 Php
这四个的组合,由于这四个都是免费的,因此在网站搭建的时候最常使用到,另一个名词是 LAMP
,其中 A
表示的是 Apache
。但 Apache
比较占资源,所以我用的还是 Nginx
。
这里,网上应该有超多的教程,我当时配置的时候也是参考了各种教程,但最终还是放弃了,自己去配置这些东西真的好难。于是,我就把目标转向了各种集成好的环境了。
如果使用的是阿里云或者腾讯云的服务器,那么直接在应用市场上中就有配置好环境的 LNMP
。如果是自己的服务器,就可以使用 https://oneinstack.com/。这里提供的一键安装的脚本。同时 oneinstack 中,还提供了新建虚拟主机,新建FTP服务器,一键升级软件等各种超实用的功能,十分建议使用。
2. 优化php-fpm的内存占用问题
这里,我们如果使用htop命令查看各种资源占用,会发现,php-fpm
这个程序居然占用了10%的内存!明明网站是空闲的,但是内存还是被占用着。
参考 https://segmentfault.com/a/1190000010413463 中的解决方案。
打开 /usr/local/php/etc/php-fpm.conf
这个文件,该文件是 php-fpm
的配置文件。不同的版本可能安装的地方不太一样。打开之后,有这么一段配置:
pm = dynamic
pm.max_children = 16
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 2048
pm.process_idle_timeout = 10s
其中 pm = dynamic
会使得内存中永远都有 php-fpm
的进程存在,这样会很大长度的浪费内存,所以把这句改成 pm = ondemand
。变成:
pm = ondemand
pm.max_children = 16
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 2048
pm.process_idle_timeout = 10s
这样,只有在系统需要的时候,才回产生 php-fpm
的子进程。子进程会在内存中保留 pm.process_idle_timeout
这么久的时间之后退出,这里就是10s的时间。
之后重启我们的 php-fpm
,就会发现内存占用变少了很多。
# 重启php-fpm
service php-fpm restart