Какое имя httpd_module, чтобы Apache / Httpd работал с PHP 5.5?

#php #apache #centos #chef-infra #chef-recipe

#php #apache #centos #шеф-повар-инфра #шеф-повар-рецепт

Вопрос:

У меня возникли некоторые проблемы с установкой PHP 5.5 на компьютере CentOS с использованием Chef. Я, наконец, смог его установить, но когда я получаю доступ к index.php нему, просто загружаю файл с содержимым.

Я предполагаю, что это потому, что Apache (технически Httpd, поскольку я с CentOS) не mod_php установлен / настроен.

Я установил PHP с помощью php cookbook со следующими пакетами:

 # ... 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
  

У меня была httpd_module 'php' директива, раскомментированная при использовании PHP 5.4. Какое правильное имя для http_module для работы с PHP 5.5?

Ответ №1:

Похоже, вы нашли одного из людей, которые пошли по пути Debian и настроили свои пакеты как php55- вместо php- . Это усложняет задачу, если вы хотите перейти с версии 5.5 на любую более высокую версию, потому что вам нужно удалить их и установить новые (т. Е. php70- ).

Вместо этого я рекомендую переключить ваш рецепт на репозиторий Remi и использовать php- пакеты.

Все, что было сказано, php55w это ваш базовый пакет PHP. Я не вижу php55w-common пакета. Попробуйте добавить это (или php-common ), и это должно попасть в Apache.

Комментарии:

1. Итак, php55w-common установим apache mod? Кроме того, если я переключусь на remi repo, я смогу использовать php- пакеты, что означает, что мне не нужно перезаписывать свои php-пакеты для php55- них (а затем php70- и для них)?

2. 1. Remi называет их все php- , и вы просто включаете правильное репозиторий для этой версии. Позволяет быстро менять версии. Я просто обновляю свои рецепты до нужного репозитория, а затем запускаю yum update 2. IIRC php-common содержит соответствующий .so файл для Apache. Это единственное, что я вижу в своем списке, которого нет в вашем (во всяком случае, это не библиотека PHP)

3. Хорошо, тогда я буду использовать yum-remi-chef cookbook, чтобы включить remi repo для php 5.5. После этого я буду использовать обычную httpd cookbook и посмотреть, работает ли она.

4. Спасибо, ты спас мне жизнь! Пожалуйста, добавьте это в качестве ответа, чтобы я мог его принять. Проблема была решена просто с помощью remi repo.

5. включает ли remi repo pecl? Возможно, мне потребуется установить php-pecl-memcache