Открытие скелетного приложения ZF3 показывает только исходный код, но не веб-страницу.

Я устанавливаю новую машину для разработки с моим Mac. Теперь я установил скелетное приложение zend framework.

Когда я открою URL-адрес, он покажет мне исходный код index.php в моем браузере, а не веб-сайт.

В /etc/apache2/httpd-vhosts.conf я добавил это:

<VirtualHost *:80>
    ServerName test.dev
    ServerAdmin [email protected]
    DocumentRoot "/Users/myname/Projekte/web/test/public/"
    SetEnv APPLICATION_ENV "development"

    <Directory "/Users/myname/Projekte/web/test/public/" >
        DirectoryIndex index.php
        AllowOverride All
        Require all granted
    </Directory>

ErrorLog "/private/var/log/apache2/test.dev-error_log"
CustomLog "/private/var/log/apache2/test.dev-access_log" common

What can I do to solve this problem? Do I need a .htaccess at into my public directory?

Спасибо за помощь.


person Mondy    schedule 08.01.2017    source источник
comment
Я установил Apache/2.4.23 (Unix)   -  person Mondy    schedule 09.01.2017
comment
Мне кажется проблема с апачем, а не с ZF2/3. Как вы установили апач? Как вы проверили, установлен ли mod_php или работает ли ваш PHP-FPM?   -  person Thomas Dutrion    schedule 09.01.2017
comment
Спасибо, вы правы. LoadModule php5_module libexec/apache2/libphp5.so Теперь все работает нормально.   -  person Mondy    schedule 09.01.2017


Ответы (1)


Просто чтобы написать правильный ответ, так как проблема была решена в комментариях.

Итак, проблема заключалась в том, что HTTP-запрос возвращал исходный код в качестве ответа. Очевидно, что это не вопрос, связанный с Zend Framework, а скорее проблема конфигурации сервера.

Чтобы правильно диагностировать проблему, можно использовать самый простой php-код и напрямую попытаться получить доступ к скрипту, тем самым отклонив проблему, связанную с фреймворком. Например, <?php phpinfo(); — хороший тест.

У Apache есть два способа интерпретировать php: php-fpm и mod_php. По крайней мере, один из них должен быть настроен, чтобы Apache мог передавать файлы интерпретатору.

В этом конкретном случае модуль был установлен на машине, но не загружен в файл конфигурации, что было сделано с помощью следующей строки в файле конфигурации apache:

LoadModule php5_module libexec/apache2/libphp5.so

person Thomas Dutrion    schedule 10.01.2017