apache — PHP не работает на VirtualHost после обновления до OS X Yosemite

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

Это работает правильно:

http://localhost

Это выплевывает содержимое файла на экран:

http://localhost/~MYUSERNAME

<?php phpinfo();

http://testing.dev выплевывает

<?php and the contents of this file (which is WordPress)

apachectl -t

Syntax OK

/etc/apache2/extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

<VirtualHost *:80>
ServerName testing.dev
ServerAlias www.testing.dev
DocumentRoot "/Users/*/Sites/testing"ErrorLog "/private/var/log/apache2/testing.dev-error_log"
<Directory "/Users/*/Sites/testing-env/">
Options Indexes FollowSymLinks
AllowOverride AlL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

/ и т.д. / хосты

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
127.0.0.1       testing.dev

Почему он выплевывает файл PHP, а не выполняет его?

запуск PHP-V дает мне

PHP 5.5.3 (cli) (built: Aug 28 2013 13:28:31)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.2, Copyright (c) 2002-2013, by Derick Rethans

журнал ошибок показывает:

[Mon Nov 17 17:30:08.338143 2014] [auth_digest:notice] [pid 3633] AH01757: generating secret for digest authentication ...
[Mon Nov 17 17:30:08.339341 2014] [mpm_prefork:notice] [pid 3633] AH00163: Apache/2.4.9 (Unix) PHP/5.5.14 configured -- resuming normal operations
[Mon Nov 17 17:30:08.339391 2014] [core:notice] [pid 3633] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

1

Решение

Обновление OS X восстанавливает файлы конфигурации Apache по умолчанию. Вам нужно будет отредактировать их снова. По памяти это включает в себя:

  • не комментируя обработчик PHP, чтобы Apache выполнял файлы, а не обслуживал их
  • настройка AllowOverride в All для вашего веб-каталога
  • откомментируйте строку, которая загружает файл конфигурации VirtualHosts
1

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

У меня была та же проблема, и я обнаружил, что в моем httpd.conf отсутствует раздел конфигурации. После добавления следующего и перезапуска Apache PHP файлы были обработаны правильно.

<IfModule php5_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
0

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