头像

nginx+php-fpm配置后页面显示空白的解决方法

由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件: vi /etc/nginx/fastcgi_params 在文件的最后增加两行:

  1. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  2. fastcgi_param PATH_INFO                $fastcgi_script_name;

然后重启一下服务:

service nginx -s reload

还有一种方法是修改 nginx的配置如下:

server {
listen 80;
server_name host;
root /opt/app/phpMyAdmin-4.7.8-all-languages/;

index index.html index.htm index.php;

location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass remote_php_ip:9000;
#fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
}

}

头像

nginx 出现413 Request Entity Too Large问题的解决方法

使用php上传图片(大小1.9M),出现 nginx: 413 Request Entity Too Large 错误。

根据经验是服务器限制了上传文件的大小,但php默认的文件上传是2M,应该不会出现问题。

打开php.ini,把 upload_max_filesize 和 post_max_size 修改为20M,然后重启。

再次上传,问题依旧,可以排除php方面的问题。

原来nginx默认上传文件的大小是1M,可nginx的设置中修改。

解决方法如下:

1.打开nginx配置文件 nginx.conf, 路径一般是:/etc/nginx/nginx.conf。

2.在http{}段中加入 client_max_body_size 20m; 20m为允许最大上传的大小。

3.保存后重启nginx,问题解决。

头像

linux nginx启动 重启 关闭命令

启动操作

 启动代码格式:nginx安装目录地址 -c nginx配置文件地址

例如:

[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

停止操作
停止操作是通过向nginx进程发送信号来进行的

步骤1:查询nginx主进程号

ps -ef | grep nginx

在进程列表里 面找master进程,它的编号就是主进程号了。

步骤2:发送信号

从容停止Nginx:
kill -QUIT 主进程号  
例如:kill -QUIT 16391

快速停止Nginx:
kill -TERM 主进程号  

强制停止Nginx:
kill -9 主进程号

另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

kill -信号类型'/usr/local/nginx/logs/nginx.pid'

 

平滑重启

如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:

kill -HUP 住进称号或进程号文件路径  
或者使用
/usr/nginx/sbin/nginx -s reload

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

nginx -t -c /usr/nginx/conf/nginx.conf 
或者
/usr/nginx/sbin/nginx -t
头像

Ubuntu部署PHP7、Nginx、MySQL网站环境过程

第一、升级当前系统数据源

sudo apt-get update && sudo apt-get upgrade

在我们当前的Ubuntu环境中,执行更新升级过程,如果看到是否需要继续,输入y回车继续。

第二、安装Nginx环境

sudo apt-get install nginx

执行一键命令,安装Nginx,如果安装完毕之后我们输入当前服务器、VPS主机的IP地址在浏览器中执行可以看到默认首页提示Nginx安装完毕,就表示没有问题,继续下面。

第三、配置Nginx基本环境

1、替换默认配置

tail /etc/nginx/sites-available/default -n 13 | cut -c 2- | sudo tee /etc/nginx/sites-available/june-fj.com 1> /dev/null

执行命令。如果我们自己的网站需要根据实际的需要替换掉红色的网址部分。

2、配置网站文档(/etc/nginx/sites-available/june-fj.com)

server {

listen 80;

listen [::]:80;

server_name june-fj.com;

root   /var/www/june_fj.com;

index  index.html index.php;

location / {

try_files $uri $uri/ =404;

}

}

我们需要添加对应站点的配置文件,然后根据实际的部署域名绑定修改配置文件。注意默认首页我采用的是index.html和index.php。

3、创建网站文件夹目录

从配置文件中,我设置的是/var/www/june-fj.com为网站目录,我们可以根据实际的需要设置,然后我们需要创建对应的目录。

mkdir -p /var/www/june-fj.com

4、启动设置

sudo ln -s /etc/nginx/sites-available/june-fj.com /etc/nginx/sites-enabled

sudo rm /etc/nginx/sites-enabled/default

sudo systemctl restart nginx

这里我们启动对应网站的配置,以及删除默认系统的根目录。重启Nginx生效。

第四、部署PHP7

1、安装PHP7包

sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm

这里我用系统自带的PHP7源文件安装。

2、修改配置文件(/etc/nginx/sites-available/june-fj.com)

server {

listen 80;

listen [::]:80;

server_name june-fj.com ;

root /var/www/june-fj.com;

index index.html index.php;

location / {

try_files $uri $uri/ =404;

}
location ~ \.php$ {

include snippets/fastcgi-php.conf;

include fastcgi_params;

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

fastcgi_param SCRIPT_FILENAME /var/www/banwagong.me$fastcgi_script_name;

}

}

3、启动配置生效

sudo systemctl restart php7.0-fpm nginx

第五、安装MySQL数据库

1、安装自带环境包数据库

sudo apt-get install mysql-server php7.0-mysql

安装过程中需要用到设置ROOT数据库密码。

2、数据库安全配置

sudo mysql_secure_installation

根据提示进行数据库的安全配置以及删除默认没用的数据表。

3、创建数据库和数据表

mysql -u root -p

这里我们进入数据库管理,进行创建数据库表和用户。

CREATE DATABASE web;

CREATE USER ‘junefj’ IDENTIFIED BY ‘june-fj.com';

GRANT ALL PRIVILEGES ON ban.* TO ‘junefj';

quit

4、启动生效

sudo systemctl restart php7.0-fpm

最后,我们可以上传程序,然后安装部署网站程序。

头像

Nginx环境运行Laravel的配置

修改文件:nginx.conf

修改前记得备份,万一改错了还能还原回去。

server {  
        listen  80;    
        server_name localhost;    
        set $root_path '/usr/local/app/wxsys/public';    
        root $root_path;    
        
        index index.php index.html index.htm;    
        
        try_files $uri $uri/ @rewrite;    
        
        location @rewrite {    
            rewrite ^/(.*)$ /index.php?_url=/$1;    
        }    
        
        location ~ \.php {    
        
            fastcgi_pass 127.0.0.1:9000;    
            fastcgi_index /index.php;    
        
            fastcgi_split_path_info       ^(.+\.php)(/.+)$;    
            fastcgi_param PATH_INFO       $fastcgi_path_info;    
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;    
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
            include                       fastcgi_params;  
        }    
        
        location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {    
            root $root_path;    
        }    
        
        location ~ /\.ht {    
            deny all;    
        }    
    }