我在尝试部署时遇到问题Laravel 应用程序(v9)在我的Ubuntu 服务器。
首先,我要分享我的Apache 配置因为我认为我的问题与它的关系比与 Laravel 的关系更密切。
我的项目名称是简历后端
好吧,我的网络项目正在/var/www/html/.
尝试部署我的新应用程序名称简历。所以我的 apache 配置sites-enabled/000-default.conf
是:
<VirtualHost *:80>
Redirect "/cv_backend" "https://my-dns/cv_backend"
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/cv_backend/public>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Require all granted
</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 index.htm
</IfModule>
Alias /cv_backend '/var/www/html/cv_backend/public'
</VirtualHost>
我的应用程序位于:/var/www/html/cv_backend
。但当我尝试访问我的应用程序时,我只能看到项目的文件系统:
.htaccess
对于我的 laravel 应用程序的其他部分是:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase '/cv_backend'
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
正如你所看到的,改写应用程序名称(cv_backend)的基本路径。
我认为这与检测到错误路径的公共 laravel 应用程序有关,但我不知道为什么。
最后我必须说,我有 php 7.*,为了部署新版本的 laravel 项目,我升级到了 8.1。我认为这个新安装没有问题,我测试过,php artisan tinker
运行良好!
但我不明白为什么不能正确加载我的应用程序。
更新。回复中。@matigo
如上所述,我已经为我的项目创建了一个配置文件@matigo
,这里是我的文件(cv_backend.conf
):
<VirtualHost *:80>
Redirect "/cv_backend" "https://mi-servidor.ddns.net/cv_backend"
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/cv_backend/public
<Directory /var/www/html/cv_backend/public>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Require all granted
</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 index.htm
</IfModule>
Alias /cv_backend '/var/www/html/cv_backend/public'
</VirtualHost>
但仍然面临同样的问题。(我调用命令来应用配置:a2ensite cv_backend.conf
但仍然没有任何作用)