Laravel5をComposerでCentOS6.6にセットアップする
CentOS6.6にPHP+Apache+Laravel5の環境を構築したのでその手順をメモ。 サーバを立てた直後からの構築なので事前準備は何もしてません。全てデフォルトのままです。
PHP・Apache・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のセットアップ完了です
ついでにセキュリティ強化
現状のままだと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
以上で完了です。 何か間違っているところなどありましたら教えてください。