Maison > Questions et réponses > le corps du texte
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é.
.
PHPz2017-06-05 11:10:16
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
PHP中文网2017-06-05 11:10:16
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
黄舟2017-06-05 11:10:16
500 est une erreur interne du serveur, indiquant qu'il y a une erreur dans votre code, pas 404, Not found
PHP中文网2017-06-05 11:10:16
vim /etc/php-fpm.d/www.conf
Modifier la configuration du groupe d'utilisateurs
user = nginx
group = nginx
Définir le groupe d'utilisateurs sur 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/ last;
break;
}
}
# 解析PHP
location ~ .+\.php($|/) {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script ;
set $path_info ;
}
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 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é
.$ cd {项目目录}/storage/logs
巴扎黑2017-06-05 11:10:16
la réécriture ne fonctionne pas. . Vous devez d'abord déterminer si le fichier existe avant de le réécrire
伊谢尔伦2017-06-05 11:10:16
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.
.