CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境

  • Post category:Linux

CentOS7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.25.35.45.55.67.07.1多版本全能环境

本文将详细介绍在CentOS7.x下编译安装Nginx1.10.3+MySQL5.7.16+PHP5.25.35.45.55.67.07.1多版本全能环境的完整攻略。

环境准备

本次安装需要准备以下环境:

  • CentOS7.x服务器
  • Nginx1.10.3源码包
  • MySQL5.7.16二进制安装包
  • PHP5.25.35.45.55.67.07.1源码包
  • gcc编译器
  • make工具
  • zlib-devel
  • openssl-devel
  • pcre-devel

安装过程

1. 安装MySQL5.7.16

下载MySQL5.7.16二进制安装包,进入安装目录执行以下命令:

# 解压安装包
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

# 创建MySQL用户和组
groupadd mysql
useradd -g mysql mysql

# 拷贝文件到安装目录
cp -R mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/
cd /usr/local/
mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql

# 修改数据目录和配置文件
cd /usr/local/mysql
mkdir data
chown -R mysql:mysql data
cp support-files/my-default.cnf /etc/my.cnf

# 初始化数据库
bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 启动MySQL服务
bin/mysqld_safe --user=mysql &

2. 编译安装Nginx1.10.3

下载Nginx1.10.3源码包,解压后执行以下命令:

# 安装依赖
yum install -y gcc make zlib-devel openssl-devel pcre-devel

# 配置编译选项
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module

# 编译和安装
make && make install

# 启动Nginx服务
/opt/nginx/sbin/nginx

3. 编译安装PHP5.25.35.45.55.67.07.1

下载PHP5.25.35.45.55.67.07.1源码包,解压后执行以下命令:

# 安装依赖
yum install -y gcc make zlib-devel openssl-devel libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel libtidy-devel

# 配置编译选项
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --enable-fpm --enable-mbstring --enable-zip --enable-bcmath --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-bz2 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-mcrypt --with-tidy

# 编译和安装
make && make install

# 拷贝配置文件
cp php.ini-development /opt/php/etc/php.ini
cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf

# 启动php-fpm服务
/opt/php/sbin/php-fpm

4. 配置Nginx和PHP

修改Nginx配置文件/opt/nginx/conf/nginx.conf,添加以下内容:

location / {
    root   html;
    index  index.html index.htm index.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;
}

重启Nginx服务:

/opt/nginx/sbin/nginx -s reload

5. 验证安装

新建文件/opt/nginx/html/index.php,输入以下内容:

<?php phpinfo(); ?>

在浏览器中输入服务器IP地址,可以看到PHP的信息页面,证明环境安装成功。

示例

示例一:增加PHP7.1支持

下载PHP7.1源码包,解压后执行以下命令:

# 安装依赖
yum install -y gcc make zlib-devel openssl-devel libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel libtidy-devel

# 配置编译选项
./configure --prefix=/opt/php7 --with-config-file-path=/opt/php7/etc --enable-fpm --enable-mbstring --enable-zip --enable-bcmath --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-bz2 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-mcrypt --with-tidy

# 编译和安装
make && make install

# 拷贝配置文件
cp php.ini-development /opt/php7/etc/php.ini
cp /opt/php7/etc/php-fpm.conf.default /opt/php7/etc/php-fpm.conf

# 启动php-fpm服务
/opt/php7/sbin/php-fpm

修改Nginx配置文件/opt/nginx/conf/nginx.conf,添加以下内容:

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

    if ($request_uri ~* /php7/) {
        fastcgi_pass   127.0.0.1:9001;
    }

    include        fastcgi_params;
}

重启Nginx服务,并在浏览器中输入IP地址/php7/index.php,可以看到PHP7.1的信息页面。

示例二:增加多站点支持

操作系统中安装php-fpm后,就可以将多个网站的PHP请求分配到不同的socket上,这里添加一个站点,做简单的演示。

修改Nginx配置文件/opt/nginx/conf/nginx.conf,添加以下内容:

server {
    listen 80;
    server_name www.newsite.com;

    location / {
        root /var/www/newsite/;
        index index.php index.html index.htm;
    }

    location ~ .+\.php($|/) {
        root /var/www/newsite/;
        fastcgi_pass unix:/var/run/php-fpm-newsite.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    access_log /var/log/nginx/access_newsite.log;

    error_log /var/log/nginx/error_newsite.log;
}

重启Nginx服务,并在/var/www/newsite下新建index.php文件,输入以下内容:

<?php
phpinfo();
?>

修改/var/www/newsite目录权限:

chown nginx:nginx /var/www/newsite

重启php-fpm服务:

/opt/php/sbin/php-fpm -c /opt/php/etc/php.ini -y /opt/php/etc/php-fpm.conf -g /var/run/php-fpm.pid -t

访问www.newsite.com,可以看到PHP的信息页面,证明多站点配置成功。

总结

以上就是在CentOS7.x下编译安装Nginx1.10.3+MySQL5.7.16+PHP5.25.35.45.55.67.07.1多版本全能环境的完整攻略。本文中的示例可以帮助读者更好地理解和使用本教程。