一、安装相关组件
①安装所需依赖包# yum -y install 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 bzip2 bzip2-devel ncurses ncurses-devel gd gd-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel ImageMagick ImageMagick-devel
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm ##安装MySQL源
# yum -y install mysql-server mysql-devel ##安装MySQL
②下载编译源码安装的包# wget http://nginx.org/download/nginx-1.9.4.tar.gz
# wget http://cn2.php.net/distributions/php-5.6.13.tar.gz
# wget http://ncu.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
# wget http://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# wget http://pecl.php.net/get/memcache-2.2.7.tgz
# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
# wget http://pecl.php.net/get/imagick-3.1.2.tgz
其中:zlib====》提供数据压缩用的函式库
pcre====》rewrite的支持库
openssl====》https的支持库
libiconv====》字符编码转换库
libxml====》XML库
libpng====》图片库
freetype====》字库
libmcrypt====》加密算法
mhash====》加密库
curl====》URL传输
gd====》绘图
③关闭SELinux和防火墙:
a、临时关闭(不用重启机器):# setenforce 0 ##设置SELinux 成为permissive模式 (关闭SELinux)
# setenforce 1 ##设置SELinux 成为enforcing模式 (开启SELinux)
b、修改配置文件需要重启机器:# vi /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled(需重启机器)
c、可自己做策略开放相应端口,这里我直接关闭:# systemctl status firewalld.service ##查看防火墙状态
# systemctl stop firewalld.service ##关闭防火墙
二、编译安装PHP(FastCGI模式)
①编译安装PHP所需的支持库
a.编译libiconv【为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换】# tar -zvxf libiconv-1.14.tar.gz
# cd libiconv-1.14/
# ./configure --prefix=/usr/local
# make
# make install
编译错误:
make时出现如下错误:In file included from progname.c:26:0:
./stdio.h:1010:1: 错误:‘gets’未声明(不在函数内)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
make[2]: *** [progname.o] 错误 1
make[2]: 离开目录“/root/libiconv-1.14/srclib”
make[1]: *** [all] 错误 2
make[1]: 离开目录“/root/libiconv-1.14/srclib”
make: *** [all] 错误 2
解决方法:# cd /root/libiconv-1.14/srclib
# sed -i -e '/gets is a security/d' ./stdio.in.h
b.编译li