Я использую Ubuntu-16.04 для установки сервера apache. Я использую php-fpm для обработки файлов php. Я подписался на этот пост . После настройки мои службы apache2 и php7.0-fpm перезапустились правильно. Но когда я просматриваю файл php, я получаю простой файл. Кажется, что нет php cgi для обработки файла php. Что со мной не так?
Я новичок в apache. Поэтому я не знаю, какие конфигурации вставлять. По вашим ответам выложу необходимые конфигурации. Thx!
Мои шаги по установке:
Установить PHP и PHP-fpm:
sudo apt-get install php libapache2-mod-php
sudo apt-get install libapache2-mod-fastcgi php7.0-fpm
Включить моды fastcgi
sudo a2dismod php mpm_prefork
sudo a2enmod actions fastcgi alias mpm_worker
Создать глобальную конфигурацию для php7.0-fpm
sudo vim /etc/apache2/conf-available/php7.0-fpm.conf
И записать в конфигурации:
<IfModule mod_fastcgi.c>
AddHandler php7.0-fcgi .php
Action php7.0.fcgi /php7.0.fcgi
Alias /php7.0-fcgi /usr/lib/cgi-bin/php7.0.fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php7.0.fcgi -socket /var/run/php7.0.fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
Затем включите php7.0-fpm conf
sudo a2enconf php7.0-fpm
Перезапустите apache и fpm
sudo service apache2 restart && sudo service php7.0-fpm restart
Edit /var/www/html/index.php
:
<?php
phpinfo();
?>
Затем просмотрите http: // localhost / index.php
, но получил содержимое файла вместо распечатанной страницы.
Я столкнулся с подобными проблемами при установке php7.0 в Ubuntu 16.04. Не держите меня за это, но я думаю, что проблема связана с разрешениями. Я делаю www-data владельцем и группой всех файлов в папке / var / www, а права доступа chmod меняются на drwxrwxr-x. Это только на моем собственном сервере разработки, и у меня нет опыта в этом, поэтому используйте на свой страх и риск. Их можно отменить так же легко, как и изменить.
Ваши конфигурации немного сбиты с толку. Попробуйте следующее:
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
</IfModule>
Я добавляю это сюда, и работает хорошо: /etc/apache2/sites-available/000-default.conf