Heim > Fragen und Antworten > Hauptteil
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:
PHPz2017-06-05 11:10:16
谢谢你得邀请。
个人觉得linux上部署的错误几点:
1.大小写敏感。
2.laravel下的文件夹开发部分是用的软连接。
3.index.php 在public下,静态资源应该和public对应。
如果没解决问题,请贴出你得项目结构目录
PHP中文网2017-06-05 11:10:16
vim /etc/php-fpm.d/www.conf
修改用户组配置
user = nginx
group = nginx
将用户组设置为nginx
chown -R nginx:nginx /path/to/your/webroot
chmod -R 0775 bootstrap
chmod -R 0775 storage
root /www/path/to/public/;
location / {
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
# 解析PHP
location ~ .+\.php($|/) {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php?IF_REWRITE=1;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;
fastcgi_param HTTP_PROXY "";
}
迷茫2017-06-05 11:10:16
500 错误很简单啦 ~
500 错误的话, 必定会有提示
浏览器里面的网络面板不一定能抓取到结果, 你可以 在新便签直接打开 查看提示
或者 去查看一下这个目录下面的文件, 凡是发生错误都会产生一条日志
$ cd {项目目录}/storage/logs
伊谢尔伦2017-06-05 11:10:16
谢谢大家的帮助,很可惜最后只能给一位大神采纳.情况是这样的,我这里做出说明以备后来的人发生跟我一样的情况.
如果出现跟我一样的情况,请先检查服务器bootstrap/cache目录下是否有缓存文件,有则请清空,在尝试.确实是由于缓存的存在导致的.