相對于熟讀官方文檔,更重要的是要把框架環境搭起來。
一、環境介紹##
- 操作系統: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數據