您的位置:首页 > 编程语言 > PHP开发

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

2017-12-01 15:01 465 查看
一、安装环境
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 扩展,两者选择其一即可

C、启动配置php-fpm

--enable-fpm

总结:执行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  \

--enable-fpm \

--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/mbstring
2、执行生成configure(假设php安装在/usr/local/php目录下)
/usr/local/php/bin/phpize
3、生成makefile文件
./configure --with-php-config=/usr/local/php/bin/php-config
4、编译&安装
make && make install


5.2、pdo_mysql扩展
1、进入源码pdo_mysql文件夹
cd /php-7.2.0/ext/pdo_mysql
2、执行生成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 install
5、修改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.gz 2、解压,配置,编译,安装
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make && make install
3、重新配置、编译、安装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.gz
cd 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 update
2、进入源码curl文件夹
cd /php-7.2.0/ext/curl
3、执行生成configure(假设php安装在/usr/local/php目录下)
/usr/local/php/bin/phpize
4、生成makefile文件
./configure --with-php-config=/usr/local/php/bin/php-config
5、编译&安装
make && make install
6、修改php.ini,添加一句extension=curl.so


5.5、pcntl扩展
1、进入源码pcntl文件夹
cd /php-7.2.0/ext/pcntl
2、执行生成configure(假设php安装在/usr/local/php目录下)
/usr/local/php/bin/phpize
3、生成makefile文件
./configure --with-php-config=/usr/local/php/bin/php-config
4、编译&安装
make && make install
5、修改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.gz 2. tar -zxvf libevent-2.1.8-stable.tar.gz
3. cd libevent-2.1.8-stable/
4. ./configure --prefix=/usr/local/libevent-2.1.8/
5. make && make install
2)、安装event扩展(http://pecl.php.net/package/event)
1、wget http://pecl.php.net/get/event-2.3.0.tgz 2、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/releases
wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz 2、mv 3.1.4.tar.gz phpredis.tar.gz
3、tar -zxvf phpredis.tar.gz
4、cd phpredis-3.1.4/
5、/usr/local/php/bin/phpize
6、./configure --with-php-config=/usr/local/php/bin/php-config
7、 make && make install


5.8、openssl扩展
1、进入源码openssl文件夹
cd /php-7.2.0/ext/openssl
2、执行生成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-config
4、编译&安装
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
重新编译安装即通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 源码