在nginx里location里面设置
proxy_buffering off;
或者
在nginx里location里面设置
proxy_buffering off;
或者
由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件: vi /etc/nginx/fastcgi_params 在文件的最后增加两行:
然后重启一下服务:
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;
}
}
使用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,问题解决。
启动操作
启动代码格式: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
第一、升级当前系统数据源
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.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; } }