Мне нужно использовать разные версии lampp (xampp для Linux).
Недавно мне также нужно использовать memcache с любой версией lampp, которая может мне понадобиться.
Все идет хорошо, если я использую последнюю версию lampp 1.7.7, которая содержит PHP 5.3.8, я просто делаю
sudo apt-get install php5-memcache
sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so'
Проблема в том, что я пытаюсь сделать то же самое со старой версией lampp.
Например, я удалил lampp 1.7.7 и php5-memcache, затем я установил lampp 1.7.1, который содержит PHP 5.2.9, но делает
sudo apt-get install php5-memcache
Я получаю более новую версию memcache (20090626) для более старой версии php (20060613). Фактически, если я попытаюсь скопировать
sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/o-debug-non-zts-20060613/memcache.so'
Я получаю эту ошибку при запуске lampp:
Starting XAMPP for Linux 1.7.1...
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
Если я удалю php5-memcahe и удалю memcache.so из расширения lampp
sudo apt-get remove php5-memcache
sudo rm /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
если я попытаюсь сделать
sudo pecl i memcache
я получил
pecl/memcache is already installed and is the same as the released version 2.2.6
install failed
Итак, как мне установить memcache.so версии 20060613, когда я использую lampp 1.7.1?
Простое решение. Вам нужна сборка memcache.so с API 20060613. Это довольно старая версия, но если вы перейдете к http://packages.ubuntu.com/hardy/php5-memcache вы найдете как пакеты amd64, так и i386. Бегать
uname -m
чтобы узнать, какая у вас архитектура, и соответственно загрузить пакет. После того, как вы загрузили пакет, просто зайдите в mc, откройте пакет, получите memcache.so и скопируйте его в / opt / lampp / lib / php / extensions / no-debug-non-zts-20060613 / и добавьте в php.ini
extension=memcache.so
если он говорит, что не находит memcache. поэтому, вероятно, вам следует соответствующим образом настроить extensiondir.
Перезагрузите apache и посмотрите php_info (); Он должен быть там.
В будущем попробуйте использовать версии php / apache / mysql для ubuntu / debian и не используйте lampp. Я знаю, что с lampp намного проще, но после того, как вы поймете, что происходит «под капотом», вам будет легче создавать свои приложения и понимать Linux. Еще одна проблема с lampp - обновления безопасности. Если вы используете версии Ubuntu или Debian, у вас будут все обновления с ОС, и весь процесс обновления займет секунды, а не часы или дни.
При использовании автоматизированных инструментов для установки apache и php вы в значительной степени ограничены степенью гибкости при запуске различных версий приложений.
Я бы загрузил исходники для apache и php и установил их через
./configure {with all the options and independent paths that you want}
make ; make install
Это позволит вам сделать две вещи.
В долгосрочной перспективе это может быть немного сложнее. Но по мере вашего роста и адаптации это даст вам гораздо больше возможностей для сравнения.
Также у вас проблема с pecl, возможно, вы уже установили его. Попробуйте бежать
[путь] / список pecl
Он сообщит вам, что вы уже установили. Для удаления вы можете использовать
pecl remove [название продукта]
Чтобы удалить любые плагины, которые вы не хотите устанавливать