見出し画像

レンタルサーバー(ロリポップ)でLaravelを構築する手順

当記事はWindowsのPCローカル上でLaravel 6.x で作成したアプリをレンタルサーバーのロリポップ上で動作させる手順です。

Laravelで作成されたアプリは一般的にVPSサーバーを使って、自らコマンドを打ってサーバー構築し、その上でLaravelのインストール、アプリのデプロイという感じですると思います。これですとサーバー構築の知識が必要であり、さらにセキュリティを考慮した構築となるとはたして構築したシステムが問題ないのか??などと色々と難しいと思います。

一方、商用のレンタルサーバー上でLaravelを導入できれば、サーバー構築も不要でセキュリティもレンタルサーバー側で任せされます。私はすでに契約しているレンタルサーバーのロリポップで何とかLaravelを使えるようにならないのか?と悪戦苦闘しました。その結果、ロリポップは下記のケースで問題なく使えることが分かりました。

  • Laravel 6.x

  • PHP 8.0

Laravel 6.x は PHP 7.2 以上なので PHP 8.0 も有効です。

Laravel リリース・サポート期限 - Qiita

2022年3月現在、ロリポップのPHPバージョンは下記の通りになっています。ロリポップではPHP 7.3, 7.4, 8.0 が利用できることが分かります。

作成したWEBサービス5つありますが、すべて問題なくロリポップで動作しています。他のバージョンでも使えるかもしれませんが、当記事ではこのPHP 8.0、Laravel 6.x のレンタルサーバー環境で話を進めていきます。Laravel使えるけどサーバー構築なんて無理と思っている方、メンドクサイ方に有益な情報だと思います。

さっそく手順の説明に入りますが、具体的な手順は下記の通りです。

  • ローカル環境の構築
    1.ComposerとLaragonのインストール
    2.LaragonへphpMyAdminを導入
    3.Laravel 6.x のインストール
    4.ドキュメントルートの変更
    5.Laravelの日本仕様化
    6.データベース作成・接続設定
    7.ログイン認証の導入
    8.メール認証の導入
    9.Laravelの日本語化
    10.動作確認

  • レンタルサーバーの設定
    1.独自ドメイン取得・設定
    2.SSL化、PHPバージョン変更
    3.データベース構築
    4.エクスポート&インポート

  • ローカルからレンタルサーバーへ
    1.SourcetreeでGitHubへ
    2.GitHubでトークン生成
    3.Tera TeamでGitHubからコピー
    4.削除とアップロード
    5.キー生成と.envファイル編集
    6.SSLリダイレクト設定
    7.動作確認
    8.エラーが出てしまう場合

・・・となります。ローカル環境でLaravelのログイン認証(メール認証)まで作成し、これをレンタルサーバーへ移行し動作確認するまでの手順説明をします。先に断っておきますが、各ソフトのインストールの説明は詳しく解説しません。当記事のメインコンテンツはあくまでも「ローカル環境でLaravelを用いて開発したアプリケーションをレンタルサーバーのロリポップで動作させる方法」ですので、予めご了承ください。


では早速、説明していきます。

ローカル環境の構築

1.ComposerとLaragonのインストール

Composerのダウンロード
Laragonのダウンロード

インストール後、Laragonのターミナルを起動し下記を打ち込みます。

php -v
composer -v

それぞれ下記の通りに表示されればOKです。

補足1:ここでバージョンは気にしなくて結構ですが、まれにPHPバージョンの違いによってPHP関数が動作しない関数があるので、ローカル環境でも本来であればPHP 8.0 に合わせると良いです。

補足2:LaragonではなくXAMPPでも構いません。ただXAMPPは動作が重く起動時にエラーが発生して動作しなくなるケースが増えてきたのでLaragonをおすすめします。ここではLaragonで話をすすめます。


2.LaragonへphpMyAdminを導入

追記:最新バージョンのLaragonではphpMyAdminが標準で入っているようなので、この作業はしなくて良いかもしれません。

⇒ phpMyAdminのダウンロード

上記の通りダウンロードしたzipファイルを解凍してLaragon/etc/appsに置きます。これによりLaragonでphpMyAdminが使えます。Laragonにあるメニュー「データベース」をクリックするとphpMyAdminが起動します。

ユーザー名はroot、パスワードは不要でログインできます。


3.Laravel 6.x のインストール

下記のコマンドでLaravel 6.x をインストールし、プロジェクト名「note」を立ち上げます。

composer create-project "laravel/laravel=6.*" note

この時点でLaragonのメニュー「すべてを開始」をクリックしてPHPとMySQLを起動させ次のURLにアクセスするとLaravelのトップ画面が表示されるはずです。⇒ http://localhost/note/public/


4.ドキュメントルートの変更

Laragonメニュー右上にある設定をクリックしてドキュメントルートを変更します。

設定後、下記URLでLaravelが表示されるようになります。
⇒ http://localhost/

Laragonでターミナルを立ち上げて、プロジェクトのnote配下に移動し下記コマンドを打つと、Laravel 6.x が利用されていることが確認出来ます。

php artisan -v


5.Laravelの日本仕様化

[note/config/app.php] にて、3か所変更します。

'timezone' => 'UTC'
'timezone' => 'Asia/Tokyo'

'locale' => 'en'
'locale' => 'ja'

'faker_locale' => 'en_US'
'faker_locale' => 'ja_JP'


6.データベース作成・接続設定

Laragonメニューの「データベース」をクリックしてphpMyAdminを起動します。左メニューの「新規作成」をクリックします。

ここでデータベース名をプロジェクト名と同じ「note」で作成します。照合手順は「utf8_general_ci」です。

[note/.env]にてLaravel側のデータベース接続設定を行います。Laravelの部分を先に作成したデータベース名「note」に変更するだけです。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Laravel
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=note
DB_USERNAME=root
DB_PASSWORD=


7.ログイン認証の導入

下記コマンドを順に行います。

composer require laravel/ui "^1.0" --dev
php artisan ui bootstrap --auth
npm install && npm run dev
php artisan migrate

補足:表示がおかしい場合 [ npm install && npm run dev ] を繰り返し行うと改善される場合があります。

最後のコマンドで下記のように終えると思います。

phpMyAdminを立ち上げるとデータベース「note」に「users」テーブルがあればOKです。


8.メール認証の導入

単なるログイン認証ではなくメールを介した認証の導入です。メール認証するためにメールサーバーが必要になります。Laravelでメールサーバーの設定をします。下記はGoogleのメールサーバーを利用するケースです。

[note/.env]
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=**********@gmail.com
MAIL_PASSWORD=〇〇〇〇〇
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=**********@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

補足:Googleのメールサーバーを利用する際は、**********はご自身のGmailアドレス、〇〇〇〇〇はメールサーバーを利用する為のパスワードを取得し設定します。

[app/User.php] の9行目を
class User extends Authenticatable から
class User extends Authenticatable implements MustVerifyEmail
と「implements MustVerifyEmail」を追加します。

さらに [app/routes/web.php] にて、

Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

を、

Auth::routes(['verify' => true]);
Route::middleware(['verified'])->group(function(){
   Route::get('/home', 'HomeController@index')->name('home');
});

とすることで、
⇒ http://localhost/home
へのアクセスは、先にメール認証をしてログインしないとアクセス出来ないようになります。


9.Laravelの日本語化

下記ファイルをダウンロード、解凍します。

解凍するとjaフォルダとja.jsonファイルがあります。これを[laragon/www/note/resources/lang/]の配下に置きます。

これにより日本語化されます。

http://localhost/register
http://localhost/login

さらに一部エラーメッセージの日本語化対応の為、下記コマンドを打ちこみます。

php artisan vendor:publish --tag=laravel-notifications

[laragon/www/note/resources/views/vendor/notifications/email.blade.php]にて、下記の部分を

@lang(
    "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\n".
    'into your web browser:',

下記へ変更します。

@lang(
    "もし \":actionText\" ボタンがクリックできない場合、こちらのURLをコピーして\n".
    'ブラウザに貼り付けてください:',


10.動作確認

さて、実際にメール認証をしてログインまでの動作確認をします。ユーザー登録、受信したメールでクリック、ログインの動作確認です。
⇒ http://localhost/register

phpMyAdminで「users」テーブルでユーザー情報も確認しましょう。


・・・ということでローカル環境の構築はここまでとしておきます。以降、本題の「レンタルサーバー(ロリポップ)でLaravelを構築する手順」に入ります。レンタルサーバーのロリポップ上でメール認証できるまで、具体的に説明していきます。なお、ロリポップはシェルログインのできるスタンダードプラン以上である必要がありますのでご注意ください。


ここから先は

6,607字 / 73画像

¥ 980

この記事が気に入ったらサポートをしてみませんか?