配置用于phpredis的laravel 7
前言
在搜索了互联网,试图找出如何正确安装和使用phpredis,正如拉威尔所建议的那样,我找不到一个单一的真相来源或指南,没有给我留下更多的问题而不是答案。
我希望,在社区的帮助下,创造并不断完善这个指南。
本指南的目标
以最正确、最经得起未来考验的方式,为在homestead上安装和配置phpredis for laravel 7提供一个分步指南。
说明在phpredis已经安装/配置之后如何使用redis。
为什么不用predis?
根据laravel 7文档,predis似乎已经被放弃,在laravel的未来版本中,它可能不再受支持。此外,phpredis的性能优于predis。
phpredis与predis:实际生产数据的比较
参考文献
如何在ubuntu上安装phpredisforlaravel
拉雷维尔的phpredis-redis系列第2集
在fresh install homestad php7上安装php redis php7分支
拉威尔7 redis docs
在homestead上新安装的laravel 7上安装/配置phpredis
本指南假设您正在homestead开发环境中使用Laravel7。
安装phpredis包。
1. 去你的家园。
$ vagrant ssh
2. 下载phpredis包。
$ wget https://github.com/phpredis/phpredis/archive/master.zip
下载完成后,您应该可以使用以下命令看到一个名为master.zip的文件 ls
.
3. 从master.zip中提取phpredis主文件夹,然后删除master.zip。将提取的文件夹移到/etc/目录。然后导航到提取的phpredis主文件夹。
$ unzip master.zip
$ rm master.zip
$ sudo mv phpredis-master/ /etc/
$ cd /etc/phpredis-master/
4. 为phpredis php扩展准备构建环境。
$ phpize
$ ./configure
$ make && make install
5. 使用vim或您首选的编辑器更新redis.ini文件。
确保用您正在使用的php版本替换7.4。你可以通过运行 php -v
. 在我的例子中,它返回php7.4.4。然后我跑了 ls /etc/php/
列出我的php文件夹并找到/etc/php/7.4/目录。
$ sudo vim /etc/php/7.4/fpm/conf.d/redis.ini
现在应该在vim编辑器中打开该文件。复制下面的行,然后在vim中按i开始插入。然后单击鼠标右键并选择“粘贴”,或按shift+ins进行粘贴。
扩展=/etc/phpredis master/modules/redis.so
添加行后,按esc退出编辑模式,然后按:wq,然后按enter退出。
6. 重新启动服务
确保您位于/etc/phpredis master目录下/
同样,用您正在使用的php版本替换7.4。
$ sudo service php7.4-fpm restart
$ sudo service nginx restart
7. 确保一切正常。
$ sudo nginx -t
如果成功,则应输出以下内容。
nginx:配置文件/etc/nginx/nginx.conf语法正常
nginx:配置文件/etc/nginx/nginx.conf测试成功
配置laravel 7以使用phpredis。
现在应该在服务器上安装phpredis了。我们现在将配置laravel开始使用phpredis。
1. 将redis别名更改为redismanager。
打开config/app.php,然后在别名数组中将redis更改为redismanager
'aliases' => [
...
'RedisManager' => Illuminate\Support\Facades\Redis::class,
...
]
您可以将redis重命名为redismanager以外的其他名称,但为了保持一致性,我刚刚遵循了laravel文档中的建议。
测试redis是否正常工作
将以下内容添加到web.php routes文件中,然后导航到应用程序中的路由。
Route::get('/redis', function () {
$app = RedisManager::connection();
$app->set('key', 'Testing PhpRedis');
echo $app->get('key');
});
当导航到yoursite.local/redis时,您应该看到消息“testing phpredis”。
在项目中使用redis
一旦安装了phpredis并更新了laravel配置,现在就可以开始在项目中使用redis了。
在控制器中使用redis
// ExampleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use RedisManager;
class ExampleController extends Controller
{
public function index()
{
$visits = RedisManager::incr('visits');
return $visits;
}
}
常见问题
为什么我们必须将redis别名重命名为redismanager?
同样,既然laravel7默认使用phpredis,为什么我们必须将redis别名重命名为redismanager?
将redis别名重命名为redismanager将如何影响我的应用程序以及我如何使用它?
laravel7说phpredis是默认的,那么为什么我要这么做呢?
我已经成功地让phpredis在本地工作,但是当我在vapor上部署时,它就不工作了。我该怎么办?
如果我不用宅基地怎么办?
待办事项
如果下载phpredis包 $ wget https://github.com/phpredis/phpredis/archive/master.zip
是安装软件包的最佳方式,或者是否有更好的选择,例如可能通过pecl安装。
2条答案
按热度按时间zpqajqem1#
如果您使用的是laravel/forge,则不需要安装phpredis,因为它是由forge在服务器配置期间安装的。
你会发现
extension=redis.so
已存在于sudo nano /etc/php/7.4/fpm/conf.d/20-redis.ini
其余的过程应该与指南类似,但我还没有亲自测试它。我会发回我的调查结果。ctehm74n2#
非常好的指南,安装在当地的家园。为了方便我会跑
sudo su
之后vagrant ssh
这样您就可以以root身份运行所有内容。