我使用configure命令从源代码构build了PHP
'./configure' '--prefix=/usr/local/php-5.2.8' '--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-zlib'
我安装了php memcache扩展:
wget http://pecl.php.net/get/memcache tar -zxvf memcache-2.2.5.tgz cd memcache-2.2.5 phpize ./configure --enable-memcache make make install
我添加到我的/usr/local/lib/php.in
extension=memcache.so
重新启动我的Apache并运行PHP-M,但PHP似乎不加载memcache扩展我跟着这个网站的解决schemehttp://www.howtoforge.com/forums/showthread.php?t=26554
我加了完整path
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
重新启动Apache但它没有加载memcache扩展! 我谷歌周围,但同样的问题! 我怎样才能加载这个扩展_ _“
首先运行你的php二进制文件
php -v
它应该抱怨你的php.ini想加载不能被加载的模块…
如果它不抱怨,运行
php --ini
这应该给你你的php.ini的位置(只是在你的编辑错误:D)
这有帮助吗?
问题是,在这一点上: wget http://pecl.php.net/get/memcache而不是tar -zxvf memcache-2.2.5.tgz ,你应该做tar -zxvf memcache tar -zxvf memcache-2.2.5.tgz tar -zxvf memcache (这是文件名从wget)。
解压缩文件后,您将获得最新版本的memcache,在执行此操作时,将获取文件夹memcache-3.0.8 。
所以,接下来的步骤是:
cd memcache-3.0.8 phpize ./configure --enable-memcache make make install
最后,不要忘记把这行添加到你的php.ini中:
extension = memcache.so
并重新启动Apache。
你确定memcached安装在正确的位置吗? 如果你运行,你会得到什么: locate memcache.so
安装了memcached(二进制)? 它是否需要任何额外的库(libmemcache)?
添加一个extension_dir指令来告诉PHP在哪里从extension指令中加载扩展和删除path。
extension = memcache.so extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20060613
帮助我的一件事就是使用
pecl uninstall memcache pecl install memcache
另一件事(这只适用于相当古老的PHP版本): http : //www.hollub.at/phpmanual/ref.memcache.html说:
In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option.
这是因为你的/ var / tmp挂载了noexec权限
你可以尝试在临时删除/ var / tmp符号链接后使用fuenfundachtzig命令重新编译memcache,并创build新的/ var / tmp文件夹。 (这个设置可能与你的服务器不同)
#rm /var/tmp #mkdir /var/tmp #pecl install memcache
然后确保您的临时文件夹
#rm -rf /var/tmp #ln -s /tmp /var/tmp
阅读更多关于确保tmp的信息
以及如何使用带有noexec的tmp安装PECL
如果你有你的PHP编译,尝试从你的php.ini中删除extension_dir 。