我有一个 Laravel 应用程序,运行时运行良好,php artisan serve
但是当尝试使用 nginx 作为前端时,我遇到了各种各样的麻烦,无法让它正常工作。
我基本上有这样的结构:
root@server:/var/www/html# tree -d -L 4
.
`-- app
|-- C4
| `-- www
| |-- sites
| `-- site-assets
`-- prod
|-- app
|-- bootstrap
|-- config
|-- database
|-- public
|-- resources
|-- routes
|-- storage
`-- vendor
prod
Laravel 应用程序位于哪里
我可以打开主应用程序,但是有一个脚本prod/public/js
会检查其中是否C4/www/sites/
存在不起作用的目录,我怀疑我的 nginx 配置是罪魁祸首。
以下是我的 nginx 配置:
server {
listen 0.0.0.0:80;
listen [::]:80;
root /var/www/html/app/prod/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
免责声明:我不是这个应用程序的开发者。我只是一名帮忙的系统工程师。开发人员没有使用 nginx 的经验
编辑:添加我看到的一些错误/var/log/nginx/error.log
:
2023/02/07 22:25:17 [error] 91535#91535: *23 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.x.x, server: , request: "GET /checksite/domain.com HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.1-fpm.sock:", host: "192.168.x.x"
更新:将根目录更改为/var/www/html/app/prod/public
并将索引更改为index.php
。网站加载,但运行一些脚本,检查根目录之外的目录是否存在,如果不存在,则创建它。现在发生的情况是,该目录正在 laravel 应用程序内的公共目录中创建。
更新 2:我在浏览器控制台中看到 jQuery 错误
Uncaught SyntaxError: Unexpected non-whitespace character after JSON at position 2
我将在早上与开发人员讨论这个问题,看看他们是否可以帮忙调试。