Cette machine utilise un environnement de fenêtre, tout est normal, mais lorsqu'elle est déployée sur un système Linux (équipé de nginx), lorsqu'on y accède, le contrôleur et les méthodes peuvent être exécutés normalement, et la page peut également être sortie, mais la page de sortie est fichier css manquant, j'ai vérifié et trouvé une erreur 500. La demande a été redirigée vers le dossier public :
.
public/web/css/css.css
Le nom de domaine est :
aaa.com
L'accès direct à aaa.com exécutera Public/index.php (car nginx est configuré pour rediriger la demande vers le dossier public), et la page peut également être affichée normalement, mais la page demandée :
url:aaa.com/web/css/css.css
Mais il s’agit de 500 erreurs, je n’arrive pas à comprendre. Merci de me donner quelques conseils..
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)(/.+)$;
}
}
Bien que vous puissiez accéder à la page d'accueil maintenant, il y a un autre problème maintenant. Mon projet a un frontend et un backend accessibles, mais le backend n'est pas accessible. C'est ainsi que j'implémente le frontend et le backend. . J'utilise RouteProvider. La méthode map dans .php configure deux fichiers de routage :
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');
});
}
Maintenant, je ne peux pas me connecter au backend, c'est-à-dire que xxx.com/Am/Index/index enverra une erreur 500 et l'ajax dans le frontend ne pourra pas être exécuté.
.
Merci pour l'invitation.
Je pense personnellement qu'il y a quelques erreurs dans le déploiement sous Linux :
1. Sensible à la casse.
2. La partie développement du dossier sous Laravel utilise des liens symboliques.
3.index.php Sous public, les ressources statiques doivent correspondre à public.
Si le problème n'est pas résolu, veuillez publier le répertoire de la structure de votre projet
Merci pour l'invitation !
Vous ne pouvez les exclure qu'un par un comme ceci
Résoudre les problèmes de cache de fichiers
Problème d'autorisation du répertoire, modifiez les autorisations du répertoire en 755
500 est une erreur interne du serveur, indiquant qu'il y a une erreur dans votre code, pas 404, Not found
Les utilisateurs et les groupes doivent être définis dans la configuration de php-fpm
Modifier la configuration du groupe d'utilisateurs
Définir le groupe d'utilisateurs sur nginx
Les répertoires suivants de Laravel nécessitent une autorisation en écriture
La configuration vhost pour laravel est la suivante :
500 L'erreur est très simple ~
500 S'il y a une erreur, il y aura certainement une invite
Le panneau réseau du navigateur ne pourra peut-être pas capturer les résultats. Vous pouvez l'ouvrir directement dans une nouvelle note pour afficher les astuces
.Ou vérifiez les fichiers sous ce répertoire Chaque fois qu'une erreur se produit, un journal sera généré
.la réécriture ne fonctionne pas. . Vous devez d'abord déterminer si le fichier existe avant de le réécrire
Il est préférable de publier l'erreur renvoyée par le framework
Merci à tous pour votre aide. C'est dommage qu'elle ne puisse finalement être adoptée que par un grand dieu. La situation est comme ça, et je l'expliquerai ici au cas où quelqu'un d'autre aurait la même situation que moi. Si la même situation que moi se produit, veuillez d'abord vérifier s'il y a des fichiers de cache dans le répertoire bootstrap/cache du serveur. S'il y en a, veuillez les effacer et réessayer. Cela est effectivement dû à l'existence du cache.
.