安装curl
1. curl 是 php 標準庫,所以可以在原來的 phpX.X.X.tar.gz 中找到。
2. 進入 php 目錄中的 ext 找到 curl
3. 在 curl 目錄中執行 /usr/local/php5-fastcgi/bin/phpize
4. 再來將他生成的檔案進行 ./configure –with-php-config=/usr/local/php5-fastcgi/bin/php-config
5. 再來就是 make
6. 再來也就是 make install
7. 因為現在已經安裝了 curl.so
8. 所以就要在 php.ini 中加入 extension = curl.so
9. 重啟 Web Server ?
10.最後應該使用 就可以看到成功安裝?
##############################################################################
安装cURL
# wget http://curl.haxx.se/download/curl-7.17.1.tar.gz
# tar -zxf curl-7.17.1.tar.gz
# ./configure --prefix=/usr/local/curl
# make; make install
安装php
只要打开开关 --with-curl=/usr/local/curl
就可以了。
###############################################################################
安装pdo-mysql
原来编译php的时候,没有把dpo_mysql相关的参数带上,安装完后才发现。再重新编译有点费时间,所以决定单独来安装。
先到http://pecl.php.net/找需要的版本,我用的是稳定的版本。要先看看说明,特别是要注意mysql的php的版本。
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
./configure --with-php-config=/usr/local/php/bin/php-config
经过configure就可以make了
make
make install
注意pdo_mysql的全路径,我的是:
/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so
然后在/usr/local/lib/php.ini
加上一句:
extension=/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so
重新启动apache即可看到已经加载pdo_mysql成功。
[~/webserver/php/php-5.2.6/ext/curl]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
[~/webserver/php/php-5.2.6/ext/curl]# ./configure -with-php-config=/usr/local/php/bin/php-config
1.找到当前运行的php版本的源代码目录。进入curl扩展库目录。
[root@vnegar ~]# cd /usr/local/src/php-5.2.11/ext/curl
2.调用phpize程序生成编译配置文件。
[root@vnegar curl]# /usr/local/php/bin/phpize
3.编译扩展库,分别执行下面的configure和make命令。
[root@vnegar curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
报错如下: checking for cURL in default path... not found configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/
解决办法:yum -y install curl-devel
make: make成功执行后,生成的扩展库文件在当前目录的modules子目录下
[root@vnegar curl]# make test Build complete. Don't forget to run 'make test'. ERROR: Cannot run tests without CLI sapi.
4.配置php.ini文件在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下。
extension_dir = “/usr/local/apache2/modules/”
vi /usr/local/php/etc/php.ini
将 ; Directory in which the loadable extensions (modules) reside. extension_dir = "./"
改为: ; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/apache2/modules/"
##在php.ini的添加扩展库位置,设置要添加的扩展库。extension=curl.so
##以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下 ##然后再在这个位置,添加一行将编译后的扩展库文件名加上即可。
5.重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。
结果还是出错,只好下载curl-7.19.3.tar.bz2,解压后编译,然后再编译php,提示
configure: error: libjpeg.(a|so) not found.
那就下载libjpeg,
wget http://www.ijg.org/files/jpegsrc.v8.tar.gz
注意不要下载那个windows版本,即jpegsr8.zip。然后编译安装,现在提示
configure: error: libpng.(a|so) not found.
下载libpng,注意不要下载zip版本,否则./configure时会出现
-bash: ./configure:/bin/sh^M:损坏的解释器: 没有该文件或目录
今天配置一台server的php支持curl的时候, 出现如下报错
checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
其实就是curl的dev包没有安装, 解决方案:
终端下
# yum -y install curl-devel
然后就可以继续了
在Wordpress中启用插件Flickr Photo Album for WordPress时,需要系统支持cURL。
大多数资料里都是比较简单的方法,即在编译php时加上cURL支持
但由于我的系统里已经安装有php,并且有一些其他配置,重新安装太麻烦
于是找到了这篇《linux php 扩展库编译》,验证通过,转载以记录一下
以php curl 扩展库编译为例。
假如原先编译的php目录在/oracle/php4目录下;apache在/oracle/apache2目录下;php源代码在/home/wugw目录下。如果实际目录与假定的目录不一致,则在下面的命令中做调整。
1. 找到当前运行的php版本的源代码目录,如 php-4.4.7。进入curl扩展库目录。
$cd /home/wugw/php-4.4.7/ext/curl
2. 调用phpize程序生成编译配置文件。
$/oracle/php4/bin/phpize
3. 编译扩展库,分别执行下面的configure和make命令。
$./configure –with-php-config=/oracle/php4/bin/php-config
##configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
##make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/wugw/php-4.4.7/ext/curl/modules/curl.so
4. 配置php.ini文件
##将编译好的扩展库文件复制到apache2 modules目录下。
$cp /home/wugw/php-4.4.7/ext/curl/modules/curl.so /oracle/apache2/modules/.
##找到php.ini文件所在目录位置,然后编辑。可以通过查看phpinfo信息来确定php.ini文件位置。
##在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下
extension_dir = “/oracle/apache2/modules/”
##在php.ini的设置扩展库位置,设置要添加的扩展库。
extension=curl.so
##以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,
##然后再在这个位置,另取一行将编译后的扩展库文件名加上即可
5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。
服务器运行一段时间后,可能突然会需求添加某个扩展,如curl、pdo、xmlrpc等,这就需要在不重新编译PHP的情况下独立添加扩展。
下面以安装curl为例,介绍具体安装步骤。
1.安装crul wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7.19.6.tar.gz cd curl-7.19.6 ./configure –prefix=/usr/local/curl
make
make install
2.编译生成扩展进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:
cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.“,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,并编译生成模块:
/usr/local/php5/bin/phpize
./configure –with-curl=/usr/local/curl –with-php-config=/usr/local/php5/bin/php-config
make
make install
这样,curl.so就被复制到PHP对应目录(如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)
3.修改配置在php.ini里,设置扩展目录:
extension_dir = “/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/”
并添加扩展模块引用:
extension = curl.so
4.检查并重启Apache
/usr/local/php/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查
错误3:
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
进安装目录里看,easy.h 正活生生躺在指定的位置!
估计是 --with-curl 的事。
改成:--with-curl=/usr/local/curl
ok.
网上一大堆垃圾东西,没有一个靠谱的,我在suse下面是这样编译成功的:
看好了:
发现包依赖有问题,如下:
找到suse的光盘:SLES-10-SP2-DVD-i386-GM-DVD1.iso\suse\i586 把相关的包给拿出去,如下,挨个安装上。
curl-devel-7.15.1-19.7.i586.rpm libcurl3-devel-7.15.1-1.i386.rpm php/ php.tar.gz
[~/webserver]# rpm -ihv curl-devel-7.15.1-19.7.i586.rpm
error: Failed dependencies:
openssl-devel is needed by curl-devel-7.15.1-19.7.i586
libidn-devel is needed by curl-devel-7.15.1-19.7.i586
[~/webserver]# rpm -ihv libidn-devel-0.6.0-14.2.i586.rpm
Preparing... ########################################### [100%]
1:libidn-devel ########################################### [100%]
[~/webserver]# rpm -ihv openssl-devel-0.9.8a-18.26.i586.rpm
Preparing... ########################################### [100%]
1:openssl-devel ########################################### [100%]
[~/webserver]# rpm -ihv curl-devel-7.15.1-19.7.i586.rpm
Preparing... ########################################### [100%]
1:curl-devel ########################################### [100%]
./configure --with-php-config=/usr/local/php/bin/php-config
现在:
...
...
...
checking whether to build shared libraries... yes
checking whether to build static libraries... no
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
#make;make install
Libraries have been installed in:
/root/webserver/php/php-5.2.6/ext/curl/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
curl.so*
就差一个包:curl-devel-7.15.1-19.7 网上说的是对的,但是需要有依赖,得装完才能安装curl-devel-7.15.1-19.7这个rpm包成功。
[~/webserver]# rpm -qa|grep curl
curl-devel-7.15.1-19.7
curl-7.15.1-19.7
特别注意:编译好了需重启apache,curl才能生效。。。否则修改了php.ini命令行生效了,但是通过apache还是不行的喔。特此注意。。。
1. curl 是 php 標準庫,所以可以在原來的 phpX.X.X.tar.gz 中找到。
2. 進入 php 目錄中的 ext 找到 curl
3. 在 curl 目錄中執行 /usr/local/php5-fastcgi/bin/phpize
4. 再來將他生成的檔案進行 ./configure –with-php-config=/usr/local/php5-fastcgi/bin/php-config
5. 再來就是 make
6. 再來也就是 make install
7. 因為現在已經安裝了 curl.so
8. 所以就要在 php.ini 中加入 extension = curl.so
9. 重啟 Web Server ?
10.最後應該使用 就可以看到成功安裝?
##############################################################################
安装cURL
# wget http://curl.haxx.se/download/curl-7.17.1.tar.gz
# tar -zxf curl-7.17.1.tar.gz
# ./configure --prefix=/usr/local/curl
# make; make install
安装php
只要打开开关 --with-curl=/usr/local/curl
就可以了。
###############################################################################
安装pdo-mysql
原来编译php的时候,没有把dpo_mysql相关的参数带上,安装完后才发现。再重新编译有点费时间,所以决定单独来安装。
先到http://pecl.php.net/找需要的版本,我用的是稳定的版本。要先看看说明,特别是要注意mysql的php的版本。
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
./configure --with-php-config=/usr/local/php/bin/php-config
经过configure就可以make了
make
make install
注意pdo_mysql的全路径,我的是:
/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so
然后在/usr/local/lib/php.ini
加上一句:
extension=/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so
重新启动apache即可看到已经加载pdo_mysql成功。
[~/webserver/php/php-5.2.6/ext/curl]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
[~/webserver/php/php-5.2.6/ext/curl]# ./configure -with-php-config=/usr/local/php/bin/php-config
1.找到当前运行的php版本的源代码目录。进入curl扩展库目录。
[root@vnegar ~]# cd /usr/local/src/php-5.2.11/ext/curl
2.调用phpize程序生成编译配置文件。
[root@vnegar curl]# /usr/local/php/bin/phpize
3.编译扩展库,分别执行下面的configure和make命令。
[root@vnegar curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
报错如下: checking for cURL in default path... not found configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/
解决办法:yum -y install curl-devel
make: make成功执行后,生成的扩展库文件在当前目录的modules子目录下
[root@vnegar curl]# make test Build complete. Don't forget to run 'make test'. ERROR: Cannot run tests without CLI sapi.
4.配置php.ini文件在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下。
extension_dir = “/usr/local/apache2/modules/”
vi /usr/local/php/etc/php.ini
将 ; Directory in which the loadable extensions (modules) reside. extension_dir = "./"
改为: ; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/apache2/modules/"
##在php.ini的添加扩展库位置,设置要添加的扩展库。extension=curl.so
##以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下 ##然后再在这个位置,添加一行将编译后的扩展库文件名加上即可。
5.重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。
结果还是出错,只好下载curl-7.19.3.tar.bz2,解压后编译,然后再编译php,提示
configure: error: libjpeg.(a|so) not found.
那就下载libjpeg,
wget http://www.ijg.org/files/jpegsrc.v8.tar.gz
注意不要下载那个windows版本,即jpegsr8.zip。然后编译安装,现在提示
configure: error: libpng.(a|so) not found.
下载libpng,注意不要下载zip版本,否则./configure时会出现
-bash: ./configure:/bin/sh^M:损坏的解释器: 没有该文件或目录
今天配置一台server的php支持curl的时候, 出现如下报错
checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
其实就是curl的dev包没有安装, 解决方案:
终端下
# yum -y install curl-devel
然后就可以继续了
在Wordpress中启用插件Flickr Photo Album for WordPress时,需要系统支持cURL。
大多数资料里都是比较简单的方法,即在编译php时加上cURL支持
但由于我的系统里已经安装有php,并且有一些其他配置,重新安装太麻烦
于是找到了这篇《linux php 扩展库编译》,验证通过,转载以记录一下
以php curl 扩展库编译为例。
假如原先编译的php目录在/oracle/php4目录下;apache在/oracle/apache2目录下;php源代码在/home/wugw目录下。如果实际目录与假定的目录不一致,则在下面的命令中做调整。
1. 找到当前运行的php版本的源代码目录,如 php-4.4.7。进入curl扩展库目录。
$cd /home/wugw/php-4.4.7/ext/curl
2. 调用phpize程序生成编译配置文件。
$/oracle/php4/bin/phpize
3. 编译扩展库,分别执行下面的configure和make命令。
$./configure –with-php-config=/oracle/php4/bin/php-config
##configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
##make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/wugw/php-4.4.7/ext/curl/modules/curl.so
4. 配置php.ini文件
##将编译好的扩展库文件复制到apache2 modules目录下。
$cp /home/wugw/php-4.4.7/ext/curl/modules/curl.so /oracle/apache2/modules/.
##找到php.ini文件所在目录位置,然后编辑。可以通过查看phpinfo信息来确定php.ini文件位置。
##在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下
extension_dir = “/oracle/apache2/modules/”
##在php.ini的设置扩展库位置,设置要添加的扩展库。
extension=curl.so
##以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,
##然后再在这个位置,另取一行将编译后的扩展库文件名加上即可
5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。
服务器运行一段时间后,可能突然会需求添加某个扩展,如curl、pdo、xmlrpc等,这就需要在不重新编译PHP的情况下独立添加扩展。
下面以安装curl为例,介绍具体安装步骤。
1.安装crul wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7.19.6.tar.gz cd curl-7.19.6 ./configure –prefix=/usr/local/curl
make
make install
2.编译生成扩展进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:
cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.“,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,并编译生成模块:
/usr/local/php5/bin/phpize
./configure –with-curl=/usr/local/curl –with-php-config=/usr/local/php5/bin/php-config
make
make install
这样,curl.so就被复制到PHP对应目录(如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)
3.修改配置在php.ini里,设置扩展目录:
extension_dir = “/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/”
并添加扩展模块引用:
extension = curl.so
4.检查并重启Apache
/usr/local/php/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查
错误3:
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
进安装目录里看,easy.h 正活生生躺在指定的位置!
估计是 --with-curl 的事。
改成:--with-curl=/usr/local/curl
ok.
网上一大堆垃圾东西,没有一个靠谱的,我在suse下面是这样编译成功的:
看好了:
发现包依赖有问题,如下:
找到suse的光盘:SLES-10-SP2-DVD-i386-GM-DVD1.iso\suse\i586 把相关的包给拿出去,如下,挨个安装上。
curl-devel-7.15.1-19.7.i586.rpm libcurl3-devel-7.15.1-1.i386.rpm php/ php.tar.gz
[~/webserver]# rpm -ihv curl-devel-7.15.1-19.7.i586.rpm
error: Failed dependencies:
openssl-devel is needed by curl-devel-7.15.1-19.7.i586
libidn-devel is needed by curl-devel-7.15.1-19.7.i586
[~/webserver]# rpm -ihv libidn-devel-0.6.0-14.2.i586.rpm
Preparing... ########################################### [100%]
1:libidn-devel ########################################### [100%]
[~/webserver]# rpm -ihv openssl-devel-0.9.8a-18.26.i586.rpm
Preparing... ########################################### [100%]
1:openssl-devel ########################################### [100%]
[~/webserver]# rpm -ihv curl-devel-7.15.1-19.7.i586.rpm
Preparing... ########################################### [100%]
1:curl-devel ########################################### [100%]
./configure --with-php-config=/usr/local/php/bin/php-config
现在:
...
...
...
checking whether to build shared libraries... yes
checking whether to build static libraries... no
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
#make;make install
Libraries have been installed in:
/root/webserver/php/php-5.2.6/ext/curl/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
curl.so*
就差一个包:curl-devel-7.15.1-19.7 网上说的是对的,但是需要有依赖,得装完才能安装curl-devel-7.15.1-19.7这个rpm包成功。
[~/webserver]# rpm -qa|grep curl
curl-devel-7.15.1-19.7
curl-7.15.1-19.7
特别注意:编译好了需重启apache,curl才能生效。。。否则修改了php.ini命令行生效了,但是通过apache还是不行的喔。特此注意。。。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3408/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2010-8-30 13:31
评论列表