博客服务器维护中的小技巧

这里记录了小喵的博客的服务器的一些小的技巧,包括安装和各种参数的配置,便于以后查看。不定期更新。

1. LNMP环境的配置——oneinstack

LNMP 环境就是 LinuxNginxMysqlPhp 这四个的组合,由于这四个都是免费的,因此在网站搭建的时候最常使用到,另一个名词是 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