CentOS 7下搭建Nginx+php-fpm高性能Web服务器

First of all.原材料~

0.服务器/虚拟机/只要是能用的机娘一台。

1.CentOS镜像,刻录到光盘里或者写到U盘里 //最近新版的镜像貌似不能用ULTRAISO写入了,在这里推荐个小工具 点我下载

2.互联网连接。

3.Google //万一你把机娘玩坏了,记住,千万不要去百度!你会后悔的

4….还有什么想用的自己准备呗=。=

==============分割线==============

安装我就不多说了,自己随意,有的人喜欢最小安装,有的人喜欢带上GUI,我一般是Infrastructure Server(基础设施服务器)或者Basic Web Server(基本Web服务器),里面的软件包随意=。=  //反正提示没有去搜一下这个软件归属的软件包装上就可以了。

装完之后CentOS默认是开启SSH的,而且root可以远程登入,直接远程登入 //当然你要是想本地操作我也不拦着你=。=

//我要讲的是直接yum安装,不是源码安装。想要源码安装我不拦着你,给你PHP官方文档 http://php.net/manual/zh/install.unix.nginx.php 注意这是对于Nginx 1.4.X,官方repository是1.8.0

0.安装EPELrepo及Nginx官方repo  //nginx.rar 解压之后丢到/etc/yum.repos.d 然后执行yum update //新装的系统update时间会比较长=。=

1.关于系统防火墙及SELinux还有iptables的配置参考 https://blog.silversky.moe/works/centos-lamp-server-apachephpmariadb

2.安装Nginx

yum install nginx

3.设置Nginx开机启动

systemctl enable nginx

4.启动Nginx服务 //启动服务之后就可以访问IP看看效果了,Welcome to Nginx!

service nginx start

5.安装php-fpm  //当然有其他需求可以在php-fpm后面加

yum install php-fpm

6.设置php-fpm开机启动

systemctl enable php-fpm

7.启动php-fpm服务

service php-fpm start

8.配置Nginx

很久很久之前,Nginx只有一个nginx.conf //然而网路上大部分教程就是按照那个教的。。。

现在分为nginx.conf+conf.d里面所有的conf文件 //当然可以在nginx.conf里面设置include那些conf文件

9.配置nginx.conf //下面是我的nginx.conf别照搬。。。有些自己改改,符合自己服务器的性能

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main; #这个貌似我记得一开始是关的,你要是想开Access Log的话需要先创建/var/log/nginx文件夹,然后再创建access.log文件。上面的Error Log也是,其他所有的配置文件也是,指定Access Log或者Error Log地址后要创建文件夹并创建文件。否则启动Nginx服务的时候会报错

sendfile on;
#tcp_nopush on;

keepalive_timeout 65; #也是自己看着设置,KeepAlive设置过长会占用服务器资源,要是连接数过多会导致服务不可用。#个人见解?轻喷

gzip on; #默认是关闭的,开启之后会压缩请求内容再发送,会占用一定的系统资源,像Icarus这样的网站还是牺牲下资源压缩下内容吧

client_max_body_size 256M; #这个可以自己改,一开始是没有这个值的,没设置上传文件有时候会失败

include /etc/nginx/conf.d/*.conf; #include /etc/nginx/conf.d/目录下所有配置文件

}

10.配置Default.conf  //不喜欢这个也可以删了这个文件自己建一个xxx.conf

下面同样是我的Default.conf文件,同样别照搬。。。按照自己的需求来。。。

server {
listen 80; #侦听端口
server_name localhost; #服务器名称

charset utf-8; #服务器编码
access_log /var/log/nginx/log/host.access.log main; #Access log,参照上面的
try_files $uri $uri/ /index.php; #Geek给咱加的,如果没有这条,WordPress的固定链接就会404
root /var/www/html; #网站根目录
index index.php index.html index.htm; #主页名称

error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; #这个设置到网站根目录,一开始就因为我没设置这个导致boom
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;#从这往下到fastcgi_param REDIRECT_STATUS 200;都是我自己加的,你们随意
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht { #默认是注释掉的,用来禁止访问.htaccess文件
deny all; #同默认是注释掉的
}

11.所有都配置完了之后,重启nginx进程

service nginx restart

12.丢一个测试页面看看

在网站根目录下新建index.php

在里面输入

<?php phpinfo(); ?>

13.保存,现在访问网站看看,是不是显示PHP Info了?~

End~

转载请注明出处 Silver Sky Studio

原图地址:http://icarus.silversky.moe:666/archives/illustration/31030

konachan 210061

Comments

2 responses to “CentOS 7下搭建Nginx+php-fpm高性能Web服务器”

  1. CentOS 7下搭建HHVM+Nginx高性能Web服务器 | Silver Sky Studio Avatar

    […] 付链接:http://silversky.moe:233/rt/centos-7-nginx-php-fpm-high-performance-web-server […]

  2. 进阶——使用Unix Domain Socket优化Nginx+php-fpm性能 | Silver Sky Studio Avatar

    […] 0.未配置Nginx+php-fpm的请移步至http://silversky.moe:233/rt/centos-7-nginx-php-fpm-high-performance-web-server […]