找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 996|回复: 0
打印 上一主题 下一主题

PHP的Laravel框架结合MySQL与Redis数据库的使用部署

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:37:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            相对于熟读官方文档,更重要的是要把框架环境搭起来。
零、环境介绍

  
  • 操作系统: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,代码如下:
    model = new Item();
      }
      public function showItem($id)
      {
        $users = $this->model->fetchAll();
        echo json_encode($users);
        Log::info('获取用户列表,通过msyql');
      }
    }
    demo/app/目录下新增文件 Item.php 代码如下
    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

    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');
        }
      }
    }
                
                
    您可能感兴趣的文章:
  • 30个php操作redis常用方法代码例子
  • php Session存储到Redis的方法
  • php操作redis中的hash和zset类型数据的方法和代码例子
  • 在PHP中使用redis
  • php结合redis实现高并发下的抢购、秒杀功能的实例
  • PHP实现操作redis的封装类完整实例
  • php中使用redis队列操作实例代码
  • PHP中redis的用法深入解析
  • PHP长连接实现与使用方法详解
  • PHP扩展模块memcached长连接使用方法分析
  • 基于php实现长连接的方法与注意事项的问题
  • PHP使用Redis长连接的方法详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端