tasukentのブログ

Objective-c、PHP、Javaとか色々試してアウトプットしていきます。

Laravel5をComposerでCentOS6.6にセットアップする

CentOS6.6にPHPApache+Laravel5の環境を構築したのでその手順をメモ。 サーバを立てた直後からの構築なので事前準備は何もしてません。全てデフォルトのままです。

PHPApache・Composerのインストール

パッケージのインストール

パッケージ管理は使わない方が今後のためかもしれませんが、スピード重視のため使いまくります。 以下のコマンドでApache,PHP,その他依存パッケージをガバっと入れます。

$yum install php 

Composerをインストール

Laravelを導入するにあたり、PHPのパッケージ管理「Composer」を使います。 以下コマンドでインストール済みのPHPにComporserを紐付けてインストールします。

$curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin

PHPのバージョンアップ

現時点でyumリポジトリに用意されているPHPは5.3系でした。 LaravelはPHP5.3系でも動くようですが、致命的な問題が発生してます的な警告がでるのでepelリポジトリとremiリポジトリを追加してアップデートします。

epelリポジトリの追加

$rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

remiリポジトリの追加

$rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 

php5.5とのインストール

yum list で追加したリポジトリの中にあるPHPパッケージを確認します。 PHP5.5とその他パッケージをインストールします。 不要なもの、必要なものがその他あれば適宜置き換えて下さい。

$yum list --enablerepo=remi --enablerepo=remi-php55 | grep php
$yum install --enablerepo=remi --enablerepo=remi-php55 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug 

Laravel5の構築

laravel5のインストール

先ほどインストールしたComposerを使ってLaravel5をインストールします。 確認はlaravelコマンドで。以下のように表示されればOK。

$composer global require "laravel/installer=~1.1" 
$laravel

Laravel Installer version 1.1

Usage:
[options] command [arguments]

Options:
--help (-h) Display this help message
--quiet (-q) Do not output any message
--verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version (-V) Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
--no-interaction (-n) Do not ask any interactive question

Available commands:
help Displays help for a command
list Lists commands
new Create a new Laravel application.

composer.phar create-project laravel/laravel laravel 

laravelプロジェクトの作成

プロジェクトを作成するディレクトにcdしてlaravelプロジェクトを生成します。 その後、生成したプロジェクト配下のstorageディレクトリのパーミッションを変更します。/var/www/配下で作成した場合は/var/www/laravelProject/storageです。 laravelのstorageディレクトリはキャッシュ用ディレクトリなので読み書き権限の付与が必要らしいです。

$cd /var/www/
$laravel new laravelProject 
$chmod -R 777 laravelProject/storage/

Apacheの設定

ここまででLravel5のセットアップは完了です。 ブラウザでアクセスするとLravel5のディレクトリ構成が丸見え状態になりますが、Apacheの設定を変更すれば大丈夫です。

httpd.confの編集

ドキュメントルートを生成したlaravelProjectのpublicディレクトリにします。(httpd.confのバックアップはお忘れなく) その後、Apacheを再起動してブラウザで確認します。

$vim /etc/httpd/conf/httpd.conf 
# DocumentRootを以下のように書き換えます。
DocumentRoot "/var/www/laravelProject/public" 

$service httpd restart 

以下の画面が表示されればLaravel5のセットアップ完了です

f:id:tasukent:20150215143447p:plain

ついでにセキュリティ強化

現状のままだとHTTPHeaderにApacheのバージョンやPHP情報などが丸見えです。 「バージョンがユーザから見える」=「脆弱性がまるわかり」ということなので隠します。

PHP情報を隠す

$vim /etc/php.ini
#expose_php = On
#↑を下記のように書き換え
expose_php = Off 

Apacheのバージョン情報を隠す

$vim /etc/httpd/conf/httpd.conf
# ServerTokens OS
#↑を下記のように書き換え
ServerTokens ProductOnly 

Apacheを再起動して確認

再起動がすんだらブラウザで確認します。 HTTPHeaderが以下のようになっていると思います。X-Powered-ByとServerの部分が変更されていればOKです。

<変更前>

Cache-Control:no-cache
Connection:close
Content-Length:791
Content-Type:text/html; charset=UTF-8
Server:Apache/2.2.15 (CentOS)
X-Powered-By:PHP/5.5.21

<変更後>

Cache-Control:no-cache
Connection:close
Content-Length:805
Content-Type:text/html; charset=UTF-8
Server:Apache

以上で完了です。 何か間違っているところなどありましたら教えてください。

参考資料

Composer

PHP - CentOS6.4にLaravelをインストールする - Qiita

Laravel - The PHP Framework For Web Artisans