2021/02/23
「はじめての VPS シリーズ」の第12回目です。
前回は CentOS7 に phpMyAdmin をインストールしました。
今回は Composer をインストールして、いよいよ Laravel をインストールしてみます。
今回のゴール
Laravel6 をインストールして、ブラウザで Laravel のスタート画面を表示させます。
.env
ファイルの設定やDBの接続は次回やります。
備考
ここでは以下のように作成します。
・プロジェクト名 ⇒ laraveltokyo
適宜、ご自身の名前に変更して作成してください。
事前知識
Apache の設定ファイルの中心は /etc/httpd/conf/httpd.conf です。
Apacheはほとんどの動作についてこの httpd.conf の内容を参照します。
また Apache の補助プログラムの多くは、モジュールとして最初から Apacheに組み込まれる形になっています。
そのモジュールの設定ファイルのいくつかは /etc/httpd/conf.d/ 以下にまとめて収められています。
このディレクトリに httpd.conf の書式に基づいて部分的に記述を行ったテキストファイルを、 *.conf
というファイル名で保存すると、その内容は httpd.conf とみなされて動作します。
httpd.conf の記述が煩雑になってきたときは、設定のひとまとまりを独立させると、整理がしやすくなります。
ここでは80ポートのバーチャルホストの設定を /etc/httpd/conf.d/laravel.tokyo.conf
として保存。
443ポート(SSL)のバーチャルホストの設定を /etc/httpd/conf.d/laravel-le-ssl.conf
として保存します。
(※laravel.tokyo.conf の箇所は適宜ご自身のファイル名にあわせてください)
新しいLinuxの教科書
ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!
手順
1. Composerをインストール
[root@example ~]# curl -sS https://getcomposer.org/installer | php
グローバルに使うため、「comoser.phar」 を /usr/local/bin/
の直下に移動させます。
これでどこでも composreコマンド が使えるようになります。
# CentOS上でホームディレクトリに移動します
[root@example ~]# cd ~/
#root権限で実行
[root@example ~]# mv composer.phar /usr/local/bin/composer
インストールの確認をします。
# Composerコマンドは一般ユーザーで実行することを推奨されています
$ composer --version
下記のように表示されれば成功です。
2. Laravelをインストール
それでは、いよいよ Laravel6 のインストールを開始します。
# wwwに移動
$ cd /var/www
# Laravel を設置するディレクトリを作成
#わかりやすくドメイン名に
mkdir laravel.tokyo
cd laravel.tokyo
#------------------------------------------------------------------------------------------------------
#Laravelのインストール
#------------------------------------------------------------------------------------------------------
# 構文
$ composer create-project --prefer-dist laravel/laravel プロジェクト名 "バージョン"
# 実例
$ composer create-project --prefer-dist laravel/laravel laraveltokyo "6.18.*"
git clone でソースを落としてくる。
オプション指定なしの場合はこっち
【 -prefer-dist 】
zip でダウンロードする。こっちのほうが高速。
3. Apacheの設定
ドキュメントルートの設定と常時SSL化の設定をします。
ドキュメントルートの設定はApacheのモジュールに記述します。
常時SSL化は Laravelプロジェクトにある .htaccess に記述します。
バーチャルホストの設定(本体)
以前SSLの設定でApache設定ファイル(/etc/httpd/conf/httpd.conf)に記述したドキュメントルート(/var/www/html)の設定をコメントアウト。
[root@example ~]#vim /etc/httpd/conf/httpd.conf
:
#NameVirtualHost *:80
#<VirtualHost *:80>
#ServerAdmin root@laravel.tokyo
#DocumentRoot /var/www/html
#ServerName laravel.tokyo
#</VirtualHost>
:
実例
バーチャルホストの設定(80ポート)
ドキュメントルートを /var/www/laravel.tokyo/laraveltokyo/public/ に設定します。
[root@example ~]#vim /etc/httpd/conf.d/laravel.tokyo.conf
<VirtualHost *:80>
DocumentRoot /var/www/laravel.tokyo/laraveltokyo/public
ServerName laravel.tokyo
<Directory "/var/www/laravel.tokyo/laraveltokyo">
Allowoverride All
Require all granted
</Directory>
</VirtualHost>
実例
バーチャルホストの設定(443ポート)
次は443ポート(SSL)用にもドキュメントルートを設定します。
[root@example ~]#vim /etc/httpd/conf.d/laravel.tokyo-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/laravel.tokyo/laraveltokyo/public
ServerName laravel.tokyo
<Directory "/var/www/laravel.tokyo/laraveltokyo">
Allowoverride All
Require all granted
</Directory>
#SSL/TLSサーバー証明書
SSLCertificateFile /etc/letsencrypt/live/laravel.tokyo/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/laravel.tokyo/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/laravel.tokyo/chain.pem
</VirtualHost>
</IfModule>
実例
Apacheの設定ファイルは以上で終わりなので、ここで再起動をして設定内容を反映させます。
[root@example ~]# systemctl restart httpd
※ なお、Apacheのドキュメントルートを変更した場合、SSL証明書(Let's Encrypt)の設定内容も修正する必要があります。
詳しくは以下のページをご参照ください。
はじめてのVPS 追記 ~ SSL(Let's Encrypt)の更新エラー ~
ドメインの統一
Apache の mode_rewrite 機能を使って
・wwwありなしの統一
・常時SSL化
をします。
mode_rewrite の書き方については以下のページをご参考ください。
#ドキュメントルートに移動
[root@example ~]# cd /var/www/laravel.tokyo/laraveltokyo/public
#.htaccessを編集
[root@example ~]# vim .htaccess
以下のように既存の .htaccess に追記します。
:
# wwwありの場合、wwwなしにリダイレクト
RewriteCond %{HTTP_HOST} ^(www\.laravel\.tokyo) [NC]
RewriteRule ^(.*) https://laravel.tokyo/$1 [R=301,L]
#SSLなしの場合、SSLありにリダイレクト
RewriteCond %{HTTP} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
:
実例
4. 権限を変更
Laravelプロジェクトのルートまで移動し storage の権限を変更します。
# Laravelプロジェクトルートに移動
$ cd /var/www/laravel.tokyo/laraveltokyo
# 権限変更
# 一般ユーザでは変更できないのでrootで
$ sudo chmod 775 -R storage/
# 775でも権限エラーが出る場合
$ sudo chmod 777 -R storage/
5. keyを生成
$ php artisan key:generate
6. 動作確認
ブラウザを開いて設定したドメインを入力してみます。
http://www.laravel.tokyo などでアクセスした場合は https://laravel.tokyo にリダイレクトされます。
(※SEO的にも有利と言われています)
上記のように表示されればOKです。
以上です。
さくらのVPS
Linuxの知識がある方や初心者の枠から脱した人は「VPS」をおススメします!もし、あなたがデザイナーで静的ページのサイトしか作らないのであれば「レンタルサーバー」でOKです。ただ、Webプログラマーとして仕事をするのであればroot権限のあるVPSサーバーを最低1台、自分専用(学習用)を持っておいたほうがいいでしょう。
Laravelプログラマーの初心者が選ぶ学習用サーバーとは?
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。