安装php5

下载源码包 wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

解压源码包 tar -zxvf php-5.6.30.tar.gz

进行编译(进入php解压后的目录) ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

后面的参数意思分别是: --prefix指定安装目录

--with-apxs2是apache的一个工具自动安装扩展模块

--yith-config指定配置文件所在路径,php配置文件叫php.ini和mysql不一样

--with-mysql指定mysql的路径

后面的pdo-mysql和mysqli和mysql都是mysql的驱动或者说指定它的库,如果想php和mysql通信首先要编译出支持它的一个模块出来,

再后面就是指定php所需要的一些模块。 --with-libxml-dir \
--with-gd
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--with-iconv-dir
--with-zlib-dir
--with-bz2
--with-openss
--with-mcrypt
--enable-soap
--enable-gd-native-ttf
--enable-mbstring
--enable-sockets
--enable-exif\

因为我们服务器是第一次安装php初始化过程中可能会遇到错误,一般都是缺少某些库,如下错误就是缺少xml2相关的包

我们先使用 yum list |grep xml2 查找一下我们需要安装的包

这里我们需要安装的是 libxml2-devel 包,yum安装一下(如果不知道安装哪个包就一个一个试,然后记下来,这都是经验判断) yum install -y libxml2-devel

安装好之后再configure初始化

如下错误缺少openssl-devl

yum inatall -y openssl-devel 安装openssl-devel包

如下错误缺少bzip2-devel包

yum install -y bzip2-devel 安装bzip2-devel包

如下错误缺少libjpeg-devel包

yum install -y libjpeg-devel 安装libjpeg-devel包

如下错误缺少libpng-devel包

yum install -y libpng-devel 安装libpng-devel包

如下错误缺少freetype-devel包

yum install -y freetype-devel 安装freetype-devel包

如下错误缺少libmcrypt-devel包

如果没有安装过epel的话,我们需要先安装epel扩展源 yum install -y epel-release

yum install -y libmcrypt-devel 安装libmcrypt-devel包

安装完后,我们再编译安装一下PHP

如果看到上图内容,就证明configure这一步成功了 然后再make,完成之后再make install。或者直接使用(make && make install) make && make install

然后把配置文件放到/usr/local/php/etc/目录下改名为php.ini就完成了 cp php.ini-production /usr/local/php/etc/php.ini

然后我们可以看一下它的目录 ls /usr/local/php/

其中它的核心文件是:bin和bin/php

还有如下文件,他是结合apache和php的扩展模块 du -sh /usr/local/php/bin/php

查看php加载的模块(都是静态模块) /usr/local/php/bin/php -m

查看php的信息 /usr/local/php/bin/php -i

php是作为httpd的一个扩展模块存在的,是不需要启动的。

安装php7

下载php7的源码包(进入src目录) wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

解压源码包 tar jxvf php-7.1.6.tar.bz2

PHP7和PHP5.6安装基本一样,唯一不一样的就是configure初始化的时候后面的参数略有不同

进入解压完的源码包进行编译 ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

接下来,make && make install

拷贝配置文件 cp php.ini-production /usr/local/php7/etc/php.ini

一台机器同时安装php5和php7那么使用哪一个呢 可以编辑apache的配置文件来进行选择 vim /usr/local/apache2.4/conf/httpd.conf

找到如下行,不用哪一个就注释掉哪一个