简体   繁体   中英

Configuring symfony and apache

I'm learning symfony right now. I want to use apache webserver instead of the shipped php. How can I add a virtualhost if I want to use also the default localhost? (localhost:80 for my notebook and I have a "personalhomepage")

You would setup Apache in the same way as any other webservers that have more than one site on them - ideally, a named vhost. Symfony has an example Apache vhost config ,

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld
    ServerAlias www.sitename.127.1.0.1.xip.name

    DocumentRoot /var/www/project/web
    <Directory /var/www/project/web>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
            # In local development, I default this to app_dev.php
        </IfModule>
    </Directory>

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

In this example, domain.tld (or www.) is the name you would use to reach the site. You would have to be able to reach those names via DNS though - on your local machine, 127.0.0.1. There are also some 'wildcard DNS' services that may help, such as http://xip.name/ With services such as these, you could put ServerName sitename.127.1.0.1.xip.name into the above configuration and then use that to reach your site.

I do something similar myself with a wildcard DNS sub-domain I own for a local machine. I have a number of such Apache Vhost configurations setup.

Here is one of the vHosts I am currently using (cronolog is used for log rotation):

<VirtualHost *:80>
        ServerName projectname.dev
        DocumentRoot /var/www/projectname/html/web
        <Directory /var/www/projectname/html/web>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog  "|/usr/bin/cronolog /var/www/projectname/log/%Y-%m/error_%d_%m_%Y.log"
        CustomLog "|/usr/bin/cronolog /var/www/projectname/log/%Y-%m/access_%d_%m_%Y.log" combined
</VirtualHost>

For testing and development purposes I usually create a local domain with the .dev or .local ending in the hosts file, eg:

127.0.0.1       projectname.dev

Make sure the domain name corresponds with the one in the vHost config. Oh, and don't dont forget to restart apache. Hope this helps.

Using these steps, you can use either projectname.dev , projectname.dev/app_dev.php or you set the vHost's DirectoryIndex directly, if you want to always use app_dev.php :

<Directory /var/www/projectname/html/web>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    DirectoryIndex app_dev.php
</Directory>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM