Несколько сайтов инфраструктуры Zend на одном сервере

У меня проблемы с настройкой файлов httpd.conf или .htaccess для распознавания нескольких сайтов фреймворка zend на одном сервере.

Для разработки у меня есть только один сервер, и я пытаюсь настроить сайты, чтобы получить к ним доступ, например localhost / app1, localhost / app2 и т. Д.

Итак, прямо сейчас, когда я перехожу на localhost / app1 он успешно перенаправляет на localhost / app1 / public / index.php, однако, когда я перехожу на localhost / app1 / index / index, я получаю 404.

Вот мой файл vhosts:


    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www"
    
        Options FollowSymLinks
        AllowOverride None
    
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    
    ErrorLog logs/error.log
    CustomLog logs/access.log common

, а вот мой.htaccess из каталога / var / www / app1:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ /app1/public/index.php [NC,R,L]

Если я изменю строку DocumentRoot в файле vhosts на DocumentRoot "/ var / www / app1 / public" , тогда app1 будет работать правильно, но Я могу получить доступ только к нему ... по адресу http: // localhost . Это возможно? Я хочу, чтобы это произошло, если / var / www является корнем документа, тогда, если я перейду на localhost / app1, эти запросы необходимо перенаправить на localhost / app1 / public / index.php, и если я перейду на localhost / app2, эти запросы нужно перенаправить на localhost / app2 / public / index.php.

Надеюсь, я ясно объяснил это, любая помощь приветствуется.

В конце
мне больше всего понравилось решение Фила, потому что я не хотел менять свой локальный файл hosts и использовать директиву ServerName. Было бы хорошо в производственной среде, если бы у вас было отдельное доменное имя для каждого приложения, но не для разработки.

В дополнение к этому, у меня была проблема 403 запрещенных при использовании альтернативного каталога для обслуживания веб-контента. Как я уже сказал, перма казались правильными, проблема была в SE_Linux, а контекст безопасности файлов не был установлен на httpd_sys_content_t. Я публикую это решение, которое я нашел здесь , поскольку оно касается именно этой проблемы. Спасибо.

6
задан Community 23 May 2017 в 12:00
поделиться