Diese Maschine verwendet eine Fensterumgebung, alles ist normal, aber bei der Bereitstellung auf einem Linux-System (ausgestattet mit Nginx) können der Controller und die Methoden beim Zugriff normal ausgeführt werden und die Seite kann auch ausgegeben werden, die Ausgabeseite jedoch CSS-Datei fehlt, ich habe einen 500-Fehler gefunden. Die Anfrage wurde in den öffentlichen Ordner umgeleitet
public/web/css/css.css
aaa.com
Durch den direkten Zugriff auf aaa.com wird Public/index.php ausgeführt (da Nginx so eingerichtet ist, dass die Anforderung an den öffentlichen Ordner umgeleitet wird), und die Seite kann auch normal ausgegeben werden, aber die angeforderte Seite:
url:aaa.com/web/css/css.css
Aber es sind 500 Fehler. Bitte gebt mir einen Rat.
Jetzt habe ich herausgefunden, dass ein Teil des Problems ein Nginx-Konfigurationsproblem ist. Ich habe die Einstellungen online kopiert:
server {
listen 80;
server_name xxx;
access_log xxx main;
root xxx;
#root xxx;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
}
}
Obwohl Sie jetzt auf die Homepage zugreifen können, gibt es ein weiteres Problem. Auf das Frontend kann zugegriffen werden, aber auf das Backend kann nicht zugegriffen werden . Ich verwende RouteProvider. Die Kartenmethode in .php konfiguriert zwei Routing-Dateien:
public function map(Router $router) {
//加载前台路由文件
$router->group([
'namespace' => 'App\Http\WebControllers',
// 'prefix' => 'Web',//引入前缀
//'middleware' => 'some_common_middleware',
], function ($router) {
require app_path('Http/routes/routes.php');
});
//加载后台路由文件
$router->group([
'namespace' => 'App\Http\AdminControllers',
'middleware' => 'App\Http\Middleware\LoginMenuMiddleware',
'prefix' => 'Am',//引入前缀
], function ($router) {
require app_path('Http/routes/admin_routes.php');
});
}
Jetzt kann ich mich nicht beim Backend anmelden, das heißt, xxx.com/Am/Index/index sendet einen 500-Fehler und der Ajax im Frontend kann nicht ausgeführt werden.
Projektstrukturverzeichnis:
Vielen Dank an alle für Ihre Hilfe. Die Situation ist am Ende nur so, und ich werde es hier erklären, falls jemand anderes die gleiche Situation hat wie ich Wenn die gleiche Situation wie bei mir auftritt, prüfen Sie bitte zunächst, ob sich Cache-Dateien im Bootstrap-/Cache-Verzeichnis des Servers befinden. Wenn ja, löschen Sie diese bitte und versuchen Sie es erneut
谢谢你得邀请。
个人觉得linux上部署的错误几点:
1.大小写敏感。
2.laravel下的文件夹开发部分是用的软连接。
3.index.php 在public下,静态资源应该和public对应。
如果没解决问题,请贴出你得项目结构目录
谢邀!
像这样只能一个个排除
排除文件缓存问题
目录权限问题,修改该目录权限755
500可是内部服务器错误,说明你的代码出错了,而不是404,Not found
php-fpm的配置中用户和组要设定
修改用户组配置
将用户组设置为nginx
laravel的如下目录需要有写权限
针对laravel的vhost配置如下:
500 错误很简单啦 ~
500 错误的话, 必定会有提示
浏览器里面的网络面板不一定能抓取到结果, 你可以 在新便签直接打开 查看提示
或者 去查看一下这个目录下面的文件, 凡是发生错误都会产生一条日志
rewrite不行。。要先判断下文件是否存在再去rewrite
最好贴下框架返回的错误
谢谢大家的帮助,很可惜最后只能给一位大神采纳.情况是这样的,我这里做出说明以备后来的人发生跟我一样的情况.
如果出现跟我一样的情况,请先检查服务器bootstrap/cache目录下是否有缓存文件,有则请清空,在尝试.确实是由于缓存的存在导致的.