エックスサーバー(Xserver)に、Laravelのアプリを「SSH接続なし」でデプロイする方法の解説記事です。
この記事を書いている私(わや@wayasblog)は、2020年からLaravelを勉強し始めました。
しかし、いざデプロイしてみようと調べてみると、「SSH接続で…」というものばかりでした。
恥ずかしながら、まだSSHについてきちんと理解できていません。
これからSSHも勉強するとして、ひとまずSSH接続なしでデプロイすることができたので、備忘録として残しておきます。
同じような状況の方の参考になれば嬉しいです。
スポンサーリンク
【SSH接続なし】エックスサーバーにLaravelのアプリをデプロイする方法
手順は、以下の通りです。
- サーバーにログイン
- データベースを作成
- ローカルのSQLをインポート
- FTP接続でアップロード
- .envファイルの修正
- ドキュメントルート変更
- デプロイ完了
順番に見ていきましょう。
サーバーにログイン
まずは「エックスサーバー」にログインしましょう。
ログインしたら、「サーバー管理」へ。
データベースを作成
エックスサーバー上でデータベースを作成する手順は、以下の通りです。
- MySQLユーザーの作成
- MySQLデータベースの作成
- データベースにユーザーを紐付け
①MySQLユーザーの作成
「MySQL設定」を選択します。
そして「MySQLユーザー追加」を選択し、任意のIDとパスワードを入力。
②MySQLデータベースの作成
「MySQL追加」を選択し、任意のMySQLデータベース名を入力。
③データベースにユーザーを紐付け
「MySQL一覧」タブを選択すると、②で作成したデータベースが一覧で表示されています。
先ほどのデータベースには、まだユーザーが割り当てられていません。
「アクセス権未所有ユーザ」から①で作成したユーザーを選択し、「追加」ボタンを押します。
これでデータベースの作成と設定は完了です。
ローカルのSQLをインポート
「phpmyadmin」を選択します。
ログインすると、左側に先ほど作成したデータベースがあります。
そこに、ローカルのSQLをインポートします。
FTP接続でアップロード
続いて、FTPソフトでファイルをアップロードしましょう。
ちなみに、隠しファイルもすべてアップするようにしてください。
私が使用している「Cyberduck」の隠しファイルの表示方法は以下の通りです。
まず、Macの上部メニューの「Cyberduck」→「環境設定」を開きます。
そして画像のように「ブラウザ」の中の「’.’で始まるファイルを表示」にチェックを入れればOKです。
.envファイルの修正
次に、.envファイルを本番用に修正します。
修正箇所は、
- データベースの情報
- メールの設定
などです。
ご自身の設定状況に合わせて修正してください。
ちなみにデータベースは、以下の部分です。
DB_CONNECTION=mysql
DB_HOST=[エックスサーバー]
DB_PORT=3306
DB_DATABASE=[作成したデータベース名]
DB_USERNAME=[設定したID]
DB_PASSWORD=[設定したパスワード]
「DB_HOST」に関しては、phpMyAdminの以下の部分を見ればわかります。
ドキュメントルート変更
前のところまでで一応デプロイは完了しています。
しかし、Laravelはドキュメントルートがhtpps://ドメイン名/public
となってしまっています。
そのため、不要なpublic
を消しましょう。
今回やったのは、publicディレクトリの中をすべてルート直下に置く方法です。
元々はこのような構造になっています。
それを、すべてルート直下に置きます。
そして、index.php
でパスを合わせてあげるために、require
の部分のパスを以下のように変更します。
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/
// require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/./vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/
// $app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/./bootstrap/app.php';
これでhtpps://ドメイン名
で閲覧できるようになりました!
デプロイ完了
これでデプロイが完了です!
お疲れさまでした\(^o^)/
【まとめ】エックスサーバーにLaravelのアプリをデプロイする方法
手順をまとめておきます。
- サーバーにログイン
- データベースを作成
- ローカルのSQLをインポート
- FTP接続でアップロード
- .envファイルの修正
- ドキュメントルート変更
- デプロイ完了
FTPでアップする時に多少時間がかかりますが、SSHが使えない人でもLaravelのアプリをデプロイする方法でした。
以上です。最後までお読みいただき、ありがとうございました。
最後に宣伝
ココナラで、コーディングの相談を受け付けています。
- CSSが上手く作れない
- JavaScriptが思ったように動かない
- ブログのデザインを修正したい
- 勉強中でわからないところがあるから教えてほしい
このようなお悩みを解決していますので、「こんなの解決できる?」ということがあったら、ぜひ質問だけでも以下のリンクよりどうぞ。
コメント