apache — не могу использовать phpbrew с apache2 на Xubuntu 16.04. Установка версий php в порядке, но исходный код напечатан и PHP не выполнен

У меня проблема с использованием 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, внутри нет информации об ошибке.

Заранее спасибо, если поможете мне за это!

1

Решение

Ваш браузер печатает для вас

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-скриптом и счастливым написанием кода;)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]