Laravelで作ったWebサイトを公開してみたので備忘録として手順をまとめてみました。
これからMixhostでLaravelを導入してみたい人に参考になれば幸いです。
全体の手順をまとめると・・・
「PHPをアップグレード」→「ドメイン設定」→「SSH接続でLaravelプロジェクトを配置」→「データベースをインポート」→「.envファイルを編集」→「ドキュメントルートを設定」
こんな感じになるかと思います。
PHPをアップグレードする
WebサーバーのPHPを最新のLaravelのバージョンに合わせてバージョンアップします。
今回はLaravel11に合わせてPHPのバージョンを8.2にしました。
詳しい方法はMixhostが公式で紹介してくれていますで参考にしてみてください。
Composerを使うならPHP(CLI)のアップグレードが必要
もしComposerで依存関係をインストールしたり、マイグレートする場合はサーバーのPHPのバージョンがLaravelが求めるバージョンと合わなくてエラーが出てしまいます。
これはMixhostで使用できるPHP(CLI)のデフォルトのバージョンが7.4のため最新のLaravelが要求するPHPのバージョンと合わないためです。(2025年1月現在)
・PHP-CLI
Webサーバーを介さずに、ターミナルやコマンドプロンプトで実行するPHPでComposerを使う時に必要です。
PHP(CLI)のバージョン変更に関しては当方が記事でまとめていますので参考になればと思います。
PHP(CLI)のバージョンの変更するのが面倒でもサーバーにインストールされているPHPのバージョンを指定すればComposerを実行する事ができます。
ea-php82 /opt/cpanel/composer/bin/composer install
PHPの場所を指定して依存関係をインストール。
/opt/cpanel/ea-php82/root/usr/bin/php artisan migrate
PHPの場所をフルパスで指定してマイグレーション。
実際にLaravelをデプロイしてみる
PHPのバージョンアップが無事終わったところで実際にデプロイしてみます。
ドメイン設定
まず取得したドメインをネームサーバーやMixhostで設定、URLの正規化を行います。
詳しい手順についてはこちらの記事にまとめましたので参考にしてみてください。
SFTPサーバーに接続してLaravelプロジェクトを配置
FTPソフトからMixhostのファイルシステムにアクセスします。
今回はCyberduckを使ってSSHで接続してみます。
SSHによる接続方法はこの記事にまとめていますので宜しかったら参考にしてください。
FTPソフトでサーバーに接続後、ドメイン直下にローカルで開発していたLaravelプロジェクトをドラッグ&ドロップでまるごとコピーします。
これで.envファイルやマイグレーション履歴のファイルも全てコピー出来るようになります。
ローカルで開発していたファイルを全てコピーするので転送サイズは少々大きくなりますが、余計な作業が不要で効率的なのでこの方法にしました。
データベースをインポート
次にローカルの開発で使用していたphpMyAdminからデータベースのエクスポートを行います。
まずローカルのphpMyAdminのトップページにアクセス。(cPanelのphpMyAdminではありません)
対象のDBをクリックして「エクスポート」ボタンをクリックします。
特に設定の必要なくそのまま「エクスポート」ボタンをクリックして.sqlファイルをダウンロード。
次にデータベースを作成します。
cPanelの「MySQLデータベースウィザード」にアクセスします。
データベース名を入力して「次のステップ」をクリック。
ステップ2。
「ユーザーネーム」「パスワード」を入力して「ユーザー作成」ボタンをクリック。
ステップ3。
全ての権限にチェックを入れて「次のステップ」ボタンをクリックして完了です。
データベースが作成されたか確認します。
次にエクスポートしたSQLファイルをインポートするのでcPanelの「phpMyAdmin」にアクセス。
インポートするSQLファイルを選択して「インポート」ボタンをクリック。
データベースにローカル開発時のデータが反映されたか確認します。
.envファイルを編集
cPanelの「ファイルマネージャー」にアクセス。
.envファイルの設定を編集します。
APP_KEY、APP_NAMEなどはそのままにして、APP_URLを取得したドメインに合わせて変更。
DB関連も先ほど設定したデータベース名、ユーザー名、パスワードに変更します。
ドキュメントルートを設定
cPanelの「ドメイン」にアクセス。
対象ドメインの「管理ボタン」をクリックして画像のようにドキュメントルートを設定できるページに移動します。
新しいドキュメントルートの入力欄を「laravel-site.com/my-laravel/public」にして「更新」ボタンをクリックして完了。
実際にブラウザで「https://laravel-site.com」にアクセスしてWebページが動作することを確認できました。
VPSを使うというのも一つの選択ではありますが、新たにサーバーをレンタルするのはコストがかかりますし、現在WordPressを運用しているMixhostでLaravelを導入したかったので良かったと思います。