39.安装PHP5 安装PHP7

本文详细介绍了如何从源码编译安装PHP5及PHP7,并提供了具体步骤及注意事项,帮助读者理解不同版本间配置的差异。

11.10/11.11/11.12 安装PHP5

11.13 安装PHP7

php中mysql,mysqli,mysqlnd,pdo到底是什么 

http://blog.youkuaiyun.com/u013785951/article/details/60876816

查看编译参数 

http://ask.apelearn.com/question/1295

 

 

 

 

11.10/11.11/11.12 安装PHP5:

 

 

PHP官网www.php.net

当前主流版本为5.6/7.1

有些过老的版本可能不兼容7版本。7的性能比5有很大的提升

cd /usr/local/src/

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

tar zxf php-5.6.30.tar.gz

cd php-5.6.30

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/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=/usr/local/php 指定安装目录

--with-apxs2 apxs2是Apache的一种工具,可以自动的把扩展的模块放到Apache的目录里,就是在我们用httpd -M的时候可以加载出来。阿鑫在做的时候,修改了他的路径(find一下apxs2,查到目录,修改一下就可以了)

--with-config-file-path=/usr/local/php/etc 指定php的配置文件

--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config 指定这三种mysql不同的库。相当于php与mysql相互通信的驱动,所以是定义mysql的函数或者驱动的

后面的都是指定php的模块的

make && make install

cp php.ini-production /usr/local/php/etc/php.ini 我们指定了他的配置文件,要拷贝到那里去( --with-config-file-path).。如果是开发环境就用 php.ini-development,php.ini-production用于生产环境

 

知识点:

/usr/local/php/bin/ PHP的核心文件

/usr/local/apache2/modules/libphp5.so 这是我们安装php5的模块。我们需要的

/usr/local/php/bin/ -m 查看php加载的模块有哪些(静态的)。是可以扩展的,增加.so的文件

/usr/local/apache2/bin/httpd -M 可以查看Apache的模块。最后就是我们安装的php5的模块

php作为Apache的扩展模块存在的。也就是说Apache需要借助php module,也就是借助这个.so的文件

vim /usr/local/apache2/conf/httpd.conf 可以查看Apache的模块。php也在其中

 

实例:

[root@axinlinux-01]# cd /usr/local/src

[root@axinlinux-01 src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.gz

[root@axinlinux-01 src]# cd php-5.6.32/

[root@axinlinux-01 php-5.6.32]# ./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

以下的几个报错

#yum install -y perl* 

​#yum install -y httpd-devel

#find / -name apxs  得到的路径是:/usr/sbin/apxs

于是修改--with-apsx2=/usr/sbin/apxs指定到正确路径

还有n个报错,都是缺少一些库。安装就好了

[root@axinlinux-01 php-5.6.32]# echo $? 直到成功。configure成功

0

[root@axinlinux-01 php-5.6.32]# make 开始make

[root@axinlinux-01 php-5.6.32]# echo $? 查看是否成功

0

[root@axinlinux-01 php-5.6.32]# make install

[root@axinlinux-01 php-5.6.32]# echo $? 查看是否成功

0

[root@axinlinux-01 php-5.6.32]# cp php.ini-production /usr/local/php/etc/php.ini

 

 

!!阿鑫在./configure的时候,因为--with exps的路径写错了。阿鑫的电脑路径是apache2,跟着阿铭老师写了2.4结果导致不成功。这点需要注意

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.13 安装PHP7:

 

 

 

 

cd /usr/local/src/

wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

tar zxf php-7.1.6.tar.bz2

cd php-7.1.6

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/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

ls /usr/local/apache2.4/modules/libphp7.so

cp php.ini-production /usr/local/php7/etc/php.ini 解释跟php5一样

 

 

ls /usr/local/apache2/modules 下就有libphp7.so。查看Apache的模块

/usr/local/php7/bin/php -m 查看php7加载的模块

/usr/local/apache2/bin/apachectl -M 查看Apache加载了几个php。最下面就是php7和php5

 

我们如何在PHP7和PHP5之间选择切换,修改配置文件:

vim /usr/local/apache2/conf/httpd.conf 在里面找到PHP5或PHP7(可/ 搜索php5.so),前面加#注释,注释掉这一个,就是使用另一个

#LoadModule php5_module modules/libphp5.so

LoadModule php7_module modules/libphp7.so

 

 

 

 

实例:

[root@axinlinux-01 ~]# cd /usr/local/src

[root@axinlinux-01 src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

[root@axinlinux-01 src]# ls

[root@axinlinux-01 src]# tar -jxvf php-7.1.6.tar.bz2

[root@axinlinux-01 src]# ls

apr-1.6.3 apr-util-1.6.1.tar.gz mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz php-5.6.32.tar.bz2

apr-1.6.3.tar.gz httpd-2.4.34 mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz php-7.1.6

apr-util-1.6.1 httpd-2.4.34.tar.gz php-5.6.32 php-7.1.6.tar.bz2

[root@axinlinux-01 src]# cd php-7.1.6/

[root@axinlinux-01 php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/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

[root@axinlinux-01 php-7.1.6]# echo $?

0

[root@axinlinux-01 php-7.1.6]# make

[root@axinlinux-01 php-7.1.6]# echo $?

0

[root@axinlinux-01 php-7.1.6]# make install

[root@axinlinux-01 php-7.1.6]# echo $?

0

[root@axinlinux-01 php-7.1.6]# cp php.ini-production /usr/local/php7/etc/php.ini

转载于:https://my.oschina.net/u/3866149/blog/1920545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值