Linux系统下Nginx+PHP环境的搭建

一、Nginx安装

1、下载 nginx 安装包

wget http://nginx.org/download/nginx-1.12.0.tar.gz

2、安装nginx 所需的依赖包

yum –y install gcc openssl-devel pcre-devel perl perl-devel perl-ExtUtils-Embed

 

3、安装 nginx

(1)解压 nginx 到/usr/local/下

tar xvf nginx-1.12.0.tar.gz –C /usr/local

(2) 更改目录名称

cd /usr/local 
mv nginx-1.12.0 nginx

(3)编译文件

[root@192 ~]#cd /usr/local/nginx 
[root@192 ~]#./configure --prefix=/usr/local/nginx \ 
--with-ipv6 --with-http_ssl_module \ 
--with-http_addition_module \ 
--with-http_realip_module \ 
--with-http_dav_module \ 
--with-http_flv_module \ 
--with-http_mp4_module \ 
--with-http_gzip_static_module \ 
--with-http_perl_module \ 
--with-mail --with-mail_ssl_module \ 
--with-http_stub_status_module \ 
--conf-path=/usr/local/nginx/nginx.conf

(4)执行以下命令安装

make && make install

(5)配置nginx.conf

[root@192 ~]#cd /usr/local/nginx/conf
[root@192 ~]#vim nginx.conf

#全局配置
user  nobody;   #指定用户组 
worker_processes  1; 
error_log  logs/error.log  notice; 
pid        logs/nginx.pid; 
worker_rlimit_nofile 65535; 
events { 
    use epoll; 
    worker_connections  65536;
}

#http服务配置
http{
        include /etc/nginx/mime.types;
        default_type    application/octet-stream;
        charset utf-8;
        log_format main '$remote_addr - $remote_user [$time_local] "$request"'
                        '$status $body_bytes_sent "$http_referer"'
                        '"$http_user_agent" "$http_x_forwarded_for"'
                        '"$gzip_ratio"'; 
        log_format download '$remote_addr - $remote_user [$time_local]'
                        '"$http_referer" "$http_user_gent" ' 
                        '"$http_range" "$sent_http_content_range"';
        client_max_body_size 20m; 
        client_header_buffers 32k; 
        large_client_header_buffers 4 32;
        sendfile    on;
        tcp_nopush  on;
        tcp_nodelay on;
        keepalive_timeout      60;
        client_header_timeout  10;
        client_body_timeout    10;
        send_timeout           10;


#gzip配置
#通过命令/usr/local/nginx/sbin/nginx –V 查看是否安装 gzip 模块。然后编辑配置文件。
        gzip  on;
        gzip_min_length    1k;
        gzip_buffers    4  16k;
        gzip_http_version  1.1;
        gzip_comp_level    2;
        gzip_type  text/plain application/x-javascript text/css application/xml; 
        gizp_vary  on; 

        include /usr/local/nginx/conf.d/*.conf;
}

(6)配置vhost.conf虚拟主机配置文件

server{ 
    listen 80; 
    server_name 192.168.0.100; 
    index index.html index.htm index.jsp index.php; 
    root  /var/www; 
    charset gb2312; 
}

(7)url 匹配配置

①通过 location 指令来对网页 URL 进行分析处理,所有扩展名为 gif,jpg。。。。的静态文件都交给nginx 处理,expires 指定静态文件过期时间。

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${
        root  /var/www; 
        expires 30d; 
}

②其他 html,jsp,php 等类似①那样配置。

(8)Nginx 的启动、关闭

①Nginx的启动

usr/local/nginx/sbin/nginx –t  #测试配置文件是否正确
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/nginx.conf  #启动 nginx 守护进程
usr/local/nginx/sbin/nginx –V  #查看版本以及相关配置信息

②Nginx的关闭

Kill -9 pid
cat /usr/local/nginx/logs/nginx.pid #Pid 查看

 

二、PHP的安装

1、 安装依赖包

yum –y isntall gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel libcurl libcurl-devel

2、 下载PHP 源文件

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz 
wget https://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz

3、 解压文件

tar xvf php-5.6.30.tar.gz -C /usr/local/ 

#然后重命名 
cd /usr/local ;mv php-5.6.30 php
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz |patch -d /usr/local/php -p1

4、 安装PHP 以及php-fpm

(1)编译php

[root@192 ~]# cd /usr/local/php 

[root@192 php]#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

(2)安装php

make 
make test 
make install

(3)设置php配置文件

cp php.ini-production /usr/local/php/lib/php.ini 
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

5、 配置和优化PHP-FPM

[root@192~]#vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid 
listen = 127.0.0.1:9000 
php_flag[display_errors] = off 
user = nobody 
group = nobody 
pm.max_children = 5 
rlimit_files = 65535 
request_terminate_timeout =1 0 
pm.max_requests = 500 
listen.allowed_clients = 127.0.0.1 
slowlog = /var/log/$pool.log.slow

6、 FastCgi 进程管理

#测试 php-fpm 配置 
/usr/local/php/sbin/php-fpm -t 
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t 
#启动 php-fpm 
/usr/local/php/sbin/php-fpm 
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf 
#关闭 php-fpm 
kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 
#重启 php-fpm 
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

7、 配置nginx 支持PHP

server{
        listen       20000; s
        erver_name  localhost;
        location / {
                root   /var/www;
                index  index.htm index.html index.php;
        }
        location ~ \.php$ {
                root           /var/www; 
                fastcgi_pass   127.0.0.1:9000; 
                fastcgi_index  index.php; 
                fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name; 
                include        fastcgi_params; 
        }
 
}

8、 测试PHP

在根目录下新建一个 phpinfo.php 文件,内容: <?php echo phpinfo(); ?>

[root@192 ~]# echo "<?php echo phpinfo(); ?> " > /var/www/phpinfo.php

然后通过 http://IP/phpinfo.php 访问。

 

 

发表回复

Your email address will not be published.

名字 *
电子邮件 *
站点