使我的 php 服务器成为 symfony 服务器
Make my php server a symfony server
我正在尝试让我的 php 服务器成为 Symfony 服务器。
我已经安装了 Symfony 并在 /var/www/project_name
中创建了一个项目
如果我正确地使 server:run my_local_ip:8000
服务器 运行 并且我也可以从另一个网络上的计算机访问它:http://public_ip:8000
,相反,如果我写 http://public_ip
它会继续我的index.php.
好吧,现在,如果我写 http://public_ip
它会继续 http://public_ip:8000
或者至少如果可以在端口 80 上制作 Symfony 运行 或者在 [= 上制作 Symfony 运行 68=]内置服务器。
我尝试创建一个虚拟主机,我创建了这个文件:
project_name.conf
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName project_name
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
DocumentRoot /var/www/project_name
<Directory /var/www/project_name>
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Require all granted
</Directory>
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
但它不起作用,如果我写 http://public_ip
它 运行 总是我的 index.php。
你能帮我个忙吗?
已完成的解决方案 - 感谢@Alberto Fecchi 的回答:
- 编辑 00-default.conf
- 粘贴您在 Alberto Fecchi 的回答中找到的内容并添加此内容
#IT NEEDS "<" BEFORE TAG
Directory /var/www/tcgfiga/web/bundles>
IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
/Directory>
- 然后制作"sudo service apache2 restart"。有时需要,有时不需要
- 进入文件夹“/var/www/project/web/”并搜索“.htaccess”文件
- 您应该删除它,但如果是这样,您的应用程序不会 运行 并且您会看到文件夹内容并翻页,重新创建并打开它。你必须搜索
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the start page to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$ /app.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
- 注释行
RedirectMatch 302 ^/$ /app.php/
现在可以了:)
使用这个虚拟主机:
<VirtualHost *:80>
ServerName project_name
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
DocumentRoot /var/www/project_name/web
<Directory /var/www/project_name/web>
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
使用 sudo a2ensite project_name
启用它并使用 sudo service apache2 restart
重新启动(不同 OS 上的命令可能不同)。
现在您可以访问 http://public_ip 查看您的 "production" 申请。
我正在尝试让我的 php 服务器成为 Symfony 服务器。
我已经安装了 Symfony 并在 /var/www/project_name
中创建了一个项目
如果我正确地使 server:run my_local_ip:8000
服务器 运行 并且我也可以从另一个网络上的计算机访问它:http://public_ip:8000
,相反,如果我写 http://public_ip
它会继续我的index.php.
好吧,现在,如果我写 http://public_ip
它会继续 http://public_ip:8000
或者至少如果可以在端口 80 上制作 Symfony 运行 或者在 [= 上制作 Symfony 运行 68=]内置服务器。
我尝试创建一个虚拟主机,我创建了这个文件:
project_name.conf
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName project_name
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
DocumentRoot /var/www/project_name
<Directory /var/www/project_name>
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Require all granted
</Directory>
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
但它不起作用,如果我写 http://public_ip
它 运行 总是我的 index.php。
你能帮我个忙吗?
已完成的解决方案 - 感谢@Alberto Fecchi 的回答:
- 编辑 00-default.conf
- 粘贴您在 Alberto Fecchi 的回答中找到的内容并添加此内容
#IT NEEDS "<" BEFORE TAG Directory /var/www/tcgfiga/web/bundles> IfModule mod_rewrite.c> RewriteEngine Off </IfModule> /Directory>
- 然后制作"sudo service apache2 restart"。有时需要,有时不需要
- 进入文件夹“/var/www/project/web/”并搜索“.htaccess”文件
- 您应该删除它,但如果是这样,您的应用程序不会 运行 并且您会看到文件夹内容并翻页,重新创建并打开它。你必须搜索
<IfModule !mod_rewrite.c> <IfModule mod_alias.c> # When mod_rewrite is not available, we instruct a temporary redirect of # the start page to the front controller explicitly so that the website # and the generated links can still be used. RedirectMatch 302 ^/$ /app.php/ # RedirectTemp cannot be used instead </IfModule> </IfModule>
- 注释行
RedirectMatch 302 ^/$ /app.php/
现在可以了:)
使用这个虚拟主机:
<VirtualHost *:80>
ServerName project_name
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
DocumentRoot /var/www/project_name/web
<Directory /var/www/project_name/web>
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
使用 sudo a2ensite project_name
启用它并使用 sudo service apache2 restart
重新启动(不同 OS 上的命令可能不同)。
现在您可以访问 http://public_ip 查看您的 "production" 申请。