My Photo

« Excelで就業時間を計算する式を考えた | Main | 「ペルソナ4 ザ・ゴールデン」クリア »

May 06, 2015

Laravel4のインストール

関連記事:
[CentOS 6.6]PHP5.5のインストール

Laravelに関する本が出たので購入。電子出版による本はすでにあったが、紙媒体では初のLaravel本だと思う。
本に従ってvirtualbox上のCentoOS 6.6 でLaravelプロジェクトを作成してみた。
最初に本の内容に入る前に、Laravelで必須なPHPのmbstringがインストールされていなかったので、以下のようにyumでインストールした。

yum --enablerepo=remi --enablerepo=remi-php55 install php-mbstring

ここから本の内容に従った作業。
現在、Laravelの最新バージョンは5だが、今回はバージョン4の環境を作る。今後、触るかもしれないWEBアプリがバージョン4で作られているので。

Lravelの取得

LaravelのインストールはPHPやPostgreSQLの「インストール」とは違うような気がする。プロジェクトをごとにLaravelの環境を作ると考えた方が合っている?
composerコマンドを下記を実行すると、指定したディレクトリに必要なファイルが用意される。ディレクトリ名はプロジェクトのディレクトリを指定する。絶対でも相対でもよい。

composer create-project laravel/laravel <ディレクトリ名> 4.2.*

今回はディレクトリをドキュメントルートのサブディレクトリ /var/www/html/ltest とした。

# composer create-project laravel/laravel /var/www/html/ltest 4.2.*
Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.
Installing laravel/laravel (v4.2.11)
  - Installing laravel/laravel (v4.2.11)
    Downloading: 100%         

Created project in /var/www/html/ltest
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing symfony/translation (v2.5.11)
    Downloading: 100%         
<中略>
laravel/framework suggests installing doctrine/dbal (Allow renaming columns and dropping SQLite columns.)
Writing lock file
Generating autoload files
Generating optimized class loader
Compiling common classes
Compiling views
Application key [**********************] set successfully.
#

「composerをアップデートしろ」的なワーニングが出たが、コマンドはたぶん正常に完了。
インストールの最後に表示される "Application key" は app/config/app.php が返す配列のキーが "key" という要素の値に保存されている。
プロジェクトのディレクトリは以下のような構成となる。

app
├─commands
├─config
├─controllers
├─database
│  ├─migrations
│  └─seeds
├─lang
├─models
├─start
├─storage
├─tests
└─views
bootstrap
public
vendor

上記のディレクトリの中で app/storage 以下はLaravelがファイルを保存できるように、以下のコマンドでパーミッションを777に変更しておく。

chmod -R 777 storage

プロジェクトのディレクトリをLinuxのユーザのホームディレクトリの配下、例えば /home/hoge/ltest とかにすると、SELinuxのせいで色々と面倒らしい。

バーチャルホストの設定

作成したプロジェクトのディレクトリ配下のpublicディレクトリがドキュメントルートとなるので、ここをドキュメントルートとするバーチャルホストの設定をする。
まず、httpd.conf の以下の2箇所を変更。

変更前: #ServerName www.example.com:80
変更後: ServerName www.into1st.jp:80
変更前: #NameVirtualHost *:80
変更後: NameVirtualHost *:80

ServerNameについてはコメントになってればいいと書いてあるWEB上の記事もあったが、こうしないと以下のようなワーニングが出力された。

# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: httpd: Could not reliably determine the server's fully qualified 
domain name, using localhost.localdomain for ServerName
CentOS 6.6のApacheでは設定ファイルは /etc/httpd/conf/httpd.conf である。この設定ファイルの中で /etc/httpd/conf.d/*.conf を読み込むようになっている。よって、バーチャルホストの設定として以下の3ファイルを /etc/httpd/conf.d に作成する。ファイル名は適当に決めた。

virtualhost-undefinedhost.conf は未定義のホスト名でアクセスされた場合にアクセスを拒否するための設定。

<VirtualHost *:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>

virtualhost-main.conf はメインのホスト名の設定。/var/www/html をドキュメントルートとする。

<VirtualHost *:80>
    ServerName www.into1st.jp
    DocumentRoot /var/www/html
</VirtualHost>

virtualhost-virtual01.conf はLaravel4のプロジェクト用バーチャルホストの設定。

<VirtualHost *:80>
    ServerName www.ltest.jp
    DocumentRoot /var/www/html/ltest/public
    ErrorLog logs/virtual-error_log
    CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

これで、httpd を再起動すればOK、のはず。しかしまだワーニングが。

# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: Warning: DocumentRoot [/var/www/html/ltest/public] does not exist

SELinuxが原因らしい。面倒だなSELinux。
ちゃんと対応するなら /var/www/html/ltest/public にSELinuxのラベルの設定を行うらしいのだが、その対応はいつかすることにして、今回は一時的にSELinuxを無効にして再起動。

# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive
# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

これでサーバ側の設定は完了。
DNSの設定変更は面倒なので、クライアントPCのhostsファイルにバーチャルホストの設定に記述したドメインを以下のように追記する。

<サーバのIPアドレス> www.into1st.jp www.ltest.jp

これで http://www.ltest.jp/ にアクセスすると "You hava arrived." と表示される。
長かった^^;

参考書籍:

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
川瀬 裕久 古川 文生 松尾 大 竹澤 有貴 小山 哲志 新原 雅司

技術評論社 2015-04-21
売り上げランキング : 4108

Amazonで詳しく見る
by G-Tools

参考ページ:Laravelについて
インストール 4.2.0 Laravel
CentOS 6.5 + PHP 5.6 + MySQL 5.6 + laravel4 環境を作る(part 2)|OISのブログ|株式会社オリエンタルインフォーメイションサービス
CentOS 6.6 で Laravel4 を使う準備 - Qiita
CentOS 6.5 + nginx 1.6.1 + Laravel 4.2のインストールメモ - Qiita
PHP - Laravel 4のインストール - Qiita

参考ページ:バーチャルホストについて
バーチャルホスト設定 - CentOSで自宅サーバー構築
11 | 5月 | 2013 | 其未来.com
複数のドメインを運営する (バーチャルホスト) - Linux で自宅サーバ [ Home Server Technical. ]

参考ページ:SELinuxについて
[CentOS][Apache]SELinux有効下でのドキュメントルートの変更 | ごった煮 - tips about programming and building a server
SELinuxを有効にしているときにありがちなpermission denied - kgbu's diary
SELinuxを無効化する | Smart

« Excelで就業時間を計算する式を考えた | Main | 「ペルソナ4 ザ・ゴールデン」クリア »

Linux」カテゴリの記事

PHP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/61548580

Listed below are links to weblogs that reference Laravel4のインストール:

« Excelで就業時間を計算する式を考えた | Main | 「ペルソナ4 ザ・ゴールデン」クリア »

March 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof