一、环境描述
-
虚拟机配置
CPU:单核
内存:2 GB
硬盘:120 GB
IP:10.24.17.108 -
操作系统
版本:CentOS 6.6 x86_64
安装方式:Minimal -
虚拟化环境
VMware Workstation 12.1.0 -
MySQL
版本:mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
安装方式:TAR压缩包 -
nginx
版本:nginx-1.10.1.tar.gz
安装方式:编译源码安装 -
PHP
版本:php-5.6.22.tar.gz
安装方式:编译源码安装
二、安装MySQL
按照《在CentOS上安装MySQL数据库》的步骤进行安装。
三、安装nginx
按照《在CentOS上安装nginx服务器》的步骤进行安装。
四、安装PHP的依赖包
在bash中运行以下命令,安装PHP的依赖包:
yum --disablerepo=\* --enablerepo=c6-media install -y bzip2-devel freetype-devel glib2-devel libcurl-devel libjpeg-turbo-devel libpng-devel libxml2-devel openldap-clients openldap-devel openldap-servers gmp-devel readline-devel libxslt-devel
五、下载源码包
在bash中运行以下命令,下载PHP及其依赖库的源码包:
cd /root/Downloads/
# 下载PHP源码包
wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
# 下载libmcrypt加密扩展源码包
wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
六、解压源码包
在bash中运行以下命令,解压缩源码包:
tar xvzf php-5.6.22.tar.gz
tar xvzf libmcrypt-2.5.8.tar.gz
七、编译安装libmcrypt
在bash中运行以下命令,编译安装加密扩展包:
cd libmcrypt-2.5.8
./configure
make && make install
cd ..
八、编译安装PHP
在bash中运行以下命令,编译安装PHP:
cd php-5.6.22
./configure \
--prefix=/usr/local/PHP \
--with-config-file-path=/usr/local/PHP/etc \
--with-mysql=/usr/local/MySQL \
--with-mysql-sock=/usr/local/MySQL/sock/mysql.sock \
--with-mysqli=/usr/local/MySQL/bin/mysql_config \
--enable-fpm \
--enable-soap \
--with-libxml-dir \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--disable-mbregex \
--disable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear
make && make install
九、配置环境变量
在bash中运行以下命令,配置profile环境变量文件:
sed -i '80s/$/&:\/usr\/local\/PHP\/bin/' /etc/profile
sed -i '80s/$/&:\/usr\/local\/PHP\/sbin/' /etc/profile
source /etc/profile
十、配置PHP
在bash中运行以下命令,配置php.ini配置文件:
cp /root/Downloads/php-5.6.22/php.ini-production /usr/local/PHP/etc/php.ini
sed -i '772s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /usr/local/PHP/etc/php.ini
十一、配置PHP-FPM
在bash中运行以下命令,配置php.fpm.ini配置文件:
cd /usr/local/PHP/etc
cp php-fpm.conf.default php-fpm.conf
sed -i '164s/listen = 127.0.0.1:9000/listen = \/usr\/local\/PHP\/var\/run\/php5-fpm.sock/' /usr/local/PHP/etc/php-fpm.conf
sed -i '149s/user = nobody/user = nginx/' /usr/local/PHP/etc/php-fpm.conf
sed -i '150s/group = nobody/group = nginx/' /usr/local/PHP/etc/php-fpm.conf
sed -i '175s/;listen.owner = nobody/listen.owner = nginx/' /usr/local/PHP/etc/php-fpm.conf
sed -i '176s/;listen.group = nobody/listen.group = nginx/' /usr/local/PHP/etc/php-fpm.conf
sed -i '177s/;listen.mode = 0660/listen.mode = 0666/' /usr/local/PHP/etc/php-fpm.conf
十二、将PHP-FPM设置为自启动服务
在bash中运行以下命令,将PHP-FPM配置为自启动服务:
cd /root/Downloads/php-5.6.22
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig php-fpm on
十三、配置nginx
在bash中运行以下命令,使得nginx能够支持PHP页面:
sed -i '43,85d' /usr/local/nginx/conf/nginx.conf
sed -i '42a\ listen 80;' /usr/local/nginx/conf/nginx.conf
sed -i '43a\ root \/home\/www;' /usr/local/nginx/conf/nginx.conf
sed -i '44a\ index index.php index.html index.htm;' /usr/local/nginx/conf/nginx.conf
sed -i '45a\ server_name 127.0.0.1;' /usr/local/nginx/conf/nginx.conf
sed -i '46a\ location \/ {' /usr/local/nginx/conf/nginx.conf
sed -i '47a\ try_files $uri $uri\/ \/index.html;' /usr/local/nginx/conf/nginx.conf
sed -i '48a\ }' /usr/local/nginx/conf/nginx.conf
sed -i '49a\ error_page 404 \/404.html;' /usr/local/nginx/conf/nginx.conf
sed -i '50a\ error_page 500 502 503 504 \/50x.html;' /usr/local/nginx/conf/nginx.conf
sed -i '51a\ location = \/50x.html {' /usr/local/nginx/conf/nginx.conf
sed -i '52a\ root \/home\/www;' /usr/local/nginx/conf/nginx.conf
sed -i '53a\ }' /usr/local/nginx/conf/nginx.conf
sed -i '54a\ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' /usr/local/nginx/conf/nginx.conf
sed -i '55a\ location ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf
sed -i '56a\ try_files $uri =404;' /usr/local/nginx/conf/nginx.conf
sed -i '57a\ fastcgi_pass unix:\/usr\/local\/PHP\/var\/run\/php5-fpm.sock;' /usr/local/nginx/conf/nginx.conf
sed -i '58a\ fastcgi_index index.php;' /usr/local/nginx/conf/nginx.conf
sed -i '59a\ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' /usr/local/nginx/conf/nginx.conf
sed -i '60a\ include fastcgi_params;' /usr/local/nginx/conf/nginx.conf
sed -i '61a\ }' /usr/local/nginx/conf/nginx.conf
十四、创建测试页面
在bash中运行以下命令,创建测试页面info.php:
mkdir -p /home/www
touch /home/www/info.php
echo "<?php" > /home/www/info.php
echo " phpinfo();" >> /home/www/info.php
echo "?>" >> /home/www/info.php
十五、重启服务器
在bash中运行以下命令,重新启动服务器:
reboot