Apache Virtual Host не анализирует PHP

Я решил включить виртуальные хосты на моем сервере Apache и решил сделать его на основе портов.

Первое, что я сделал, конечно, было RTM. Я следовал инструкциям, найденным здесь . Ну, это сработало – вроде. Что касается виртуального хоста, он это делает. Содержимое, выведенное из: 80, отличается от 8080.

Но PHP не работает. «Исходный сайт» (порт 80) работает с PHP просто отлично. Однако сайт порта 8080 отправляет PHP в браузер. Я ничего не вижу в браузере, но исходный код показывает:

<?php echo "It worked!"; ?> 

Этот вопрос, по-видимому, очень слабо документирован на нескольких веб-сайтах, но либо я не могу найти решение в них, либо указанное решение не работает для меня.

Опять же, сам виртуальный хост работает нормально. PHP, с другой стороны, нет.

Любые идеи о том, что это может быть? Какой контент из моего файла httpd.conf я должен предоставить, чтобы я не взорвал свой вопрос, скопировав / вставив все это?

(Извините, что забыл опубликовать, что у меня были эти места, Фил. Добавление во избежание дальнейшей путаницы)

 Listen 80 Listen 8080 NameVirtualHost *:80 NameVirtualHost *:8080 <VirtualHost *:80> ServerName mysite.com DocumentRoot /var/www/vhosts/Site1/httpdocs </VirtualHost> <VirtualHost *:8080> ServerName mysite.com DocumentRoot /var/www/vhosts/Site2/httpdocs </VirtualHost> 

Я попытался добавить это в теги:

 AddHandler php5-script .php AddType text/html .php 

… но безрезультатно.

Related of "Apache Virtual Host не анализирует PHP"

Это также может быть связано с файлами php с использованием коротких php-тегов <? вместо <?php . По умолчанию короткие короткие теги не включены в файле конфигурации php.ini.

Это, наконец, привело меня к правильному пути:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

Вот решение:

В разделе <Directory> я включил следующие строки:

 <IfModule sapi_apache2.c> php_admin_flag engine on </IfModule> <IfModule mod_php5.c> php_admin_flag engine on </IfModule> 

Или, отредактированная копия / вставка решения на моем сервере:

 <Directory "/var/www/vhosts/A2/httpdocs"> <IfModule sapi_apache2.c> php_admin_flag engine on </IfModule> <IfModule mod_php5.c> php_admin_flag engine on </IfModule> (Other configuration parameters) </Directory> 

Ваш ответ не помог мне.

Для Ubuntu 12.04:

 sudo a2enmod php5 sudo service apache2 restart 

Так оно и было.

Источник: https://help.ubuntu.com/community/ApacheMySQLPHP

В моем случае проблема была устранена при запуске apt-get install libapache2-mod-php .

Мне нужно загрузить centos vm, чтобы проверить apache conf, но на ubuntu. У меня есть намного больше информации в моей конфигурации под virtualHost

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

Убедитесь, что следующая строка, загружающая модуль php, не закомментирована –

 LoadModule php5_module libexec/apache2/libphp5.so 

Привет Это помогает мне решить мою проблему:

  root@zxxxx:/home/pxxx/public_html# vi /etc/apache2/mods-enabled/php5.conf # To re-enable PHP in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> ***php_admin_flag engine On*** -> Turn this option ON </Directory> </IfModule> 

Для моей конфигурации мне пришлось добавить эту строку в virtualhost (внутри <Directory> ):

 AddType application/x-httpd-php .php 

Это помогло мне выйти из a2enmod php5 , если модуль не существует, переустановите lamp-server, набрав apt-get install lamp-server^

единственное, что помогло мне после всех попыток добавить apache2.conf

 <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>