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扩展
5.2、pdo_mysql扩展
5.3、zlib扩展
5.4、curl扩展
5.5、pcntl扩展
5.6、libevent/event 扩展
注:此处安装可能遇到的问题及解决方案
问题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)
5.8、openssl扩展
注:此处安装可能遇到的问题及解决方案
问题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
重新编译安装即通过。
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安装http扩展 (源码包)
- PHP的ZMQ扩展zeromq源码安装
- bash-scripts源码安装lamp(apache、php及部分扩展、mysql)
- linux 安装php 已有的源码扩展
- Linux下利用phpize安装memcashe的php源码扩展包
- centos下源码安装php扩展
- debian7.7环境下 源码安装redis以及phpredis扩展
- Linux下利用phpize安装memcashe的php源码扩展包
- 源码安装Nginx+PHP-FPM及扩展
- 源码编译安装PHP以及相关扩展的安装
- linux源码安装php7.2.0
- 服务器源码安装PHP 后如何安装mbstring扩展
- PHP源码安装mcrypt扩展error: ‘PHP_FE_END’ undeclared here (not in a function)错误处理
- 源码方式安装php扩展mcrypt
- 源码方式安装php扩展mcrypt
- Windows下源码安装PHP扩展
- memcached(源码包)安装,php(rpm包)-memcache的扩展安装
- Linux CentOS6.5 PHP memcache 扩展源码安装
- 缺少mcrypt 扩展。请检查 PHP 配置。(源码方式安装php扩展mcrypt)
- PHP安装MongoDB扩展