PHP的Laravel框架结合MySQL与Redis数据库的使用部署
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-20 21:52:42 浏览: 评论:0
这篇文章主要介绍了PHP的Laravel框架结合MySQL与Redis数据库的使用部署,需要的朋友可以参考下。
相对于熟读官方文档,更重要的是要把框架环境搭起来。
零、环境介绍
操作系统:centOS
数据库: mysql 5.6 (阿里云RDS)
PHP 5.4.4 (>=5.4即可)
Laravel 5.0
一、安装LNMP
在安装Laravel之前,需要把Linux + Nginx + Mysql + Php的环境搭建好。具体的搭建步骤这里就不再详述了。
P.S.
Linux阿里云已经自带了,本文使用的是centOS 6.5 64位的ECS
关于Nginx和Apache的选择看自己喜好,本文使用的是反向代理能手Nginx
是否安装Mysql也要看自己的情况,例如你使用阿里云的RDS,那就没必要安装了
二、安装Composer
composer是用来管理PHP包依赖的工具,Laravel正使用此工具进来依赖管理,有两种安装方式
局部安装
全局安装,即在系统任意目录下可使用,本文只介绍此种安装方法,官方安装文档
分别执行以下两条命令
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
安装完成,使用以下命令看是否安装成功
composer -V
出现版本号,即说明安装成功
三、安装Laravel
按照Laravel的官方文档说明即可,建议使用【通过Laravel安装工具】,没什么坑,这里略过
提示:由于Laravel还依赖于一些的PHP扩展,所以使用yum安装
sudo install yum php-mysql php-mcrypt php-mbstring php-tokenizer php-openssl
安装完成后,在Nginx的配置文件(一般是/etc/nginx/conf.d/default.conf)最下方添加如下配置
- location / {
- try_files $uri $uri/ /index.php?$query_string;
- }
来到你的laravel工程目录下,看到storage和vendor文件夹,使用以下命令修改其文件读写权限,让Nginx用户能读写它
sudo chmod -R 766 storage
sudo chmod -R 766 vendor
四、让MVC跑起来!
在此之前,你应该读一下官方文档 路由、控制器、数据库使用基础、Eloquent ORM
至此,可以开始coding,开发一个 MVC的demo了,此demo的功能是将数据库表tbl_item从数据库里读出来,并以json格式响应给浏览器。
假设你已经通过laravel new demo来初始化你的web app。
数据库里建库(demo)、建表(tbl_item),(字段随意定)
配置配置文件 config/database.php
直接操作数据库,往tbl_item里插入一条数据
开始coding
demo/app/http/routes.php底部添加如下代码:
Route::get('/item/{id}', 'ItemController@showItem');
demo/app/http/controllers/ 目录新添文件 ItemController.php,代码如下:
- <?php namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Item as Item;
- class ItemController extends Controller {
- private $model;
- public function __construct()
- {
- $this->model = new Item();
- }
- public function showItem($id)
- {
- $users = $this->model->fetchAll();
- echo json_encode($users);
- Log::info('获取用户列表,通过msyql');
- }
- }
demo/app/目录下新增文件 Item.php 代码如下
- <?php namespace App;
- use Illuminate\Database\Eloquent\Model;
- class Item extends Model {
- protected $fillable = ['name', 'price'];
- protected $guarded = ['id'];
- /**
- * The database table used by the model.
- * default: tbl_items
- * @var string
- */
- // protected $table = 'tbl_items';
- public function fetchAll(){
- $items = $this->all()->toJson();
- return $items;
- }
- }
使用浏览器访问http://yourIp/item/1,即可列出所有的item数据
五、Laravel结合Redis
直连DB是不够的,很快数据库访问就会成为系统的瓶颈,我们引入缓存Redis,还是一样的思路,先让系统跑起来。
1、安装启动Redis
安装
- $ wget http://download.redis.io/releases/redis-3.0.1.tar.gz
- $ tar xzf redis-3.0.1.tar.gz
- $ cd redis-3.0.1
- $ make
启动
$ src/redis-server
查看官方下载和安装文档,只需要几个命令即可
2、安装PHP PRedis
PRedis是PHP访问redis的扩展包,只需要下载原码即可,不需要安装PHP扩展(如php-redis.so)。但在这之前要介绍一个composer,因为laravel通过它来安装第三方程序包(管理依赖关系)。
cd 到你的App所在路径,修改composer.json,在require字段里,添加"predis/predis":"~1.0.1",然后当前目录下 sudo composer update,此时就会自动下载包需要的扩展包,这些扩展包将会被放在vendor目录下。如果出现内存不够这些报错,现在看来是内存分配不够的原因,重启一下服务器即可,彻底解决的办法要修改服务器配置,但我不清楚改哪里,后续再补
配置相关配置,查看官方文档即可,主要是配置config/database.php
- 'redis' => array(
- 'cluster' => false,
- 'default' => array('host' => '127.0.0.1', 'port' => 6379)
- )
3、coding
- <?php namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\User as User;
- use Illuminate\Support\Facades\Redis as Redis;
- class UserController extends Controller {
- // use User;
- private $model;
- /**
- * Create a new controller instance.
- *
- * @return void
- */
- public function __construct()
- {
- $this->model = new User();
- }
- /**
- * Show
- *
- * @return Response
- */
- public function showUser($id)
- {
- $redis = Redis::connection('default');
- $cacheUsers = $redis->get('userList');
- if( $cacheUsers ){
- $users = $cacheUsers;
- print_r($users);
- Log::info('获取用户列表,通过redis');
- }else{
- $users = $this->model->fetchAll();
- $redis->set('userList', $users);
- print_r($users);
- Log::info('获取用户列表,通过msyql');
- }
- }
- }
Tags: Laravel Redis
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)