如何在 Ubuntu 16.04 上使用自定义 .ini 和 chrooted vhosts 安装 php7-fpm 和 Apache?

如何在 Ubuntu 16.04 上使用自定义 .ini 和 chrooted vhosts 安装 php7-fpm 和 Apache?

经过几次安全考虑后,我决定彻底重做共享主机上的服务器配置,因为我需要一些虚拟主机才能使用 exec 之类的功能,并且需要将一些正在运行的 Wordpress 完全隔离到具有一堆禁用功能的单个目录中。

我决定采用带有 FastCGI 的 php7.0-fpm,我希望得到一些关于下一步该做什么的指点。

我已经设法通过以下方式运行 FPM/FastCGI:

sudo apt-get remove libapache2-mod-php7.0

sudo apt install php7.0-fpm
sudo a2enconf php7.0-fpm
sudo a2dismod php7.0

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event alias 

sudo apt install libapache2-mod-fastcgi
sudo a2enmod fastcgi proxy_fcgi

重启apachesudo systemctl restart apache2.service 重启php-fpmsudo systemctl restart php7.0-fpm.service

到目前为止,一切运行良好,phpinfo() 显示 API:FPM/FastCGI,我的脚本已提供服务,现在到了困难的部分,缺少文档或者我不知道该 Google 什么:

  1. 如何将单个虚拟主机 chroot 到其/var/www/example.com目录中,以便使用大部分 FPM 配置?我正在寻找干净的标准方法,这样我就可以编写脚本,而无需进行重大黑客攻击。
  2. 在自己的用户下运行每个虚拟主机的程序是什么?我可以使用一些巧妙的模块自动执行该操作吗?还是我必须手动创建用户,将其插入配置文件并以正确的方式更改其文件?我甚至不确定我是否问得对。
  3. 如何为每个虚拟主机创建单独的 .ini 文件?您的策略是什么?这些文件应该放在哪里以便于维护备份,您在生产中使用什么命名约定?

欢迎任何其他指示,也欢迎提供使用 Nginx 的 php 版本 7 的最新文档链接,我了解 apache.org 文档及其旧 wiki,但 php.net 上的 FastCGI 和官方 FPM 文档目前对我来说还不够,只有谷歌是我在绝望时刻的朋友。

相关内容