簡體   English   中英

致命錯誤:未找到類'Memcache'(與pecl一起安裝)

[英]Fatal error: Class 'Memcache' not found (installed with pecl)

我通過ssh安裝了memcache,用:

$ pecl install memcache

這是輸出: https//pastee.org/w63sy

並將此行添加到etc/php.ini

extension=memcache.so

在嘗試初始化時:

/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);

我明白了:

Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25

我究竟做錯了什么?

我發現了這個問題,但問題出在於他的共享服務器。 我在VPS下。

正在運行: php -i | grep php.ini php -i | grep php.ini

[root@vps ~]# php -i | grep php.ini                                                                                                                                            
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/memcache.so' - /usr/lib/php/modules/memcache.so: cannot open shared object file: No such file o
r directory in Unknown on line 0                                                                                                                                               
Configuration File (php.ini) Path => /etc                                                                                                                                      
Loaded Configuration File => /etc/php.ini                                                                                                                                      
[root@vps ~]#    

查找memcache.so(無輸出)

[root@vps ~]# find / -type f -name memcache*.so'                                                                                                                              
[root@vps ~]# find / -type f -name memcache*.so                                                                                                                                
[root@vps ~]#

給定錯誤消息的輸出,看起來您缺少zlib開發庫,或者至少它們不在通常由configure自動找到的位置。

由於您使用的是CentOS,請嘗試使用以下命令安裝庫:

yum install zlib-devel

這將安裝memcache所需的zlib庫。 安裝zlib庫后,請嘗試重新運行pecl安裝程序。

如果您通過phpinfo()或php_config提供更多信息可能會有所幫助,更具體地說,您的安裝是否會看到memcache庫並且您的lib路徑是否正確。

php-config

將告訴你更多,有趣的是這里使用的php ini路徑和lib路徑php ini路徑將顯示當你使用--configure-options,suboption --with-config-file-path(/ etc / php5 / apache2 in我的特定情況)和lib路徑將顯示--extension-dir

例如

php-config --extension-dir

php-config --configure-options | grep -o 'with-config-file-path[^ ,.]*' | grep -o '[^=.]*$'

因此,要使用我的示例,我的lib路徑設置為

/ usr / lib / php5 / 20090626 + lfs和an

ls /usr/lib/php5/20090626+lfs/mem*  

我系統的命令顯示:

/usr/lib/php5/20090626+lfs/memcached.so

我的php.ini文件位於/etc/php5/apache2/php.ini

phpinfo()php函數(只是放在一個文件中並查看它)也顯示memcache為支持和加載“memcached支持啟用”(我專門使用memcached擴展,而不是memcache)

請注意,您的Web服務器可能配置為使用與命令行不同的php.ini路徑(以及文件),因此請同時驗證兩者。 還要確保將extension = memcache.so放在正確的位置,因為許多發行版將它放在/etc/php5/conf.d/memcache.ini中可能會有一些差異嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM