LNMP結合PHP框架Laravel的使用

相對于熟讀官方文檔,更重要的是要把框架環境搭起來。

一、環境介紹##

  • 操作系統: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數據

熟讀文檔##

查看

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,626評論 0 121
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,324評論 25 708
  • 蘋果開發者大會視頻的下載工具:https://github.com/insidegui/WWDC這個是非官方的, ...
    windgo閱讀 481評論 0 0
  • 今天把《江城》這本書讀了一大半了,很久沒有讀過這么細致入微的書了。這本書的前半段很多是講關于中國教育體制的。之前的...
    FMDX閱讀 521評論 0 14
  • 如如果… 各有前程莫相問
    小horse閱讀 128評論 0 0