Laravel memcached 在共享主机中不工作
Laravel memcached not working in shared hosting
我一直在尝试将生产中的缓存驱动程序 (CACHE_DRIVER
) 从 file 更改为 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')
及其 false;
- 改回
CACHE_DRIVER=file
并重新开始。 cache()->has('countries')
及其 true 的结果
可能我在这个过程中遗漏了一些东西,但在本地它是 运行 在 Memcached 上,为了提高性能,我正在尝试在生产中改变它。
提前感谢任何可能帮助我解决此问题的意见。
我不会删除问题(在此处回答),因为它可能会帮助其他在共享主机上面临同样问题的人。
正如@apokryfos 提到的那样,扩展可能存在,但 Memcached 服务器可能无法在所有共享主机中使用,这是我的情况。
如果您的项目在共享主机上并且想要使用 Memcached,请联系他们的支持并询问您的计划是否考虑使用 Memcached 服务器。否则,使用其他缓存系统,即最后的文件缓存。
我一直在尝试将生产中的缓存驱动程序 (CACHE_DRIVER
) 从 file 更改为 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')
及其 false; - 改回
CACHE_DRIVER=file
并重新开始。cache()->has('countries')
及其 true 的结果
可能我在这个过程中遗漏了一些东西,但在本地它是 运行 在 Memcached 上,为了提高性能,我正在尝试在生产中改变它。
提前感谢任何可能帮助我解决此问题的意见。
我不会删除问题(在此处回答),因为它可能会帮助其他在共享主机上面临同样问题的人。
正如@apokryfos 提到的那样,扩展可能存在,但 Memcached 服务器可能无法在所有共享主机中使用,这是我的情况。
如果您的项目在共享主机上并且想要使用 Memcached,请联系他们的支持并询问您的计划是否考虑使用 Memcached 服务器。否则,使用其他缓存系统,即最后的文件缓存。