lnmp环境搭建

下载PHP      (下载5.x版本的)

网站php.net

1、安装php依赖的第三方库

yum install gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel

2、编译安装php

./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql --with-mysqli \
--with-openssl --with-zlib \
--with-curl --with-gd \
--with-jpeg-dir --with-png-dir \
--with-iconv --enable-fpm \
--enable-zip --enable-mbstring \
--with-pdo-mysql --with-mysql-sock=/tmp/mysql.sock
make -j 4 && make install

#配置php在源码解压目录

#cp php.ini-production /usr/local/php/etc/php.ini
#vi /usr/local/php/etc/php.ini
date.timezone = Asia/Shanghai

#配置php-fpm      #在源码目录

#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#vi /usr/local/php/etc/php-fpm.conf
user=nginx
group=nginx
pid=run/php-fpm.pid
#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#chmod +x /etc/rc.d/init.d/php-fpm
#service php-fpm start

fastcgi代理配置

#vi /usr/local/php/etc/php-fpm.conf

[global]
pid=run/php-fpm.pid
[www]
user=nginx
group=nginx
listen=127.0.0.1:9000
pm=dynamic
pm.max_children=5                    #子进程最大数量
pm.start_servers=2                   #在启动时创建的子进程数量
pm.min_spare_servers=1               #空闲子进程的最小数量
pm.max_spare_servers=3               #空闲子进程的最大数量
pm.process_idle_timeout=10s          #一个空闲进程空闲多少秒后被杀死
pm.max_requests=500                  #每个子进程处理完多少请求之后自动重启,为防止php第三方库内存泄露问题,设置0则不自动重启会一直处理请求

配置

#vi /usr/local/php/etc/php-fpm.conf

listen=/usr/local/php/php-fcgi.sock;
listen.owner=nginx  #这个直接上面一句位置下面
listen.group=nginx  #这个直接卸载上面一句位置下面   


#nginx配置
location ~ \.php$ {
	root html/wordpress;
	fastcgi_pass unix:/usr/local/php/php-fcgi.sock;
	fastcgi_index index.php;
	fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
	include        fastcgi_params;
}  

nginx配置文件详情

load_module modules/ngx_stream_module.so;   #动态加载模块,必须写道开头
user  nginx;   #使用useradd nginx    添加一个nginx用户
worker_processes  4;   #cpu核心数 * 2
worker_rlimit_nofile   102400;  #配置nginx打开最大文件数  (每个工作进程绑定一个cpu,worker_cpu_affinity配置)
worker_cpu_affinity 0001 0010 0100 1000;  #工作进程使用哪个cpu的核心 (以四核为例)  0001是4核的第一个核心 0010是4核的第二个核心 

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    use epoll;
    worker_connections  10240;
}


http {
    include       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  logs/access.log  main;   #在server虚拟目录里面配置日志,这里是全局日志

    sendfile        on;   
    #tcp_nopush     on;

    

    server_tokens off;  #错误的时候关闭输出版本号


    #keepalive_timeout  0;
    keepalive_timeout  30;

    gzip  on;   #压缩会占用cpu
    gzip_buffers 4 16k;
    gzip_comp_level 3;  #压缩等级
    gzip_disable "MSIE[1-6]";   #ie浏览器1-6禁用gzip
    gzip_min_length 1k;
    gzip_http_version 1.0;
    gzip_types text/plaion application/html application/css application/js;  #可以压缩的文件类型
    gzip_vary on;  #根据http头判断是否支持压缩

    client_max_body_size 8m;   #默认允许客户端最大上传文件大小
	
	
	
	
	include vhost/fastcgi_proxy.conf;            #inlude vhost配置文件
	
	
	#fastcgi 
	fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=fastcgi_cache_zone:128m inactive=5m max_size=10g;
	#缓存目录  目录层级   缓存区名称和大小   移除多长时间未访问的缓存数据   最大占用磁盘空间
	fastcgi_buffering on;                               #默认on,是否缓存fastcgi响应
	fastcgi_buffer_size 64k;                         #缓存区大小
	fastcgi_buffers 8 32k;                              #指定多少与多大缓存区来缓存fastcgi响应
	fastcgi_temp_path fastcgi_temp 1 2;                 #默认目录fastcgi_temp
	fastcgi_max_temp_file_size 1024m;                   #默认1024m,单个临时文件最大大小
	fastcgi_temp_file_write_size 128k;                  #一次性写入临时文件数据大小
	fastcgi_request_buffering on;                       #默认on,是否先缓存整个客户端请求正文,再发送给fastcgi服务器
	fastcgi_connect_timeout 60s;                        #默认60秒,与fastcgi服务器建立连接超时时间
	fastcgi_read_timeout 300s;                          #默认60秒,读取fastcgi服务器响应超时时间
	fastcgi_send_timeout 300s;                          #默认60秒,发送请求到fastcgi服务器超时时间
	##fastcgi  end
	
	
	
	
	

}

vhost/fastcgi_proxy.conf

upstream fastcgi_backend{
	server 127.0.0.1:9000;
	keepalive 8;    #开启keepalive必须配置下面的server
}

#两个server启动一个
server{    #开启keepalive必须配置的server
	location / {
		fastcgi_pass fastcgi_backend;    
		fastcgi_keep_conn on;
	}
	
}




server{
	listen 88;
	server_name localhost;
	
	
	location / {
		root html/wordpress;
		index index.php index.html;
	}
	
	
	
	location ~ \.php$ {
        root html/wordpress;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
		#fastcgi_cache fastcgi_cache_zone;                     #指定缓存区名称
		#fastcgi_cache_key $host$request_uri;                  #定义缓存的key,根据md5值为缓存文件名
		#fastcgi_cache_valid 200 302 10m;
		#fastcgi_cache_valid 301 1d;
		#fastcgi_cache_valid any 1m;
    }
}

 

你可能感兴趣的:(nginx)