libphp.so 的问题 | 80 比索 | Red Hat 7.9 上的 HTTPD 2.4.56

问题描述 投票:0回答:1

你好,我在 Red Hat 7.9 和 httpd 编译时遇到了来自 Remi 的 php80 问题。

每当在 httpd.conf 上加载 PHP8 模块(LoadModule php_module modules/libphp.so)时,我都会收到错误消息。

$>httpd/bin/httpd -k start

[Wed Mar 22 19:25:35.143647 2023] [php:crit] [pid 45645:tid 140029428127616] Apache 正在运行线程 MPM,但您的 PHP 模块未编译为线程安全的。你需要重新编译PHP AH00013:预配置失败

$>/app/httpd/bin/httpd -M
核心模块(静态)
so_module(静态)
http_module(静态)
mpm_worker_module(静态)
authn_file_module(共享)
authn_core_module(共享)
authz_host_module(共享)
authz_groupfile_module(共享)
authz_user_module(共享)
authz_core_module(共享)
access_compat_module(共享)
auth_basic_module(共享)
reqtimeout_module(共享)
filter_module(共享)
mime_module(共享)
log_config_module(共享)
env_module(共享)
headers_module(共享)
setenvif_module(共享)
version_module(共享)
unixd_module(共享)
status_module(共享)
autoindex_module(共享)
dir_module(共享)
alias_module(共享)


我尝试使用另一个安装(CentOS7)中的另一个 libphp.so,从 yum 安装的 php80 和 httpd。那个有效...

php apache redhat
1个回答
0
投票

EL-7 很旧,非常老(~9 年)并且接近它的生命终点(~1 年)

所以我衷心推荐使用现代发行版来获得现代功能,例如 PHP 8

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

mod_php 仅在 NTS 中可用(在 RPM 中),ZTS 构建(线程安全)不可用,因为引发了太多问题(段错误),因此几乎无法支持。

请参阅PHP 文档中的警告

你有2种方式

1/ 在“prefork”模式下切换 httpd 以便能够使用 mod_php

注意:mod_php 仅设计用于默认系统 httpd 版本 2.4.6

2/ 在“事件”模式下使用 httpd 和 php-fpm

php-fpm 适用于 httpd(任何版本)、nginx 和其他一些网络服务器

为此,您可以阅读PHP配置技巧

注意事项:

EL-8 现在默认使用 php-fpm(如果切换到 prefork,mod_php 仍然可用)

EL-9 只提供 php-fpm

© www.soinside.com 2019 - 2024. All rights reserved.