如何在Nginx Ubuntu 16.04服务器上部署Laravel应用程序?

时间:2018-01-17 07:13:39

标签: laravel nginx deployment

我想在nginx ubuntu 16.04服务器上部署简单的laravel应用程序。

我已将我的应用置于/var/www/html文件夹

在我的服务器上,我已经设置了phpmysql

我在/etc/nginx/sites-enabled/myapp.com

中添加了以下代码
server {
listen 80;
listen [::]:80;

root /var/www/html/MyApp/public;
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;

server_name myapp.com;
error_log  /var/log/nginx/myapp.com.log error;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

 location ~ \.php$ {
     try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass unix:/run/php/php7.0-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
}

  location ~ /\.ht {
    deny  all;
  }

}

但它没有运行应用程序,而是下载文件,所以我搜索并找到了stackoverflow链接:

Nginx serves .php files as downloads, instead of executing them

但这在我的案例中不起作用。

我对nginx不太了解,请帮助我。

1 个答案:

答案 0 :(得分:0)

当php-fpm未运行或无法找到套接字时,nginx将显示错误502(错误的网关)。

在你的情况下,我认为问题出在这一行:

fastcgi_pass unix:/run/php/php7.0.22-fpm.sock;

尝试将其更改为

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

保存并重新加载或重新启动nginx。