标签: mpm-event

将 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万
查看次数

(13) Apache CGI 尝试权限被拒绝

我最近升级了我的 Apache2 服务器,现在无法运行 CGI 应用程序。我的日志显示

(13) 多次尝试后权限被拒绝无法连接到cgi deamon

我知道错误消息意味着 Apache 被拒绝了对某些文件的某些权限,我对如何追踪和解决问题感到困惑。

错误消息中提到的文件真的是被阻止的文件吗?或者问题可能是由其他一些需要的文件引起的?.cgi 文件就在它一直在的位置,在 /usr/share 下。文件所有权(根)和权限(世界可读/可执行)与文件及其祖先的始终相同。SELinux 文件标签不变。

SELinux 审计日志显示没有与 Apache 或 CGI 程序相关的拒绝。如果出现 donotaudit 情况,我启用了审计,但仍然什么也没看到。我短暂地将 SELinux 切换到许可模式,但无济于事。我什至尝试在许可模式下重新启动 Apache。这并没有解决问题。

有关如何解决此问题的任何建议?我很想恢复到较旧的 Apache。

selinux apache-2.2 apache-2.4 mpm-event

5
推荐指数
1
解决办法
1万
查看次数