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