
GitHubのサンプルをブラウザーでも試せるよう、学習用Laravelアプリをレンタルサーバーへ配置しました。
既存のWordPressとそのDBを変更しないことが条件です。
学習用に専用SQLiteを新規作成し、本番設定とHTTPSでの動作を確認しました。
テーブルを作成したのはこのSQLiteだけで、WordPressのMariaDBには接続・変更していません。
説明は2026年11月時点のものです。
事業者名と実際のフォルダー構成は伏せ、図は役割と作業の流れ、設定例は仮値を示します。
公開URLは上のリンクに掲載しています。
配置前に、変更する範囲を固定する
配置するコード・置き場所と、既存サイトへの変更範囲を決めました。
対象は共通一覧と学習用だけで、業務用アプリは未追加です。
| 対象 | 今回行うこと |
|---|---|
| 共通の入口 | 利用できるアプリへの案内を置く |
| 学習用アプリ | 本体・公開入口・専用設定・専用SQLiteを用意する |
| WordPress | 設定を変更せず、配置後の応答を確認する |
| WordPressのMariaDB | 接続・変更・初期化をしない |
配置前の退避と資材確認は、次の順に進めました。
- 公開先の既存ファイルと関連設定を非公開領域へ退避する。
- 変更しない設定ファイルのハッシュを記録する。
- 固定コミットから配置資材を作り、転送する。
- 転送後のアーカイブとファイル一覧のハッシュを照合し、用意した資材との一致を確かめる。
専用の本番設定とSQLiteを用意する
設定・鍵・DB・ログは、アプリ専用の非公開領域で管理します。
本番設定でデバッグ表示を無効にし、接続先を専用SQLiteへ向けました。
次は設定例です。
仮のパスは、実際の非公開領域へ置き換えます。
APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=sqlite
DB_DATABASE=/private/example/demo.sqliteDB操作前に、接続方式・DBのURL設定・保存先を確認します。
既存サイトの接続情報は流用しません。
初回配置では暗号鍵を生成し、新しいSQLiteへテーブルを作成しました。
次はアプリ本体のフォルダーで実行する例です。
PHPの実行ファイル名は、Laravelの要件を満たすサーバー側のものに合わせます。
php8.3 artisan key:generate --no-interaction
php8.3 artisan migrate --force --no-interaction実行時は、次の点を区別します。
| 項目 | 扱い |
|---|---|
migrate --force |
本番環境でマイグレーションを実行する指定。DBを消して作り直す指定ではない |
| 接続先 | 間違えれば別のDBを変更するため、実行前に必ず確認する |
migrate:fresh・db:wipe |
DBを作り直す・消去する操作。通常の公開・更新には使わない |
| 暗号鍵 | 生成は初回だけ。更新では既存の設定・鍵・DBを引き継ぐ |
専用SQLiteのテーブル作成と整合性検査は成功しました。
保守状態のままWeb側の設定を確認する
配置後は保守状態で設定を確認しました。
本体の外に置く専用フラグがある間、対象アプリは503を返し、静的な共通一覧は表示を続けます。
CLIでの起動に加え、Web側でも次を確認しました。
- 使用されるPHPと本番環境の設定。
- デバッグ表示とPHPのエラー表示が無効であること。
- DBドライバーがSQLiteで、専用ファイルを参照していること。
- 公開パスと、セッション・ビュー・キャッシュ等の書込み可否。
一時診断はランダムな名前とヘッダー認証で保護し、必要項目だけを返しました。
鍵・接続資格情報・実パス・phpinfo()の内容は公開せず、確認後に診断ファイルを削除しました。
設定・ルート・ビューのキャッシュは、サーバー上の最終配置場所で作成しました。
ローカルの設定キャッシュは流用せず、環境に合わない設定の持込みを防ぎます。
HTTPSで操作と既存サイトへの影響を確かめる
設定確認後に保守を解除し、公開URLで画面表示・入力・送信・コピー・エラー応答をテストしました。
| 確認項目 | 今回の結果 |
|---|---|
| 共通一覧と学習用への移動 | 4つの画面幅で確認 |
| Hello World・名前入力 | 375・1280px幅で確認 |
| パスワード生成・コピー・入力エラー | 320・375・768・1280px幅で確認 |
| CSS・JavaScript | 対象アプリの公開範囲から200で取得 |
| セッションCookie | 固有名・対象Path・Secure・HttpOnly・SameSiteを確認 |
| 設定・ログ等への直接アクセス | 403または404で拒否、内部情報の混入なし |
| WordPress | トップ・代表記事・ログイン画面の応答と管理画面の転送を確認 |
設定ファイルへの要求には、ローカルの404に対し、実サーバーのApacheが403を返す箇所もありました。
拒否の成否はステータスと応答本文の両方で判断しました。
WordPress設定ファイルと上位の振り分け設定は、配置後もハッシュが一致しました。
管理者ログイン後の操作・スマホ実機・他ブラウザーは未確認です。
次のアプリを追加するときも、対象を分ける
追加するアプリも、本体・公開入口・設定・DB・鍵を個別に用意し、共通一覧へリンクを追加します。
更新・切戻しは対象アプリだけで行い、公開入口全体や他のアプリを巻き込みません。
初回配置・Web設定確認・公開後の検証は、今後の公開・更新・切戻し用の手順にまとめました。
本番での切戻し操作は未実施です。
更新前に、前の版へ戻せる範囲と、DB変更時のデータの扱いを確認します。