【问题标题】:What's the httpd_module name so that Apache/Httpd works with PHP 5.5?Apache/Httpd 与 PHP 5.5 一起使用的 httpd_module 名称是什么?
【发布时间】:2016-10-13 04:21:02
【问题描述】:

我在使用 Chef 的 CentOS 机器上安装 PHP 5.5 时遇到了一些问题。我终于可以安装它了,但是当我访问 index.php 时,它只需下载一个包含内容的文件。

我猜这是因为 Apache(技术上是 Httpd,因为我使用的是 CentOS)没有安装/配置 mod_php

我使用 php cookbook 安装了 PHP 并带有以下软件包:

# ... code to add webtatic repository to yum

node.set['php']['packages'] = ['php55w', 'php55w-devel', 'php55w-cli', 'php55w-snmp', 'php55w-soap', 'php55w-xml', 'php55w-xmlrpc', 'php55w-process', 'php55w-mysqlnd', 'php55w-pecl-memcache', 'php55w-opcache', 'php55w-pdo', 'php55w-imap', 'php55w-mbstring']

如果我是对的,上面的代码没有安装mod_php。以下是我的网络厨师食谱:

httpd_service 'apps' do
    mpm 'prefork'
    action [:create, :start]
    listen_ports ['80', '443']
end

# ... code for virtual hosts

# Install the mod_php Apache module.
# httpd_module 'php' do
#    instance 'apps'
# end

我在使用 PHP 5.4 时取消了 httpd_module 'php' 指令的注释。用于 PHP 5.5 的 http_module 的正确名称是什么?

【问题讨论】:

    标签: php apache centos chef-infra chef-recipe


    【解决方案1】:

    您似乎找到了一个使用 Debian 路线并将他们的软件包设置为 php55- 而不是 php- 的人。如果您想从 5.5 升级到任何更高版本,这会让事情变得很痛苦,因为您必须卸载这些并安装新版本(即php70-)。

    相反,我建议您将配方切换到 Remi repo 并使用 php- 包。

    前面已经说过,php55w 是您的基础 PHP 包。我没有看到php55w-common 包。尝试添加它(或 php-common),它应该会进入 Apache。

    【讨论】:

    • 那么,php55w-common 会设置 apache mod 吗?另外,如果我切换到 remi repo,我可以使用php- 包,这意味着我不必为php55- (以及后来的php70- ones)覆盖我的php 包?
    • 1. Remi 将它们全部命名为 php-,您只需为该版本启用正确的 repo。使更改版本变得轻而易举。我只是将我的食谱更新到正确的仓库,然后运行 ​​yum update 2. IIRC php-common 包含适用于 Apache 的正确 .so 文件。它是我在我的列表中看到的唯一一个不在你的列表中(无论如何这不是 PHP 库)
    • 好的,我将使用yum-remi-chefcookbook 为php 5.5 启用remi repo。之后我将使用常规的httpd cookbook 看看它是否有效。
    • 谢谢,你救了我的命!请将此添加为答案,以便我接受。只需使用 remi repo 即可解决问题。
    • remi repo 是否包含 pecl?我可能需要安装php-pecl-memcache
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2014-05-11
    • 1970-01-01
    • 2016-01-20
    相关资源
    最近更新 更多