美文网首页PHP的地下世界
LNMP结合PHP框架Laravel的使用

LNMP结合PHP框架Laravel的使用

作者: 啃先生 | 来源:发表于2015-05-12 16:37 被阅读4423次

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

一、环境介绍##

  • 操作系统:centOS
  • 数据库: mysql 5.6 (阿里云RDS)
  • PHP 5.4.4 (>=5.4即可)
  • Laravel 5.0

一、安装LNMP##

在安装Laravel之前,需要把Linux + Nginx + Mysql + Php的环境搭建好。
这里有一篇非常详细的文章,按着操作即可

P.S.

  1. Linux阿里云已经自带了,本文使用的是centOS 6.5 64位的ECS
  2. 关于Nginx和Apache的选择看自己喜好,本文使用的是反向代理能手Nginx
  3. 是否安装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。

  1. 数据库里建库(demo)、建表(tbl_item),(字段随意定)
  2. 配置配置文件 config/database.php
  3. 直接操作数据库,往tbl_item里插入一条数据
  4. 开始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数据

熟读文档##

查看

相关文章

网友评论

    本文标题:LNMP结合PHP框架Laravel的使用

    本文链接:https://www.haomeiwen.com/subject/xjppxttx.html