编译安装 PHP 7.2 及扩展

  1. 下载源码:
wget http://cn2.php.net/distributions/php-7.2.5.tar.gz
  1. 解压:
tar -zxvf php-7.2.5.tar.gz
  1. 进入解压目录:
cd php-7.2.5/

4、准备安装目录:

mkdir /usr/local/php

A:如果搭配apache使用下面参数安装扩展

./configure --prefix=/usr/local/php72 --with-apxs2=/usr/local/apache/bin/apxs --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-openssl --enable-pdo_mysql --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

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

  1. 复制ini
cp php.ini-development  /usr/local/php/lib/php.ini

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

错误:

php 编译时 undefined reference to 'libiconv_open' 解决办法
另一种解决方法为去除 iconv模块也能正常编译php,如下:
编辑 Makefile 大約 77 行左右的地方:

EXTRA_LIBS = ..... -lcrypt

在最後加上 -liconv,例如:

EXTRA_LIBS = ..... -lcrypt -liconv

再运行make就可以了。

最后一种方法:由tonyty163提供:

make ZEND_EXTRA_LIBS='-liconv'

make install

不重新编译php, 安装curl扩展

  1. 安装curl
$ cd ~/

$ wget https://curl.haxx.se/download/curl-7.60.0.tar.gz

$ tar zxvf curl-7.60.0.tar.gz

$ cd curl-7.60.0

$ ./configure --prefix=/usr/local/curl

$ sudo make && sudo  make install
  1. 安装php扩展

因为phpize需要autoconfig, 所以先安装这个.否则会报错"autoconf"没找到

  • 安装 autoconf
$ sudo apt-get install autoconf
  • 安装php扩展,
    进到php的源文件(指的是在网上下载下来的php源代码文件夹), 在需要安装扩展的相应文件夹下执行 /usr/local/php72/bin/phpize.得到configure文件.然后 make && make install来创建 php的扩展, 它将自动把扩展放到相应的位置(php的扩展目录),这个位置会在make install之后,自动显示出来
$ cd ~/curl-7.60.0/ext/curl

$ /usr/local/php72/bin/phpize

$ ./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php5/bin/php-config

$ sudo make && sudo make install

3.修改php.ini:

a. 把php自动生成的扩展目录的路径添加到php.ini里

extension_dir = “/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170817/”

b. 打开curl扩展,在php.ini里添加:

extension = curl.so

4.重启apache

你可能感兴趣的:(编译安装 PHP 7.2 及扩展)