php-код записывается для вывода в виде обычного текста, почему?

#php #linux #apache

#php #linux #apache

Вопрос:

Я установил сервер apache и php5 в Linux, но не могу запустить простой php-файл и отобразить его в браузере. Что я вижу в браузере, так это:

 <?php echo 'hello';?>
 

Почему php-код не выполняется?

Вот содержимое /etc/apache2/sites-available/default файла:

 <VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/public
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options  ExecCGI -MultiViews  SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 

И я разместил свой тестовый php-файл в /var/www/public

Комментарии:

1. Каково расширение файла?

2. Обычно это означает, что PHP не установлен или не включен на сервере.

3. @PaulDessert Расширение файла — php.

Ответ №1:

Рассмотрим эти:

  • Установлен ли PHP?
  • Включен ли соответствующий модуль apache (например, mod_php)?
  • Каково разрешение файла PHP-файла? Может ли он быть выполнен пользователем веб-сервера?
  • Есть ли какое-либо сообщение об ошибке в журнале ошибок apache или php?

Ответ №2:

Ну, у вас отсутствует контейнер для одного,, вот условие с обратным вызовом echo.

 if($result) {
       echo "success";
    }
 

Комментарии:

1. какой контейнер? OP не может запустить простой php-скрипт с одним оператором echo