gpt4 book ai didi

php - 在 Apache 服务器上配置 Symfony 5 应用程序

转载 作者:行者123 更新时间:2023-12-04 03:52:39 24 4
gpt4 key购买 nike

我需要一些关于在 apache2 网络服务器上配置 Symfony 的帮助。

我目前的项目类别结构是:

var/www/domain.com/public_html

在 public_html 内部是我的 Symfony 应用程序所在的位置。

我无法确定我在 .htaccess 或/etc/apache2/sites-available/domain.com.conf 文件中做错了什么。

我正在使用 symfony/apache-pack。根据文档,我的 .htaccess 文件位于/public 文件夹中。在这里:

DirectoryIndex index.php

<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]

RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]

RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>

这是我的/etc/apache2/sites-available/domain.com.conf

<VirtualHost *:80>
ServerAdmin someemail@example.com
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/mydomain.com/public_html/public
<Directory /var/www/mydomain.com/public_html/public>
AllowOverride All
Order allow,deny
Allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mydomain.com [OR]
RewriteCond %{SERVER_NAME} =mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

我还读了this并更新 000-default.conf 如下:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerAlias www.mydomain.com
DocumentRoot /var/www/mydomain.com/public_html/public

<Directory /var/www/domain.com/public_html/public>
Options FollowSymlinks MultiViews
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Allow from All
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xhtml >
</IfModule>

</VirtualHost>

目前我仍然看到 symfony 项目文件夹结构。

我试过:

  1. 在 .htaccess 中将 DirectoryIndex 更改为/public/index.php
  2. 在 .conf 文件中将 DocumentRoot 更改为/va/www/domain.com/public_html/public
  3. 已尝试清除缓存

到目前为止,似乎没有任何帮助。

对任何建议都非常有帮助。

最佳答案

我看到您正在编辑以以下开头的虚拟主机 <VirtualHost *:80>......

这意味着您的网站应该可以通过 80 端口或换句话说通过 http 协议(protocol)访问。但!如果实际上您是通过 https 协议(protocol)访问您的网站,那么请确保您正在编辑正确的 Apache2 .conf 文件。

如果该网站可以通过 https 协议(protocol)访问(特别是如果您使用 LetEncrypt),则尝试定位 /etc/apache2/sites-available/....-le-ssl.conf配置文件(或具有相应域标题且名称中带有 ssl 前缀或后缀的类似文件)。

编辑该文件后,不要忘记使用 $sudo service apache2 restart 重新启动 Apache2 网络服务器并再次测试网站。

关于php - 在 Apache 服务器上配置 Symfony 5 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64252393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com