環境
OS:Ubuntu14.04
php 5.6.0
Apache 2.4.10
thinkpad T440p
composerのインストール
~/work$ curl -sS https://getcomposer.org/installer | php
# !/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /home/user/work/composer.phar
Use it: php composer.phar
パスが通った場所にコピー
~/work$ sudo mv composer.phar /usr/local/bin/composer
Laravel installerでインストール
~$ composer global require "laravel/installer=~1.1"
Changed current directory to /home/k/.composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/console (v2.5.4)
Downloading: 100%
- Installing guzzlehttp/streams (2.1.0)
Downloading: 100%
- Installing guzzlehttp/guzzle (4.2.2)
Downloading: 100%
- Installing laravel/installer (v1.1.3)
Downloading: 100%
~/.composer/vendor/binをパスに追加してlaravelコマンドを使用しやすくしておく
export PATH=$PATH:$HOME/.composer/vendor/bin
~$ . .bashrc
プロジェクト作成
~$ laravel new laravel_test
Crafting application...
Application ready! Build something amazing.
これでlaravel_testというプロジェクトが作成される
確認
artisan serveコマンドで組み込みサーバを立ち上げることが出来る
cd laravel_test
php artisan serve
http://localhost:8000/
にアクセス出来てればok
Apacheの使用
apacheの設定でvirtual hostのconfファイルを読み込むようにする
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
Include conf/extra/laravel-vhosts.conf ##追加
apache2/conf/extra/にはhttpd-vhosts.confが置いてあるのでこれをコピーしてlaravel-vhosts.confとして編集する
<VirtualHost *:8080>
ServerName laravel.dev
ServerAlias myapp.laravel
DocumentRoot "/home/user/laravel_test/public"
<Directory "/home/user/laravel_test/public">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Apache2.4ではRequire all grantedを書いてないと.htaccessの許可でハマる
laravel_test/app/storageのパーミッションを変更する
cd ~/laravel_test/app
chmod -R 777 storage/
laravel_test/public/.htaccessを編集する
http://blog.ridvanbaluyos.com/2014/02/laravel-4-getting-403-forbidden-access.html
http://stackoverflow.com/questions/18272557/laravel-forbidden-you-dont-have-permission-to-access-on-this-server
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
以下のように直す
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Redirect Trailing Slashes...
# RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
apacheの再起動
apache_restart
laravel.dev:8080/index.php
にアクセスできればok
routeについて
http://laravel4.kore1server.com/docs
app/routes.phpにルーティングを記述する,ここに
Route::get('users','UserController@getIndex');
と記述すると/usrにアクセスした時にapp/controllers/UserControllerのgetIndexメソッドを呼び出す。
UserController.phpのUserControllerクラスに以下のメソッドを追加すると
<?php
class UserController extends BaseController {
public function getIndex()
{
return View::make('user');
}
}
viewsにあるuser.blade.phpを読み込む
appのconfig
app/config/app.config
keyの設定はlaravel_test/で
php artisan key:generateで設定される