小编S. *_*Imp的帖子

将 apache 从 prefork 切换到 Ubuntu 16 中的事件,让 php 7 正常工作

Apache 在生产中运行缓慢。搜索了一段时间的答案后,我终于去了#apache IRC频道,专业人士让我用这个命令检查apache模式:

sudo apachectl -V
Run Code Online (Sandbox Code Playgroud)

并且惊讶地发现Server MPMprefork。他们强调说不要在生产服务器上使用 PREFORK。事实证明,Ubuntu 软件包(大概是从 Debian 继承的?)坚持在 prefork 模式下运行 apache,尽管推荐的使用 Apache 运行 PHP 的方法明确推荐了 proxy_fcgi 和 php-fpm,然后是 fcgid 并最终说你不应该使用预分叉:

为什么你不应该再将 mod_php 与 prefork mpm 一起使用

  • mod_php 一直加载到每个 httpd 进程中。即使当 httpd 提供静态/非 php 内容时,该内存也在使用中。
  • mod_php 不是线程安全的,并迫使您坚持使用 prefork mpm(多进程,无线程),这是最慢的配置

该页面还包含有关 PHP-FPM 的一些详细信息,但这似乎有点复杂和不清楚,并且似乎涉及很多手动配置。我很失望也很惊讶 Ubuntu 16 没有用于 fastCGI 模式或其他东西的包选项。

我尝试使用 a2enmod将 apache 切换到事件模式,当我尝试启动 apache 备份时,出现错误:

Apache 正在运行线程 MPM,但您的 PHP 模块未编译为线程安全的。你需要重新编译PHP

无论如何,我想知道是否有人有一些最小的分步说明,以通过尽可能依赖软件包安装程序在带有 PHP 7.0 …

php-fpm apache-2.4 php7 ubuntu-16.04 mpm-event

14
推荐指数
2
解决办法
3万
查看次数

标签 统计

apache-2.4 ×1

mpm-event ×1

php-fpm ×1

php7 ×1

ubuntu-16.04 ×1