今更ですが、VPS環境でLaravelをセットアップしてみました。タイトルに「VPS」とありますがVPS関係ありませんし、Laravelがどうこうと言うよりはnginxの設定でやたら苦労したので備忘録も兼ねてまとめます。
#環境
OS: Ubuntu 14.04.1 LTS
WEBサーバ: nginx 1.6.1
PHP: PHP 5.5.9
PHPフレームワーク: Laravel Framework 4.2.8
#準備
基本的なところは省略します。
Linuxのセットアップが終わったら、apt-getで次のソフトウェアをインストールします。
- Vim(Vimに限らずお好きなエディタを使うといいと思います)
- php5-fpm
- php5-cli
- php5-mcrypt
#nginxのインストール
nginxは公式のリポジトリを使ってインストールします。
/etc/apt/source.listに次の行を追加します。
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
保存して、PGP公開鍵を追加しましょう。
wget http://nginx.org/keys/nginx_signing.key
sudo cat nginx_signing.key | apt-key add -
apt-getでnginxをインストールしましょう(updateを忘れずに)。
sudo apt-get update
sudo apt-get install nginx
以上で完了です。
あとは念のため、Apacheが動いている場合はポートを専有してしまうため停止させましょう。
px aux | grep apache
(Apacheが動いていたら・・・)
sudo service apache stop (あるいは、 sudo /etc/init.d/apache2 stop)
ただ、これでは再起動した時にApacheが起動してしまうので、正しくはsysv-rc-confなどを使ってApacheのデーモンを無効化しましょう。
以上で、nginxが動いていることを確認できるはずです。お使いの環境に応じてブラウザからアクセスしてみましょう(e.g: 127.0.0.1
, localhost
)。
ブラウザに「Welcome to nginx!」と表示されれば成功です。
#ComposerのセットアップとLaravelのダウンロード
nginxのインストールが完了したら、次にcomposerをダウンロードします。
curl -sS https://getcomposer.org/installer | php
/bin以下に移動させて、コマンドとして認識させます。
sudo mv composer.phar /usr/local/bin/composer
早速、Laravelをダウンロードします(/var/www/laravel
は適当に置き換えてください)。
sudo composer create-project laravel/laravel /var/www/laravel
以上で、Laravelのダウンロードが完了しました。
#nginxの設定
Laravelのインストールが完了したので、いよいよ動かせるようにしましょう。
基本的には以下nginxの設定をいじることでLaravelが動かせるようになります。
まず、nginxはデフォルトではユーザwww-data
権限で実行されます。
そこで、/var/www/laravel以下の権限も以下の様に書き換える必要があります。
sudo chown -R :www-data /var/www/laravel
次に、nginxの設定ファイルをいじります。
sudo vim /etc/nginx/conf.d/default.conf
と入力すると、設定ファイルが開きますので以下のように書き換えます(一部不要な箇所は省略)。
server {
listen 80;
server_name localhost;
location / {
root /var/www/laravel/public;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$args;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/laravel/public/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
保存して、php5-fpmとnginxを再起動します。
最後に、app/storage以下への権限が必要なようですので、そちらを書き換えます。
sudo chmod -R 777 /var/www/laravel/app/storage/
先ほどと同じようにブラウザから、/var/www/laravel/
にアクセスしてみましょう。
このような表示が出れば作業完了です。