Intereting Posts

Apache 2 и PHP 5 не работают

У меня есть файл test.php в каталоге веб-сервера с php phpinfo(); содержание. Когда я пытаюсь выполнить php test.php в оболочке, он выполняется правильно. Но когда я пытаюсь открыть веб-страницу в браузере, он показывает php phpinfo(); , Как я могу устранить ошибки Apache 2 и PHP 5 на моей машине UNIX?

Я думаю, вам нужно обернуть свой код в <?php ... ?> . Попробуйте этот файл:

 <?php phpinfo(); ?> 

По умолчанию содержимое файла PHP – это HTML, который отправляется в браузер без изменений. Маркеры <?php и ?> Отмечают начало и конец PHP-кода, который интерпретируется PHP.

Как указывал penguin359 , php не будет интерпретировать что-либо на странице html, которая не заключена в квадратные скобки с помощью <??> по крайней мере.

Если он по-прежнему не работает после того, как вы это пробовали, первое, что вы, вероятно, должны сделать, это проверить журналы доступа и ошибки вашего сервера (по умолчанию в /var/log/apache2/access.log and /var/log/apache2/error.log если ваша дистрибутива не делает что-то неудобно, проверьте конфигурационные файлы в /etc/apache2/ for the директив AccessLog and ErrorLog`), а затем продолжите поиск и устранение неисправностей в зависимости от того, что именно они говорят.

Если страница была обращена к ней и не сообщалось об ошибке, это означает, что сервер по какой-то причине не счел нужным запускать парсер php, скорее всего, из-за ошибки конфигурации.

Существует несколько разных способов, с помощью которых php parser вызывается apache; два наиболее распространенных – через динамически загруженный php-модуль или через CGI.

Если он (должен быть) загружен через mod_php то ваш файл конфигурации должен содержать директиву,

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
в нем, а также директивы, инструктирующие его позволить PHP-модулю обрабатывать страницы .php, вероятно, что-то вроде этого:

 <IfModule mod_php5.c> AddType application/x-httpd-php .php .phtml .php3 .php5 AddType application/x-httpd-php-source .phps php_admin_flag register_globals off </IfModule> 

с небольшими отклонениями в зависимости от того, как ваш дистрибутив обрабатывает конфигурацию apache2.

Если он вызывается через cgi вместо этого – как правило, это лучший вариант, потому что он позволяет использовать поточный сервер, а также отличные вещи, такие как SuEXEC, – тогда вы должны снова проверить свои конфигурационные файлы apache и искать строки, которые говорят что-то вроде
AddHandler fcgid-script .php .php5

которые сообщают серверу, как обрабатывать файлы, заканчивающиеся на .php или .php5 .

Опять же, точно, что не так с вашим сервером – если предположить, что это больше, чем просто исходный отказ скопировать ваш .php-файл с помощью <? ... ?> <? ... ?> – трудно догадаться, не просматривая журналы доступа и ошибок.