php-7.2.0源码安装及扩展安装

来源:互联网 发布:三星s4如何使用4g网络 编辑:程序博客网 时间:2024/06/03 16:43
一、安装环境
ubuntu 16.04


一、源码安装前准备工作


1.1、下载源码
下载地址:http://www.php.net/downloads.php
可自行选择版本,这里我选择的最新版本PHP 7.2.0,下载地址为:http://cn2.php.net/distributions/php-7.2.0.tar.gz
wget http://cn2.php.net/distributions/php-7.2.0.tar.gz

1.2、解压
tar -zxvf php-7.2.0.tar.gz

1.3、准备安装目标文件夹
mkdir /usr/local/php
注:也就是源码安装的php到这个路径中

二、编译安装
2.1、配置
cd cd php-7.2.0/


A、如果PHP搭配Apache使用,那么配置如下
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs


注:
/usr/local/apache2/bin/apxs,其中apxs是在安装Apache时产生的,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中


B、如果只是单独安装PHP以及MySQL的扩展,而不安装MySQL服务,那么需要添加下面的配置
--enable-sockets=shared  \
--with-pdo-mysql=shared,mysqlnd 或者 --with-mysql=shared,mysqlnd


此处可以选择使用PHP的 mysql 还是 pdo 扩展,两者选择其一即可




总结:执行A或者B此时可能出现错误
configure: error: xml2-config not found. Please check your libxml2 installation.
解决方法:
CentOS
yum install libxml2
yum install libxml2-devel


ubuntu:
apt-get install libxml2
apt-get install libxml2-dev


安装成功后,重新运行上面的./configure命令




示例:我安装的是不带Apache 和 Mysql 服务器,并且使用PDO扩展,那么配置如下
./configure --prefix=/usr/local/php \
--enable-sockets=shared  \
--with-pdo-mysql=shared,mysqlnd


2.2、编译
make


2.3、测试
make test


2.4、安装
make install


2.5、复制ini
cp /php-7.2.0/php.ini-development  /usr/local/php/lib/php.ini
    把原来位于源代码里面的php.ini-development拷贝到/usr/local/php/lib/php.ini下,并且重命名为php.ini

三、把php加入到系统环境变量
echo "export PATH=$PATH:/usr/local/php/bin/php"  >> /etc/profile
source /etc/profile


四、查看php版本
/usr/local/php/bin/php --version

五、安装扩展
首先,请确保已经安装了autoconf,如未安装,请执行apt-get install autoconf
编译完成之后,将会自动把mysql.so放到了默认的php扩展目录下(phpinfo可查看,我的为 /usr/local/php/lib/php/extensions/no-debug-zts-20090626),再修改php.ini
修改php.ini,添加一句extension=mbstring.so


5.1、mbstring扩展
1、进入源码mbstring文件夹cd /php-7.2.0/ext/mbstring2、执行生成configure(假设php安装在/usr/local/php目录下)/usr/local/php/bin/phpize 3、生成makefile文件./configure --with-php-config=/usr/local/php/bin/php-config4、编译&安装make && make install

5.2、pdo_mysql扩展
1、进入源码pdo_mysql文件夹cd /php-7.2.0/ext/pdo_mysql2、执行生成configure(假设php安装在/usr/local/php目录下)/usr/local/php/bin/phpize 3、生成makefile文件./configure --with-php-config=/usr/local/php/bin/php-config假如你在本地安装了mysql服务,那么需执行下面命令./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/4、编译&安装make && make install5、修改php.ini,添加一句extension=pdo_mysql.so

5.3、zlib扩展
此扩展进入源码/php-7.2.0/ext/zlib安装会出错,因此先执行下面语句1、 http://www.zlib.net/下载zlib源码wget http://www.zlib.net/zlib-1.2.11.tar.gz2、解压,配置,编译,安装tar -zxvf zlib-1.2.11.tar.gzcd zlib-1.2.11/./configure --prefix=/usr/local/zlibmake && make install3、重新配置、编译、安装PHP,增加参数--with-zlib-dir=/usr/local/zlib./configure --prefix=/usr/local/php \--enable-sockets=shared  \--with-pdo-mysql=shared,mysqlnd \--with-zlib-dir=/usr/local/zlib 

5.4、curl扩展
方法一:1、去网站 http://curl.haxx.se/download/ 下载libcurl源码。我用的版本是curl-7.28.0.tar.gz    2、解压,配置,编译,安装tar -zxvf curl-7.28.0.tar.gzcd usr/src/curl-7.28.0./configure --prefix=/usr/local/curl;make && make install   (3)重新编译php,增加参数--with-curl=/usr/local/curl./configure --prefix=/usr/local/php \--enable-sockets=shared  \--with-pdo-mysql=shared,mysqlnd \--with-zlib-dir=/usr/local/zlib  \--with-curl=/usr/local/curl

方法二:1、安装apt-get install libcurl4-gnutls-dev,如果出错,请先apt-get update2、进入源码curl文件夹cd /php-7.2.0/ext/curl3、执行生成configure(假设php安装在/usr/local/php目录下)/usr/local/php/bin/phpize 4、生成makefile文件./configure --with-php-config=/usr/local/php/bin/php-config5、编译&安装make && make install6、修改php.ini,添加一句extension=curl.so

5.5、pcntl扩展
1、进入源码pcntl文件夹cd /php-7.2.0/ext/pcntl2、执行生成configure(假设php安装在/usr/local/php目录下)/usr/local/php/bin/phpize 3、生成makefile文件./configure --with-php-config=/usr/local/php/bin/php-config4、编译&安装make && make install5、修改php.ini,添加一句extension=pcntl.so

5.6、libevent/event 扩展
由于PHP5.7以后只支持event,因此我安装的event,但是libevent的安装方法和event方法一样扩展依赖于原始的libevent库,必须先把libevent库安装1)、安装libevent库(http://libevent.org/)1. wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz2. tar -zxvf libevent-2.1.8-stable.tar.gz3. cd libevent-2.1.8-stable/4. ./configure --prefix=/usr/local/libevent-2.1.8/5. make && make install2)、安装event扩展(http://pecl.php.net/package/event)1、wget http://pecl.php.net/get/event-2.3.0.tgz2、tar -zxvf event-2.3.0.tgz 3、cd event-2.3.0/4、/usr/local/php/bin/phpize 5、./configure --with-php-config=/usr/local/php/bin/php-config --with-event-libevent-dir=/usr/local/libevent-2.1.8/如果是libevent./configure --with-php-config=/usr/local/php/bin/php-config --with-libevent=/usr/local/libevent-2.1.8/6、make && make install

注:此处安装可能遇到的问题及解决方案
问题1:configure: error: Cannot find OpenSSL's <evp.h>
解决方案:apt-get install libssl-dev

问题2:configure: error: Cannot find OpenSSL's libraries
解决方案:
find / -name libssl.so
输出结果为:/usr/lib/x86_64-linux-gnu/libssl.so
初步判断它可能只会在 /usr/lib/ 下寻找 libssl.so 文件,于是:
ln -s/usr/lib/x86_64-linux-gnu/libssl.so /usr/lib
重新编译安装即通过。

5.7、redis扩展(phpredis)
1、下载源码https://github.com/phpredis/phpredis/releaseswget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz2、mv 3.1.4.tar.gz phpredis.tar.gz3、tar -zxvf phpredis.tar.gz4、cd phpredis-3.1.4/5、/usr/local/php/bin/phpize 6、./configure --with-php-config=/usr/local/php/bin/php-config7、 make && make install 

5.8、openssl扩展
1、进入源码openssl文件夹cd /php-7.2.0/ext/openssl2、执行生成configure(假设php安装在/usr/local/php目录下)cp config0.m4 config.m4/usr/local/php/bin/phpize 3、生成makefile文件./configure --with-php-config=/usr/local/php/bin/php-config4、编译&安装make && make install

注:此处安装可能遇到的问题及解决方案
问题1:configure: error: Cannot find OpenSSL's <evp.h>
解决方案:apt-get install libssl-dev

问题2:configure: error: Cannot find OpenSSL's libraries
解决方案:
find / -name libssl.so
输出结果为:/usr/lib/x86_64-linux-gnu/libssl.so
初步判断它可能只会在 /usr/lib/ 下寻找 libssl.so 文件,于是:
ln -s/usr/lib/x86_64-linux-gnu/libssl.so /usr/lib
重新编译安装即通过。
原创粉丝点击