Я построил PHP из исходников с помощью команды configure
'./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. Я следил за этим решением с этого сайта. http://www.howtoforge.com/forums/showthread.php?t=26554
Я добавил полный путь
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
(это имя файла из 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
директива.
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
вы можете попробовать перекомпилировать кэш памяти с помощью команды fuenfundachtzig после временного удаления символической ссылки / var / tmp и создания новой папки / var / tmp. (этот параметр может отличаться от вашего сервера)
#rm /var/tmp
#mkdir /var/tmp
#pecl install memcache
затем защитите свою временную папку
#rm -rf /var/tmp
#ln -s /tmp /var/tmp
узнать больше о защите tmp Вот
и как использовать PECL с tmp, установленным с помощью noexec
Если у вас есть скомпилированный PHP, попробуйте удалить extension_dir от твоего php.ini.