PHP   发布时间:2019-11-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP的Laravel框架结合MySQL与Redis数据库的使用部署大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

零、环境介绍

@H_675_4@
  • 操作系统:centOS
  • 数据库: mysql 5.6 (阿里云RDS)
  • php 5.4.4 (>=5.4即可)
  • Laravel 5.0
  • 一、安装LNMP

    在安装Laravel之前,需要把Linux + Nginx + Mysql + php的环境搭建好。具体的搭建步骤这里就不再详述了。 P.s.

    @H_675_4@
  • Linux阿里云已经自带了,本文使用的是centOS 6.5 64位的ECS
  • 关于Nginx和Apache的选择看自己喜好,本文使用的是反向代理能手Nginx
  • 是否安装Mysql也要看自己的情况,例如你使用阿里云的RDS,那就没必要安装了
  • 二、安装Composer

    composer是用来管理php包依赖的工具,Laravel正使用此工具进来依赖管理。有两种安装方式

    局部安装 全局安装,即在系统任意目录下可使用。本文只介绍此种安装方法。官方安装文档

    分别执行以下两条命令

    https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer

    安装完成,使用以下命令看是否安装成功

    出现版本号,即说明安装成功

    三、安装Laravel

    按照Laravel的官方文档说明即可,建议使用【通过Laravel安装工具】,没什么坑,这里略过 提示:由于Laravel还依赖于一些的php扩展,所以使用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用户能读写它

    四、让MVC跑起来!

    在此之前,你应该读一下官方文档 路由、控制器、数据库使用基础、Eloquent ORM 至此,可以开始coding,开发一个 MVC的demo了,此demo的功能是将数据库表tbl_item从数据库里读出来,并以json格式响应给浏览器。 假设你已经通过laravel new demo来初始化你的web app。

    @H_675_4@
  • 数据库里建库(demo)、建表(tbl_item),(字段随意定)
  • 配置配置文件 config/database.php
  • 直接操作数据库,往tbl_item里插入一条数据
  • 开始coding
  • demo/app/http/routes.php底部添加如下代码:

    php;"> Route::get('/item/{iD}','ItemController@showItem');

    demo/app/http/controllers/ 目录新添文件 ItemController.php,代码如下:

    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;"> php namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Item extends Model {

    protected $fillable = ['name','price'];
    protected $guarded = ['id'];

    /**

    @H_675_4@
  • 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

    安装

    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

    启动

    redis-server

    查看官方下载和安装文档,只需要几个命令即可

    2、安装php Predis

    Predisphp访问redis的扩展包,只需要下载原码即可,不需要安装php扩展(如php-redis.so)。但在这之前要介绍一个composer,因为laravel通过它来安装第三方程序包(管理依赖关系)。

    cd 到你的App所在路径,修改composer.json,在require字段里,添加"predis/predis":"~1.0.1",然后当前目录下 sudo composer update,此时就会自动下载包需要的扩展包,这些扩展包将会被放在vendor目录下。如果出现内存不够这些报错,现在看来是内存分配不够的原因,重启一下服务器即可,彻底解决的办法要修改服务器配置,但我不清楚改哪里,后续再补

    配置相关配置,查看官方文档即可。主要是配置config/database.php

    array( 'cluster' => false,'default' => array('host' => '127.0.0.1','port' => 6379) )

    3、coding

    php;"> 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;
    /**

    @H_675_4@
  • Create a new controller instance.
  • @return void
    */
    public function __construct()
    {
    $this->model = new User();
    }
  • /**

    @H_675_4@
  • 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');
    }

    }
    }

    大佬总结

    以上是大佬教程为你收集整理的PHP的Laravel框架结合MySQL与Redis数据库的使用部署全部内容,希望文章能够帮你解决PHP的Laravel框架结合MySQL与Redis数据库的使用部署所遇到的程序开发问题。

    如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
    标签: