У меня проблема с использованием phpbrew с моими Xubuntu 16.04 x64 и apache2. Я использовал его на Xubuntu 14.04 без проблем, но теперь я действительно застрял: /
Я постараюсь объяснить это со всей необходимой информацией.
Все пошло свободно во время установки каждой версии с этой командной строкой
phpbrew install 7.0.16 +default +mysql +pdo +apxs2=/usr/bin/apxs2 +mb
Когда я переключаю версию PHP, все в порядке, и я вижу правильную версию, когда я делаю
php -v
но я вижу, что меняется только CLI-версия php
PHP 7.0.16 (cli) (built: Feb 28 2017 17:25:51) ( NTS )
Если я загляну в .phpbrew / php, я смогу увидеть папку для каждой версии php, которую я установил, и когда я загляну в / etc / apache2 / mods-available /, я получу phpX.X.load, указывающий соответствующую libphpX.X.XX.so в папке / usr / lib / apache2 / modules /. Все libphpX.X.XX.so присутствуют в папке.
Когда я перезапускаю Apache, у меня нет ошибок.
Я точно установил phpbrew с этими требованиями (https://coderwall.com/p/hguzxa/phpbrew-on-ubuntu-16-04-php7)
Так что теперь я просто пробую эту простую строку php в файле index.html
<?php echo '<h1>Hello, world!</h1>';?>
Но кажется, что Apache не может интерпретировать PHP, потому что это выглядит так
Hello, world!';?>
Наконец, когда я смотрю файл /var/log/apache2/error.log, внутри нет информации об ошибке.
Заранее спасибо, если поможете мне за это!
Ваш браузер печатает для вас
Hello, world!';?>
потому что ваш сервер Apache неправильно настроен и не может обрабатывать PHP-скрипты. Это поведение из браузера сбило вас с толку, потому что вы используете допустимый тег HTML внутри вашей строки. Просто попробуйте напечатать эту строку
<?php echo 'Hello, world!';?>
и в окне браузера ничего нет. Но если вы откроете исходный код страницы, вы увидите, что ваша строка PHP входит в документ DOM как необработанное значение, без обработанных тегов PHP.
Для разрешения этой информации просто попробуйте добавить отсутствующий конфиг для Apache:
touch /etc/apache2/conf-available/php.conf
Поместите следующий контент в этот файл
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php7.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
Теперь вы сообщаете Apache с помощью config, как он может обрабатывать PHP-скрипты.
Итак, теперь просто запустить
a2enconf php
systemctl restart apache2.service
Вы можете просмотреть состояние работы Apache с
systemctl status apache2.service
Теперь не забудьте проверить, что ваш тестовый скрипт с именем как something-to-test.php
(не HTML) и запустите его в браузере.
Наслаждайтесь вашим обработанным PHP-скриптом и счастливым написанием кода;)
Других решений пока нет …