Я только что обновился с 14.10 до 16.04 и не уверен, как настроить PHP 7 в apache. Я изменил файл php7.0.conf, чтобы раскомментировать последние строки, перезапустил apache2 и без изменений.
Нужно ли изменить настройку apache2, чтобы разрешить php?
PHP работает из командной строки, поэтому я уверен, что php установлен правильно.
Кроме того, я получаю сообщение об ошибке на phpadmin о том, что mbstring отсутствует.
php
команда) ортогонален другим PHP SAPI (apache2, FPM, CGI, ...), поэтому рабочая командная строка PHP ничего не говорит о работе PHP на HTTP-сервере.sudo apt-get install php-mbstring
(кто бы мог подумать, верно?)Ответы:
Как и раньше, вам нужно установить PHP для Apache.
Из руководства по серверу :
Эта команда установит PHP и модуль Apache 2 PHP. Просто настройте Apache, как и раньше (
sudo a2enmod php7.0
думаю, модуль включится).Ваша
mbstring
проблема похожа - вам нужно установить это расширение:Для других отсутствующих модулей также будут установлены аналогичные вещи.
источник
sudo a2enmod php7.0
интересно (или так я определил, отключив и повторно включив на своем компьютере). Интересно, я получил это сообщение:Considering conflict php5 for php7.0: Enabling module php7.0.
sudo a2enmod php
не получится, я попробовал. Однакоsudo a2enmod php7.0
будет работать.Чтобы настроить php7 для работы с вашим сервером, вам нужно выполнить некоторые настройки:
1. Убедитесь, что вы удалили все следы
php/php5
Откройте терминал Ctrl+ Alt+ Tи:
Вывод не должен содержать ничего
php5.conf
илиphp5.load
, но если это так, сделайте следующее:Теперь добавьте
php7.0.conf
иphp7.0.load
вместо:Вывод
ls -la php*
должен выглядеть следующим образом:Разобравшись с модулями, мы переходим в
/etc/apache2/conf-enabled
каталог. Удалите все следы php / php5 здесь такжеsudo rm <name>
Затем при необходимости сделайте:
Вывод
ls -la php*
должен выглядеть следующим образом:2. Перезапуск Apache2
Перед перезапуском Apache обязательно очистите Apache и
error.log
перезапустите:Теперь проверьте
error.log
, выполнивcat /var/log/apache2/error.log | less
(прокрутка меньше позволяет легко прокручивать вверх и вниз,q
выход из выхода).Если ваш
error.log
содержит много (и я буквально имею в виду кучу ), некоторыеMIBS not found
делают следующее:Повторная проверка
error.log
теперь должна содержать только 3 строки:Ваш Apache с php7.0 теперь должен быть правильно настроен.
источник
a2enmod
иa2dismod
команды вместо того , чтобы вручную мастерить со ссылками наmods-available
/mods-enabled
(аналогично,a2enconf
иa2disconf
дляconf-{available,enabled}
).a2enmod
иa2dismod
запомнить состояние модулей во внутреннем реестре apache2 пакета, так что делает / удаление ссылки вручную может сделать вашу систему сломана для будущих обновлений , поскольку сценарии обновления смотрит на состояние этой внутренней базы данных.У меня тоже есть эта проблема.
Это помогло мне удалить весь PHP и переустановить php7.
Все, что было нужно, было:
php7 будет удален, а затем просто переустановить:
источник
sudo apt-get purge php*
удалит ваш phpMyAdmin также, если у вас есть.В моем случае не только php не работал, но и phpmyadmin я делал шаг за шагом вот так
А затем:
В последней строке я добавляю
Include /etc/phpmyadmin/apache.conf
Что договориться со всеми проблемами
источник
Решение, которое я нашел для этой проблемы, было установкой PHP.INI по умолчанию для short_open_tag. По умолчанию установлено значение «Выкл.». Мой PHP-код начался с
вместо
Если включен short_open_tag (путем изменения «Выкл.» На «Вкл» в моем php.ini) и сбросить сервер apache (
sudo service apache2 restart
) и PHP вернется обратно живым.источник
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
источник
Я тоже мог успешно запускать php-скрипты из командной строки в Ubuntu 16.04, но не в любом браузере. В попытке решить проблему, я удалил существующие копии php7.0 и apache2. После этого я переустанавливал как из командной строки, так и из библиотеки php apache2. Разочарование последовало, когда я попытался запустить «a2enmod php7.0», который сообщил мне, что модуль php7.0 не существует, несмотря на то, что я снова смог запустить сценарии php из командной строки. Инстинкт включился. Открыв Synaptic, я обнаружил, что когда я устанавливал php-библиотеку apache2 из командной строки, я устанавливал только libapache2-mod-php7.0 и забыл также установить «обертку» libapache2-mod- php, без которого первый не будет функционировать.
источник