laravel アプリを今までさくらVPSで利用していましたが、これからは XServer(共有サーバー) で利用したいと思います。そのためのサーバー移行手順をまとめました。
流れ
1. Node.js をインストールする
2. MySQLデータベースを作成・移行する
3. .envの設定を変更する
4. laravelデータをアップロードする
5. 必要なパッケージとモジュールをインストールする
6. シンボリックリンクを張る
Node.js をインストールする
この Node.js のインストールが一番てこずるところです。以前はroot権限がないとインストールできなかったと思います。なのであきらめてVPSサーバーをレンタルした記憶があります。どうやら今はインストールできるようです。トラブルも含め以下の記事にインストール方法をまとめました。
MySQLデータベースを作成・移行する
データベース作成の流れは以下の通りです。
1. データベースを作成する
2. MySQLユーザーを作成する
3. データベースとMySQLユーザーを紐づける
4. 移行元よりSQLデータをエクスポートする
5. 移行先にSQLデータをインポートする
XServer サーバーパネルより データベース > MySQL設定 を開きます。
データベースを作成します。XServerの名称ルール は サーバーID_データベース名 となります。MySQLユーザーを作成します。XServerの名称ルール は サーバーID_ユーザー名 となります。
画像は サーバーID_test というデータベースに サーバーID_user というMySQLユーザーを紐づけした状態を表しています。

移行元よりMySQLデータをエクスポートします。今回さくらVPSでは phpMyAdmin を使用していましたので、そこからテーブルのエクスポートを行いました。
XServer にも phpMyAdmin がインストールされています。XServer サーバーパネルから データベース > phpmyadmin(MariaDB10.5) を選択してください。phpMyAdminのログインユーザーIDは先ほどデータベースに紐づけた サーバーID_ユーザー名 です。
ログインしましたらデータベース(サーバーID_データベース名)を選択後、テーブルデータを「インポート」してください。
.envの設定を変更する
.envの設定を移行先サーバーに合わせます。データベースの変更箇所は以下の通りです。
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=サーバーID_データベース名
DB_USERNAME=MySQLユーザーID(サーバーID_ユーザー名)
DB_PASSWORD=MySQLユーザーのパスワード
laravel データをアップロードする
laravelデータを以下の場所にアップロードします。別に決まりがあるわけではありませんがここにしました。laravelアプリ ディレクトリがアップロードしたlaravelデータです。
/home/サーバーID/ドメイン名/laravelアプリ
laravelアプリ ディレクトリには先ほど編集した.envファイルがあるはずです。また、以下のファイルやフォルダはアップロードしないでください。
json.lock
vendor
node_module
必要なパッケージとモジュールをインストールする
以下のコマンドを実行してパッケージやモジュールをインストールします。
$ composer install
$ npm install
もし composer install 時に以下のようなエラーがでましたら、原因はメモリエラーです。下の記事を参考にご対応ください。
$ composer install
Loading composer repositories with package information
PHP Fatal error: Allowed memory size of 2097152000 bytes exhausted (tried to allocate 79 bytes) in /usr/share/php/Composer/DependencyResolver/Rule2Literals.php on line 53
Fatal error: Allowed memory size of 2097152000 bytes exhausted (tried to allocate 79 bytes) in /usr/share/php/Composer/DependencyResolver/Rule2Literals.php on line 53
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
さらに以下のようなエラーが表示されましたら、原因はphpのバージョンが古いためです。下の記事を参考にご対応ください。
$ composer install
Problem 1
- This package requires php ^8.0 but your PHP version (5.4.16) does not satisfy that requirement.
composer install が成功しますと vendor ディレクトリが生成されます。また npm install が成功しますと node_module ディレクトリが生成されます。
シンボリックリンクをはる
シンボリックリンクを張って public ディレクトリへのアクセスをできるようにします。
$ ln -s /home/サーバーID/ドメイン名/laravelアプリ/public /home/サーバーID/ドメイン名/public_html/sukinanamae
画像などのコンテンツを表示させるためのシンボリックリンクをはります。laravel コマンドを実行します。
$ php artisan storage:link
laravel アプリの動作確認をします。以下のURLでアクセスしてください。
https://ドメイン名/sukinanamae
無事表示できれば成功です!
まとめ
Node.js を共有サーバーにもインストールできるようなったとは…。便利になりましたね!
コメント