#laravel #memcached #shared-hosting
Вопрос:
Я пытался изменить драйвер кэша ( CACHE_DRIVER
) с файла на memcached в рабочей среде (общий хост), где Memcached установлен правильно и доступен в соответствии с phpinfo. Все еще работает на Laravel 7.4.x
До сих пор я делал следующее:
- В файле .env я изменил значение
CACHE_DRIVER=file
наCACHE_DRIVER=memcached
; - Проверил конфигурацию в config/cache.php как показано ниже:
<?PHP
'stores' => [
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), // not required I think?...
'sasl' => [
env('MEMCACHED_USERNAME'), // not required I think?...
env('MEMCACHED_PASSWORD'), // not required I think?...
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000, // Ok
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'), // set like in phpinfo
'port' => env('MEMCACHED_PORT', 11211), // not required I think?...
'weight' => 100, // Ok
],
],
],
// ....
],
- Побежал
php artisan config:clear
иphp artisan cache:clear
; - Проверено наличие существующего тега кэша. например
cache()->has('countries')
, и его ложь; - Вернулся на
CACHE_DRIVER=file
прежнее место и начал все сначала. Результат дляcache()->has('countries')
и его истинный
Либо, возможно, мне чего-то не хватает в процессе, но в локальном он работает на Memcached, и для повышения производительности я пытаюсь изменить его в производстве.
Заранее спасибо за любые материалы, которые могут помочь мне решить эту проблему.
Комментарии:
1. Насколько я знаю
phpinfo
, могу сказать вам только то, правильно ли настроено расширение PHP для связи с memcache. Это на самом деле не скажет вам, доступен ли сам сервер memcache.2. Спасибо, @apokryfos, возможно, в этом и проблема. Я предполагал, что с установленным расширением это будет работать. Нужно проконсультироваться с поставщиком. Об этом я как-то не подумал.
Ответ №1:
Я не буду удалять вопрос (отвечаю здесь), так как это может помочь другим, сталкивающимся с той же проблемой на общих хостингах.
Как упоминал @apokryfos, расширение может быть там, но сервер Memcached может быть недоступен на всех общих хостингах, что является моим случаем.
Если у вас есть свои проекты на общем хостинге и вы хотите использовать Memcached, обратитесь в их службу поддержки и спросите, предусматривает ли ваш план сервер Memcached. В противном случае используйте другие системы кэша, а именно и, в конечном счете, кэш файлов.