ищу немного руководства
Я пытаюсь использовать поваренную книгу Apache2 из супермаркета Chef. Я создаю виртуальный хост со следующим кодом:
#Install shop
directory '/var/www/html/shop/' do
owner 'www-data'
group 'www-data'
mode '0755'
action :create
end
#Configures Apache Site for shop
web_app "shop" do
template 'web_app.conf.erb'
server_name "www.xyz.com.au"server_aliases ["www.xyz.com.au"]
docroot "/var/www/html/shop"options '-Indexes'
cookbook 'apache2'
allow_override
end
Это работает нормально, и я могу подключиться к серверу http хорошо. Но когда я вызываю mod_php:
apache_module "mod_php" do
enable true
end
Я получаю следующую ошибку. Я делаю что-то не так, включив PHP с этой кулинарной книгой?
apache2: Syntax error on line 121 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/mod_php.load: Cannot load /usr/lib/apache2/modules/mod_mod_php.so into server: /usr/lib/apache2/modules/mod_mod_php.so:
cannot open shared object file: No such file or directory
Так что я не уверен, что делать с этим, но я подумал, что спросить и посмотреть, есть ли у кого-нибудь опыт использования этой кулинарной книги?
https://supermarket.chef.io/cookbooks/apache2#readme
И мне было бы интересно, если кто-нибудь знает, как передать переменные конфигурации PHP в php.ini. Я не могу видеть это из этой кулинарной книги?
Спасибо,
-натуральный
Как указывают документы для этой кулинарной книги, рецепт будет пытаться вывести различную информацию на основе имени, которое вы передаете. В вашем случае это mod_php
, По умолчанию это поиск имени файла mod_mod_php
, Вы можете указать другое имя файла в зависимости от того, что вам нужно, что может выглядеть примерно так.
apache_module "php7" do
filename "libphp7.so"end
Я бы сначала проверил, какие модули установлены в /usr/lib/apache2/modules/
, У вас может быть другая версия php или вам нужно сначала установить соответствующий модуль.
Редактировать:
Важно также изменить первую строку с apache_module "mod_php" do
в apache_module "php7" do
, Имя по умолчанию для модуля выводится следующим образом:
identifier — строка для идентификации модуля для директивы LoadModule. Обычно не требуется, по умолчанию используется # {name} _module
В качестве альтернативы, вы можете установить идентификатор на «php7» (или любое другое имя модуля).
Других решений пока нет …