配置 symfony 和 apache
Configuring symfony and apache
我现在正在学习 symfony。我想使用 apache 网络服务器而不是随附的 php。如果我还想使用默认的本地主机,如何添加虚拟主机? (本地主机:80 用于我的笔记本,我有一个 "personalhomepage")
您可以像设置任何其他拥有多个站点的网络服务器一样设置 Apache - 理想情况下,一个命名的虚拟主机。 Symfony 有一个示例 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>
在此示例中,domain.tld(或 www.)是您用来访问该站点的名称。不过,您必须能够通过 DNS 访问这些名称 - 在您的本地计算机上,127.0.0.1。还有一些 'wildcard DNS' 服务可能会有所帮助,例如 http://xip.name/ 使用诸如此类的服务,您可以将 ServerName sitename.127.1.0.1.xip.name
放入上述配置中,然后使用它来访问您的站点。
我自己使用我为本地计算机拥有的通配符 DNS 子域做了类似的事情。我有很多这样的 Apache Vhost 配置设置。
这是我目前使用的虚拟主机之一(cronolog 用于日志轮换):
<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>
出于测试和开发目的,我通常会创建一个以 .dev 或 .local 结尾的本地域,以主机文件结尾,例如:
127.0.0.1 projectname.dev
确保域名与虚拟主机配置中的域名一致。哦,别忘了重启apache。希望这有帮助。
通过这些步骤,您可以使用 projectname.dev、projectname.dev/app_dev.php 或者你直接设置 vHost 的 DirectoryIndex,如果你想总是使用 app_dev.php:
<Directory /var/www/projectname/html/web>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex app_dev.php
</Directory>
我现在正在学习 symfony。我想使用 apache 网络服务器而不是随附的 php。如果我还想使用默认的本地主机,如何添加虚拟主机? (本地主机:80 用于我的笔记本,我有一个 "personalhomepage")
您可以像设置任何其他拥有多个站点的网络服务器一样设置 Apache - 理想情况下,一个命名的虚拟主机。 Symfony 有一个示例 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>
在此示例中,domain.tld(或 www.)是您用来访问该站点的名称。不过,您必须能够通过 DNS 访问这些名称 - 在您的本地计算机上,127.0.0.1。还有一些 'wildcard DNS' 服务可能会有所帮助,例如 http://xip.name/ 使用诸如此类的服务,您可以将 ServerName sitename.127.1.0.1.xip.name
放入上述配置中,然后使用它来访问您的站点。
我自己使用我为本地计算机拥有的通配符 DNS 子域做了类似的事情。我有很多这样的 Apache Vhost 配置设置。
这是我目前使用的虚拟主机之一(cronolog 用于日志轮换):
<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>
出于测试和开发目的,我通常会创建一个以 .dev 或 .local 结尾的本地域,以主机文件结尾,例如:
127.0.0.1 projectname.dev
确保域名与虚拟主机配置中的域名一致。哦,别忘了重启apache。希望这有帮助。
通过这些步骤,您可以使用 projectname.dev、projectname.dev/app_dev.php 或者你直接设置 vHost 的 DirectoryIndex,如果你想总是使用 app_dev.php:
<Directory /var/www/projectname/html/web>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex app_dev.php
</Directory>