本機使用的是window環境,一切正常,但是部署到linux系統上(配的是nginx),在訪問的時候,控制器和方法都能正常執行,頁面也可以輸出,但是輸出的頁面卻缺少css檔,一查是500錯誤,已經將請求重定向到public資料夾下,
我的目錄結構是:
public/web/css/css.css
域名是:
aaa.com
直接存取aaa.com就會執行Publc/index.php(因為設定了nginx,將請求重定向到public資料夾下),也可以正常輸出頁面,但是頁面上請求的:
url:aaa.com/web/css/css.css
卻是500錯誤,百思不得其解,請大神指教.謝謝各位.
現在發現一部分問題是nginx設定問題,網路抄了個設定:
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)(/.+)$;
}
}
雖然現在可以訪問首頁了,但是現在有了另外的問題,我的項目是帶有前後台的,前台可以訪問,但是後台無法訪問,我是這樣實現前後台的,使用路由分離,我在RouteProvider.php中的map方法配置了兩個路由檔案:
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');
});
}
現在我的無法登入後台,即xxx.com/Am/Index/index會發送500錯誤,並且前台的ajax也無法執行.
專案結構目錄:
#謝謝大家的幫助,很可惜最後只能給一位大神採納.情況是這樣的,我這裡做出說明以備後來的人發生跟我一樣的情況.
如果出現跟我一樣的情況,請先檢查伺服器bootstrap/cache目錄下是否有快取檔案,有則請清空,在嘗試.確實是由於快取的存在導致的.
謝謝你得邀請。
個人覺得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目錄下是否有快取檔案,有則請清空,在嘗試.確實是由於快取的存在導致的.