laravel项目 在linux上的nginx配置,以及注意问题

首先,我这里linux用的是:centos 7.2  ,下面进入正文

假定服务器lnmp环境已经配置好,可以参照我另一篇博文

laravel项目,我是放在nginx的html文件夹下,nginx需要改动的地方就只有一个,即root,配置到laravel项目的public文件夹

    server {
         listen       80;
         server_name  localhost;
         root        /usr/share/nginx/html/此处是你的项目名/public;
 
         location / {
            try_files $uri $uri/ /index.php?$query_string;
            index index.php index.html index.htm;
          }

         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;
         }

         error_page 404 /404.html;
             location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
         }

    }

遇到的问题:

如果访问ip,或者虚拟机依旧无法打开网站,显示500错误(500即服务器错误)

当然,大家也可以到nginx的错误日志里去看具体原因(位置:/var/log/nginx/error.log)

第一次配置laravel,基本上问题都是vendor,storage文件夹权限问题

解决办法:修改项目中vendor、storage文件夹权限

在这之前,先看看nginxphp-fpm 在linux中的用户,nginx在安装的时候会自动创建nginx的用户和用户组,nginx的运行用户同样是写在conf配置文件里,每个人的配置文件地址可能不一样,我安装后修改使用的默认的配置文件(/etc/nginx/nginx.conf)

里面应该有这一句“user nginx; ”,表示以nginx用户运行nginx

如果nginx配置文件里没有这句话,加上


之后,查看php-fpm的用户,同样改成nginx

位置:/etc/php-fpm.d/www.conf,如下图


最后,进入laravel项目目录,执行:

    chown -R nginx:nginx vendor     //意思是:vendor文件夹的所有者修改为nginx

    chown -R nginx:nginx storage     //意思是:storage文件夹的所有者修改为nginx

这样,laravel项目就可以随意访问了,亲测有效( 或者更简单粗暴的方式是将laravel项目文件夹都给权限,不过这样不安全 )

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页