Centos7、Nginx-1.4.2、PHP-7.2.1环境搭建

前言

centos平台编译环境使用如下指令

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

安装的文件路径

  1. /usr/local/src/lnmp/ 放入压缩包及安装需要的源代码文件
  2. /usr/local/src/lnmp/pcre-8.37.tar.gz pcre安装源码压缩包(用于重写rewrite)
  3. /usr/local/src/lnmp/zlib-1.2.8.tar.gz zlib安装源码压缩包(用于gzip压缩)
  4. /usr/local/src/lnmp/openssl-1.0.1t.tar.gz 安装ssl(某些vps默认没装ssl)
  5. /usr/local/src/lnmp/nginx-1.4.2.tar.gz nginx安装源码压缩包
  6. /usr/local/src/lnmp/php-7.2.1.tar.gz php7安装源码压缩包
  7. /usr/local/lnmp/nginx-1.4.2 nginx-1.4.2的安装存入目录
  8. /usr/local/lnmp/php-7.2.1 php-7.2.1的安装存入目录

拉取所有源码安装文件压缩包

进入源码目录

可以是任何目录,本文选定的是 /usr/local/src/lnmp/

cd /usr/local/src/lnmp/

拉取pcre源码压缩文件并安装

cd /usr/local/src/lnmp/
wget https://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
tar -zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make
make install

拉取zlib源码压缩文件并安装

官网:http://zlib.net/

cd /usr/local/src/lnmp/
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

安装ssl(某些vps默认没装ssl)

cd /usr/local/src/lnmp/
wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz

Nginx

下载地址:https://nginx.org/download/

Nginx安装

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,
下面是把 Nginx 安装到 /usr/local/lnmp/nginx-1.4.2 目录下的详细步骤:

cd /usr/local/src/lnmp/
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2

./configure --prefix=/usr/local/lnmp/nginx-1.4.2 \
--sbin-path=/usr/local/lnmp/nginx-1.4.2/nginx \
--conf-path=/usr/local/lnmp/nginx-1.4.2/nginx.conf \
--pid-path=/usr/local/lnmp/nginx-1.4.2/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/lnmp/pcre-8.37 \
--with-zlib=/usr/local/src/lnmp/zlib-1.2.8 \
--with-openssl=/usr/local/src/lnmp/openssl-1.0.1t

make
make install

–with-pcre=/usr/local/src/lnmp/pcre-8.37 指的是pcre-8.37 的源码路径。
–with-zlib=/usr/local/src/lnmp/zlib-1.2.8 指的是zlib-1.2.8 的源码路径。

安装成功后 /usr/local/lnmp/nginx-1.4.2 目录下如下:

fastcgi.conf            koi-win             nginx.conf.default
fastcgi.conf.default    logs                scgi_params
fastcgi_params          mime.types          scgi_params.default
fastcgi_params.default  mime.types.default  uwsgi_params
html                    nginx               uwsgi_params.default
koi-utf                 nginx.conf          win-utf

Nginx运行命令

启动:确保系统的 80 端口没被其他程序占用,运行 /usr/local/lnmp/nginx-1.4.2/nginx 命令来启动 Nginx

netstat -ano|grep 80

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

查看Nginx进程是否启动

ps aux | grep nginx
ps -ef | grep nginx

查看Nginx占用的端口号

netstat -tlnp

停止nginx

传统停止Nginx的三种方式

  1. 立即停止Nginx服务
/usr/local/lnmp/nginx-1.4.2/sbin/nginx -s stop
  1. 完成当前任务后停止
/usr/local/lnmp/nginx-1.4.2/sbin/nginx -s quit
  1. 杀死Nginx进程
killall nginx

也可以用信号量来进行操作
关闭:

kill -INT `cat /usr/local/lnmp/nginx-1.4.2/nginx.pid`

重启:

kill -USR2 `cat /usr/local/lnmp/nginx-1.4.2/nginx.pid`

到这里nginx就安装完成了,如果只是处理静态html就不用继续安装了

遇到问题可以参考Nginx中文文档-安装 Nginx

如果你需要处理php脚本的话,还需要安装php-fpm。

PHP

PHP介绍

久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说。如果你是升级或新安装,那你首先需要考虑php7和程序是否存在兼容性,如果程序是基于php5开发的,那么就需要考虑php7是否适合你当前的生产环境,今天我就实操并安装用于生产中。
先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节。

安装扩展包并更新系统内核

yum install epel-release -y
yum update

安装php依赖组件(包含Nginx依赖)

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel

先安装iconv

cd /usr/local/src/
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar -zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local
make && make install

创建用户和组,并下载php安装包解压

cd /usr/local/src/lnmp/
groupadd www
useradd -g www www
wget http://am1.php.net/distributions/php-7.2.1.tar.gz
tar -zxvf php-7.2.1.tar.gz
cd php-7.2.1

cp -frp /usr/lib64/libldap* /usr/lib/

./configure --prefix=/usr/local/lnmp/php-7.2.1 \
--with-config-file-path=/usr/local/lnmp/php-7.2.1/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm \
--with-iconv=/usr/local/

make
make install

完成安装后配置php.ini文件

cd /usr/local/src/lnmp/php-7.2.1/
cp php.ini-development /usr/local/lnmp/php-7.2.1/etc/php.ini
cp /usr/local/lnmp/php-7.2.1/etc/php-fpm.conf.default /usr/local/lnmp/php-7.2.1/etc/php-fpm.conf
cp /usr/local/lnmp/php-7.2.1/etc/php-fpm.d/www.conf.default /usr/local/lnmp/php-7.2.1/etc/php-fpm.d/www.conf

修改php-fpm pid 的配置项

cd /usr/local/lnmp/php-7.2.1/etc
vim php-fpm.conf
# line 17 : pid = /usr/local/lnmp/php-7.2.1/var/run/php-fpm.pid

修改 php.ini 配置项

cd /usr/local/lnmp/php-7.2.1/etc
vim php.ini
# line 192 : short_open_tag = On

php-fpm运行命令

INT, TERM 立刻终止 QUIT 平滑终止 USR1 重新打开日志文件 USR2 平滑重载所有worker进程并重新载入配置和二进制模块

查看是否启动:ps -ef | grep php-fpm

启动:运行 /usr/local/lnmp/php-7.2.1/sbin/php-fpm 命令来启动 php-fpm

关闭:

kill -INT `cat /usr/local/lnmp/php-7.2.1/var/run/php-fpm.pid`

重启:

kill -USR2 `cat /usr/local/lnmp/php-7.2.1/var/run/php-fpm.pid`

查看php-fpm进程数:

ps aux | grep -c php-fpm

命令行下执行php,提示找不到命令 -bash: /usr/bin/php: No such file or directory

vi /etc/profile

在文件底部增加一行配置

export PATH=/usr/local/php/bin:$PATH

保存退出

source /etc/profile

让nginx处理php程序

location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

到这里php7就安装完成了

遇到问题可以参考CentOS编译安装php7.2

创建几个简单的Shell文件来控制服务启停

cd /usr/local/lnmp

nginx.sh

#!/usr/bin/bash

# Author : jiangxiaobo
# Copyright (c) https://blog.csdn.net/jiangxiaobo666
# Script follows here:

echo "start / stop / restart,default start?"
read action
if [ "$action" == 'restart' ]
then
    /usr/bin/kill -INT `/usr/bin/cat /usr/local/lnmp/nginx-1.4.2/nginx.pid`
    sleep 1
    /usr/local/lnmp/nginx-1.4.2/nginx
elif [ "$action" == 'stop' ]
then
    /usr/bin/kill -INT `/usr/bin/cat /usr/local/lnmp/nginx-1.4.2/nginx.pid`
else
    /usr/local/lnmp/nginx-1.4.2/nginx
fi

#chmod +x ./nginx.sh
#./nginx.sh

php-fpm.sh

#!/usr/bin/bash

# Author : jiangxiaobo
# Copyright (c) https://blog.csdn.net/jiangxiaobo666
# Script follows here:

echo "start / stop / restart,default start?"
read action
if [ "$action" == 'restart' ]
then
    /usr/bin/kill -INT `/usr/bin/cat /usr/local/lnmp/php-7.2.1/var/run/php-fpm.pid`
    sleep 1
    /usr/local/lnmp/php-7.2.1/sbin/php-fpm
elif [ "$action" == 'stop' ]
then
    /usr/bin/kill -INT `/usr/bin/cat /usr/local/lnmp/php-7.2.1/var/run/php-fpm.pid`
else
    /usr/local/lnmp/php-7.2.1/sbin/php-fpm
fi

#chmod +x ./php-fpm.sh
#./php-fpm.sh

启动nginx 设置 自定义配置文件

cd /usr/local/lnmp/
mkdir etc
cd etc/
mkdir nginx
cd nginx/
mkdir html
cp /usr/local/lnmp/nginx-1.4.2/nginx.conf ./nginx.conf
cp /usr/local/lnmp/nginx-1.4.2/mime.types ./mime.types
cp /usr/local/lnmp/nginx-1.4.2/html/* ./html/
vim nginx.conf
mkdir var
mkdir conf.d
cd /usr/local/lnmp/etc/nginx/conf.d
vim www.localhost.com.conf
vim api.localhost.com.conf
cd /usr/local/lnmp/var
mkdir log
mkdir run

/usr/local/lnmp/etc/nginx/nginx.conf 文件内容如下:


#user  nobody;
worker_processes  1;

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

#pid        logs/nginx.pid;

error_log /usr/local/lnmp/etc/nginx/var/log/error.log warn;
pid /usr/local/lnmp/etc/nginx/var/run/nginx.pid;

events {
    worker_connections  1024;
}


http {
    
    client_max_body_size 8m;
    
    include       /usr/local/lnmp/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  /usr/local/lnmp/etc/nginx/var/log/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";
    
    include /usr/local/lnmp/conf.d/*.conf;
    
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

/usr/local/lnmp/etc/nginx/conf.d/www.localhost.com.conf 文件内容如下:

    server {
        listen       80;
        server_name  www.localhost.com www.localhost.cn;
        
        #ssl on;
        #ssl_certificate cert/2206272_mapi.fufentong.com.pem;
        #ssl_certificate_key cert/2206272_mapi.fufentong.com.key;
        #ssl_session_timeout 5m;
        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #ssl_prefer_server_ciphers on;

        #charset koi8-r;

        access_log  /usr/local/lnmp/etc/nginx/var/log/www.localhost.access.log  main;
        error_log  /usr/local/lnmp/etc/nginx/var/log/www.localhost.error.log;
        
        #location /supplier {
        #    root   /data/jifen/thinkphp5/public;
        #    index  index.html index.htm index.php;
        #    if (!-e $request_filename) {
        #        rewrite "^(.*)$" /index.php/$1 last;
        #        break;
        #    }
        #}
        
        location / {
            #proxy_read_timeout 150;
            root   /data/www.localhost.com/public;
            index  index.html index.htm index.php;
            if (!-e $request_filename) {
                rewrite "^/[a-z]{1,9}/(.*)$" /index.php/$1 last;
                break;
            }
        }

        #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/local/lnmp/etc/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$ {
            root   /data/www.localhost.com/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #    fastcgi_read_timeout 150;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        #    fastcgi_param  PATH_INFO $1;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

/usr/local/lnmp/conf.d/api.localhost.com.conf 文件内容如下:

    #....

启动命令:/usr/local/lnmp/nginx-1.4.2/nginx -c /etc/nginx/nginx.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值