【SSH接続なし】エックスサーバーにLaravelのアプリをデプロイする方法

CODE

エックスサーバー(Xserver)に、Laravelのアプリを「SSH接続なし」でデプロイする方法の解説記事です。

この記事を書いている私(わや@wayasblog)は、2020年からLaravelを勉強し始めました。

しかし、いざデプロイしてみようと調べてみると、「SSH接続で…」というものばかりでした。

恥ずかしながら、まだSSHについてきちんと理解できていません。

これからSSHも勉強するとして、ひとまずSSH接続なしでデプロイすることができたので、備忘録として残しておきます。

同じような状況の方の参考になれば嬉しいです。

スポンサーリンク

【SSH接続なし】エックスサーバーにLaravelのアプリをデプロイする方法

手順は、以下の通りです。

  1. サーバーにログイン
  2. データベースを作成
  3. ローカルのSQLをインポート
  4. FTP接続でアップロード
  5. .envファイルの修正
  6. ドキュメントルート変更
  7. デプロイ完了

順番に見ていきましょう。

サーバーにログイン

まずは「エックスサーバー」にログインしましょう。

ログインしたら、「サーバー管理」へ。

データベースを作成

エックスサーバー上でデータベースを作成する手順は、以下の通りです。

  1. MySQLユーザーの作成
  2. MySQLデータベースの作成
  3. データベースにユーザーを紐付け

①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のアプリをデプロイする方法

手順をまとめておきます。

  1. サーバーにログイン
  2. データベースを作成
  3. ローカルのSQLをインポート
  4. FTP接続でアップロード
  5. .envファイルの修正
  6. ドキュメントルート変更
  7. デプロイ完了

FTPでアップする時に多少時間がかかりますが、SSHが使えない人でもLaravelのアプリをデプロイする方法でした。

以上です。最後までお読みいただき、ありがとうございました。

最後に宣伝

ココナラで、コーディングの相談を受け付けています。

  • CSSが上手く作れない
  • JavaScriptが思ったように動かない
  • ブログのデザインを修正したい
  • 勉強中でわからないところがあるから教えてほしい

このようなお悩みを解決していますので、「こんなの解決できる?」ということがあったら、ぜひ質問だけでも以下のリンクよりどうぞ。

HTML / CSS / JSのお悩みを解決します コーディングでお困りの方はお気軽にお問い合わせください! | Webサイト修正・カスタム・コンサル | ココナラ
HTML / CSS / JavaScript(jQuery)のお悩み相談、ご質問を受け付けます。「CSSが上手く作れない」「JavaScriptが思ったように...

コメント

タイトルとURLをコピーしました