Мне нужен модуль libphp7.so для настройки apache на Centos

Я следую руководству по этой ссылке, чтобы использовать php7 или phpng на моем Centos 6.5 с apache.

Я могу выполнять php-скрипты в консоли, но я хотел бы иметь возможность запускать php-скрипты с помощью сервера Apache.

Мне нужна помощь, потому что я не могу найти модуль libphp7.so. Я не знаю, нужно ли мне его строить или что.


person jmcordoba    schedule 08.05.2015    source источник
comment
Служите PHP поверх FPM, и тогда вам не нужно создавать модуль libphp7.so.   -  person N.B.    schedule 08.05.2015
comment
@NB Как обслуживать PHP через fpm? Я запускаю php-fpm.   -  person qg_java_17137    schedule 27.06.2018
comment
@qg_java_17137 вот пошаговое руководство: linode .com/docs/веб-серверы/nginx/serve-php-php-fpm-and-nginx   -  person N.B.    schedule 28.06.2018


Ответы (3)


Я считаю, что вам нужно добавить --with-apxs2 в ваш скрипт настройки. По предоставленной вами ссылке я не вижу этого в настройках флагов. --with-apxs2 будет «Создавать общий модуль обработчика Apache 2.0». Вам также может потребоваться убедиться, что в вашей конфигурации Apache есть:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

В первый раз, когда я собрал php7, он просто отобразил исходный код, а не выполнил его, но добавление этого привело к выполнению кода.

Если вы хотите попробовать это с Docker, я только что создал образ Docker для PHP7 по адресу https://registry.hub.docker.com/u/silintl/php7/ Вы также можете просто просмотреть Dockerfile, который включает все команды, используемые для его установки и настройки.

person Phillip    schedule 22.05.2015
comment
Спасибо за совет. После настройки и компиляции с флагом --with-apxs2 автоматически были созданы следующие файлы: /usr/lib/apache2/modules/libphp7.so, /etc/apache2/mods-available/php7.load, /etc/apache2/mods-enabled/php7.load. - person user2513149; 22.08.2016
comment
Большое спасибо @Phillip! - person GeekHades; 05.04.2017

В моем файле конфигурации /etc/httpd/conf.modules.d/15-php.conf, который загружается родительским файлом конфигурации /etc/httpd/conf/httpd.conf, я нашел следующую конфигурацию по умолчанию:

<IfModule !mod_php5.c>
  <IfModule prefork.c>
  LoadModule php7_module modules/libphp7.so
  </IfModule>
</IfModule>

<IfModule !mod_php5.c>
  <IfModule !prefork.c>
    LoadModule php7_module modules/libphp7-zts.so
  </IfModule>
</IfModule>

Используя информацию, предоставленную @JanePage и @PhilipShipley, я меняю ее на это:

LoadModule php7_module modules/libphp7.so
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

и Apache заработал нормально.

person Isaiahiroko    schedule 20.12.2019

Спасибо, Филипп, который дал некоторые подсказки по этой проблеме, но в моем случае я решил свою проблему следующим образом:

1 - Скопируйте библиотеку php7.so, которая у вас есть, в каталог модулей apache с помощью этой команды: sudo cp /etc/httpd/modules/libphp7.so /opt/bitnami/apache2/modules

2 - Добавьте в свой конфигурационный файл Apache следующий код:

LoadModule php7_module ./modules/libphp7.so Приложение SetHandler/x-httpd-php

И после этого PHP работал нормально!

person JanePage    schedule 16.01.2018