Повар Apache2 с модом php поваренная книга из супермаркета - нет такого файла или каталога - PullRequest
0 голосов
/ 16 сентября 2018

ищет немного указаний

Я пытаюсь использовать поваренную книгу 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. Я не могу видеть это из этой кулинарной книги?

спасибо,

-nat

1 Ответ

0 голосов
/ 16 сентября 2018

Как показывают документы для этой кулинарной книги, рецепт будет пытаться вывести различную информацию на основе имени, которое вы передаете. В вашем случае это mod_php. По умолчанию ищется имя файла mod_mod_php. Вы можете указать другое имя файла в зависимости от того, что вам нужно, что может выглядеть примерно так:

apache_module "php7" do
  filename "libphp7.so"
end

Я бы сначала проверил, какие модули установлены в /usr/lib/apache2/modules/. У вас может быть другая версия php или вам необходимо сначала установить соответствующий модуль.

Edit: Также важно изменить первую строку с apache_module "mod_php" do на apache_module "php7" do. Имя модуля по умолчанию выводится следующим образом:

идентификатор - строка для идентификации модуля для директивы LoadModule. Обычно не требуется, по умолчанию # {name} _module

В качестве альтернативы, вы можете установить идентификатор на «php7» (или любое другое имя модуля).

...