web-dev-qa-db-fra.com

Symfony2 - Apache vhost pour app_dev port différent

J'utilise la réécriture d'URL pour accéder à mon application Symfony2. Elle est directement disponible à l'adresse

http://my_application.my_domain.net

Maintenant, j'aimerais pouvoir accéder à l'environnement de développement en utilisant simplement un autre port tel que:

http://my_application.my_domain.net:8081
1
Pierre de LESPINAY

Si vous ne voulez pas utiliser

http://my_application.my_domain.net/index_dev.php

Cela fait à peu près le même travail, voici la solution:


Après avoir autorisé votre IP externe à my_application/web/app_dev.php

// ...
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], array(
        'xxx.xxx.xxx.xxx', // <- your IP
        // ...
    ))
) {
// ...

Configuré /etc/Apache2/ports.conf pour indiquer à Apache d'écouter le port supplémentaire

#...
NameVirtualHost *:80
Listen 80
NameVirtualHost *:8081
Listen 8081
#...

Doublez simplement les applications vhost (si vous en utilisez une)

$ Sudo cp /etc/Apache2/sites-available/my_application \
          /etc/Apache2/sites-available/my_application_dev

et changer le fichier pointé par le réécriteur d'URL

<VirtualHost *:8081>
    ServerName my_application.my_domain.net

    DocumentRoot "/var/www/my_application/web"
    <Directory "/var/www/my_application/web/">
        #...
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app_dev.php [QSA,L]
        </IfModule>
    </Directory>
</VirtualHost>

Enfin, activez le nouveau vhost

$ Sudo a2ensite my_application_dev
$ Sudo service Apache2 restart
4
Pierre de LESPINAY