- 下载源码:
wget http://cn2.php.net/distributions/php-7.2.5.tar.gz
- 解压:
tar -zxvf php-7.2.5.tar.gz
- 进入解压目录:
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服务器中
- 复制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扩展
- 安装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
- 安装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
网友评论