我写了你提到的那篇文章。以下是我对您的问题的看法,除非您要设置共享托管环境。
- 如果您想使用 APC,也不是。Suhosin:我相信 Suhosin 对现代版本的 PHP 的支持是不稳定的,如果它完全可用的话。
- 如果您想使用 SUexec 或 SUPHP,也不是。如果您使用的是 PHP-FPM APC 是可靠且广泛使用的,我没有使用 Xcache 的经验。APC 是 EOL,因为 PHP 从(我认为)5.5 开始附带它自己的 opcache。*
- 如果您打算使用 CGI,请远离普通 CGI,并使用 FastCGI 或 PHP-FPM。*
*虽然您可以在 FastCGI 中使用 APC 等,但与使用 PHP-FPM 的相同设置相比,您将使用相当多的内存,此外,如果您想使用 APC 用户缓存,通常不建议使用其他任何东西比 PHP-FPM 或 mod_php。将 APC 等与普通 CGI 一起使用是不行的。
一些背景:
- PHP-FPM : PHP FastCGI 进程管理器。
- mod_fastcgi:用于与 PHP-FPM 通信的第三方 Apache 模块。
- mod_fcgi:官方 Apache FastCGI 实现,上次我检查它无法完成在 Apache 2.2 中使用 PHP-FPM 所需的操作。
总的来说,我想说避免普通的 CGI,FastCGI 是为了弥补 CGI 的缺点而开发的,而 PHP-FPM 是为了充分利用 FastCGI 的。
我的 2c:如果您希望托管的任何网站无论如何都与任务关键/收入/客户相关,我会说以您目前的专业水平,我建议使用托管服务器,或者至少预安装并配置堆栈。我不想成为吓唬人,但如果一两天的停机时间无法在没有可能产生严重影响的情况下被吸收,最好在出现问题时将压力转移给相关公司。
如果您确实决定自己做这一切,我会说您需要在以下方面获得一些经验:
- 在离线服务器上组装和拆分您选择的操作系统。
- 使用个人或“游戏”站点运行一段时间的实时服务器。
- 能够在压力下从内存中排除、修复和重新配置大部分配置。
- 安全。服务器和网站确实被黑了。
- 备份,备份,备份。在最坏的情况下,您可以减少将备份从服务器以外的地方恢复到其他地方并更改 DNS 指向的位置。