linux安装php与memcache过程记录(2)

时间:2021-10-15 13:33:23

作者:admin

来源:纯净之家


为此,我需要去安装autoconf库,但是在安装这个库的时候,同样会报错:

linux安装php与memcache过程记录(2)

 
这里可以明显看出,就是M4版本太低,需要更新。通过查阅资料知晓,autoconf使用M4宏处理器处理configure.in文件,从而可以生成configure文件用于安装配置。
然后,就是去下载M4源码进行安装了,这里又有一个坑,我安装提示的去下载推荐的 M41.4.16版本的源码包,配置成功,但是编译的时候会出现类似下面的问题:
./stdio.h:477:1: error: 'gets' undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
这个问题我在网上查找,发现不仅仅是安装M4会出现,很多人安装其他的库的时候也会出现类似问题,也找到有人更改 _GL_WARN_ON_USE进行hack,也有人说进行打补丁(这个问题的具体原因可能比较复杂,也没弄清)。但是我觉得我的ubuntu是13.10是比较新的版本,应该会有修复吧!于是我就重新下载了一个M4的最新版本:  
wget  /gnu/m4/m4-latest.tar.gz
tar -zxf m4-latest.tar.gz;
mv m4-1.4.17  /usr/local/m4
cd /usr/local/m4
./configure
make
make insatll
按照上面步骤安装的时候,奇迹出现了,果然可以编译安装完成,没有任何问题。此处得出的结论是,作为软件使用者和开发者我们一定要适合保持软件的更新,尽量使用最新的稳定的版本,这样可以避免遇到很多奇怪的问题。
安装时把解压包放到/usr/local/m4下,然后直接configure不指定prefix才可以安装autoconf,否则也会同样的找不到M4的错误。
安装autoconf如下:
export  PATH=/usr/local/m4:$PATH
cd autoconf
./configure --prefix=/usr/local/autoconf
make
make install
按照上述命令安装就完成了autoconf的安装。
然后接着去安装memcache,此时,使用export将/usr/local/autoconf/bin导入到PATH并不起作用,因此我尝试使用了如下的命令:
sudo ln -s /usr/local/autoconf/bin/autoconf autoconf
sudo ln -s /usr/local/autoconf/bin/autoheader autoheader
sudo ln -s /usr/local/autoconf/bin/autom4te autom4te
sudo ln -s /usr/local/autoconf/bin/autoreconf autoreconf
sudo ln -s /usr/local/autoconf/bin/autoscan autoscan
sudo ln -s /usr/local/autoconf/bin/autoupdate autoupdate
sudo ln -s /usr/local/autoconf/bin/ifnames ifnames
做了这些符号链接之后,我重新进入memcache源码文件使用phpize工具就没问题了,成功生成了configure文件:
  

linux安装php与memcache过程记录(2)


安装过程如下:
./configure   
>--with-php-config=/usr/local/php5.5/bin/php-config  
>--enable-memcache=/usr/bin/memcached
make
make install
安装完成如下图所示,最后出现的installed shared extensions是在php的配置文件中进行配置memcache时候需要使用到的,需要保存下来。

linux安装php与memcache过程记录(2)


 配置php.ini文件,在/usr/local/php5.5

b/php.ini,找到extension_dir这一行:
;extension_dir = "./" 改为
extension_dir = "安装memcache完成后的目录路径"
extension = "memcache.so" ;添加此行用于添加memcache扩展
使用如下的php代码进行测试:
<?php
//Test memcache
$mem = new Memcache;
$mem->connect('127.0.0.1', 11211);

echo '<pre>';
var_dump($mem);
var_dump(class_exists("Memcache"));
?>
结果如图: 

linux安装php与memcache过程记录(2)


通过上述的种种艰辛,不仅是完成了安装的任务,也让我进一步熟悉了linux下安装软件的各种值得注意的地方。安装gd2库的时候需要依赖Xpm库,这个问题其实是在安装好了gd2后安装php的时候出现的,然后又重新安装gd2,特别是安装Xpm后,使用了符号链接之后,就可以安装带有Xpm的gd2库了。这个方法是一个启示!在后面安装autoconf完成后,使用PATH变量失效时是当时突然想起符号链接这个方法,因此就自己尝试性使用并解决了问题。还有就是安装M4的时候,版本问题可能牵涉出很多底层的问题,这个我也没弄清楚,当时也是尝试性的使用最新版本安装就可以解决了。最后安装memcache的时候就比较顺利了。同时也发现网上有很多安装php的时候就使用配置选项--with-autoconf选项直接一步安装了autoconf,这样就可以直接使用phpize工具了,但是我这里没有安装,虽然让我费了周折,但是最后单独安装了autoconf之后,使用符号链接指定安装的autoconf路径,然后phpize就可以从PATH中的/usr/bin这个路径下找到,因此这也说明了安装php是指定配置选项应该就是指定了php对这个依赖项需要调用时的一个寻找路径。晚饭时间到了,折腾了一天,看到一切都可以使用的时候还是感觉蛮不错的!希望有前辈可以解答我前面提到的一些疑惑!
  以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。 
 
本文来自系统大全http://www.win7cn.com/如需转载请注明!推荐:win7纯净版

系统下载排行榜71011xp

提取码
XGZS
关闭 前往下载