Используя кэш-память с PHP

Я хочу начать использовать кэш-память с PHP (на Ubuntu 9.10). Существует много информации онлайн, которое, кажется, показывает, как сделать это. Suprisingly, хотя, ни одна из статей (я видел до сих пор), явно указывают, необходимо ли ВЫПОЛНИТЬ процесс кэш-памяти ПРЕЖДЕ, ЧЕМ попытаться использовать его или будет ли путем простого вызова нового MemCache () через клиентскую библиотеку PHP, процесс порожден (не уже работая).

Из различных документов я читал на этом до сих пор, это шаги, что я думаю, имеют смысл:

  1. Кэш-память установки на Вашей машине (существует несколько документов, показывающих, как сделать это),
  2. Измените свой файл php.ini и установите кэш-память связанный consts/flags на значения, которые имеют смысл для Вашей среды
  3. Создайте init сценарий в ini.d для запуска кэш-памяти как демона
  4. Демон Apache перезапуска

Номер 3 является частью, на которой я нуждаюсь в подтверждении, потому что ни один из документов, которые я видел до сих пор, не упоминает продолжительность жизни процесса кэш-памяти.

Может кто-то испытал в этом, подтверждают, является ли это корректными шагами? Также, если я пропустил шаг, сообщить мне.

Как в стороне, так как я относительно плохо знаком с Linux, я был бы благодарен, если бы кто-то мог бы отправить пример init сценария, который был бы необходим для выполнения процесса демона кэш-памяти (предполагающий, что шаги, которые я обрисовал в общих чертах выше, корректны),

7
задан MrTux 3 February 2015 в 16:01
поделиться

1 ответ

memcached и Apache+PHP - две совершенно не связанные вещи, поначалу. Единственное, что PHP подключается к демону memcached.

Так что, да, memcached (обратите внимание на 'd' в конце ) должен быть запущен, прежде чем вы попытаетесь его использовать: если вы попытаетесь подключиться к серверу memcached, когда он не запущен, вы просто не сможете подключиться - он не породит нового демона или что-то еще.

Простое сравнение: если ваш сервер Apache не запущен и вы пытаетесь подключиться к нему через браузер, вы получите ошибку "cannot connect"; точно так же PHP пытается подключиться к memcached: он не сможет этого сделать.


Теперь, что касается процесса установки, вот пара замечаний для тех частей, которые не выглядят нормально в том, что вы сказали:

  • Установите memcached на вашу машину.
    • Если вы установили его, используя меканизм вашего дистрибутива, он должен был создать скрипт в /etc/init.d/
    • И он должен был запустить демон
    • В качестве напоминания, чтобы установить что-то в Ubuntu, вы должны использовать apt-get install memcached или aptitude install memcached
  • Перед изменением php. ini, вы должны установить memcache расширение для PHP - чтобы PHP имел функции для подключения к memcached.
    • Это можно сделать с помощью php5-memcache пакета вашего дистрибутива
    • Или с помощью команды pecl install memcache, которая загрузит исходники с pecl.php.net и скомпилирует их - что означает, что вам понадобится все необходимое для компиляции программного обеспечения.


Edit: проще ответить здесь, чем в комментарии

Я сказал, что установка memcached должна быть в порядке - на Ubuntu, похоже, есть ловушка:

Используя это:

ps -Alf | grep memcached

Я не вижу никакого запущенного демона.

И когда я пытаюсь запустить демон, я получаю следующее:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached disabled in /etc/default/memcached.


Итак, на Ubuntu, вы должны отредактировать /etc/default/memcached, и изменить его; вместо этого:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=no

Он должен содержать это:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes

Затем, запуск memcached должен быть возможен:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached.
test@tests: ~/temp
$ ps -Alf | grep mem
4 S nobody    3813     1  0  80   0 - 30025 ep_pol 00:17 pts/4    00:00:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
0 R test      3819  2690  0  80   0 -  1834 -      00:17 pts/4    00:00:00 grep --color=auto mem


Примечание: теперь, когда memcached включен, он должен запускаться автоматически с вашей системой, каждый раз, когда вы перезагружаете ее.

11
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: