こんな人におすすめ
PHPアプリをVPSで動かす:権限とキャッシュの落とし穴
2026年10月8日

レン
共用サーバーでは動いてたPHPのアプリを、VPSに移したら動かない…

プロクラ
この移行でつまずく場所は、だいたい決まっているよ。共用サーバーでは事業者が整えてくれていた部分が、VPSでは自分の担当になるからね。
1. 実行ユーザーと権限
権限まわりでつまずく原因は、たいてい書き込みが必要な場所と、実際に動いている利用者が食い違っていることです。手元では自分の権限で動くので気づきませんが、本番ではWebサーバーの利用者が動かします。全部に書き込みを許して解決するのは危険で、必要な場所だけを渡すのが正しい直し方です。

プロクラ
いちばん多い原因がこれ。Webサーバーは、あなたとは別のユーザーとして動いている。だから、あなたが置いたファイルを読めないことがある。
- ファイルの所有者を、Webサーバーの実行ユーザーに合わせる
- 書き込みが必要な場所(キャッシュ、ログ、アップロード先)を確認する
- そこだけ書き込み可能にし、他は読み取りだけにする
- 困っても777にしない。所有者を直すのが本筋

プロクラ
4つめは強調しておきたい。検索すると「777にすれば動く」という情報が出てくるけれど、それは誰でも書き込める状態を作ることだよ。侵入されたときに、そこへプログラムを置かれる。
2. 設定のキャッシュ

プロクラ
多くのフレームワークは、設定を高速化のためにキャッシュする。だから、設定ファイルを直したのに反映されない、という症状が起きる。
- 設定を変えたら、キャッシュを作り直す
- キャッシュが古いまま、以前の接続先を見ていることがある
- 移行直後は、特にこれを疑う
- キャッシュの置き場所にも、書き込み権限が必要
3. 公開する範囲

ウィルスン
…設定ファイルが、そのままブラウザから読めるサーバーがある。認証情報が書かれたファイルをな。ワタシとしては、探す価値のある場所だ。
- Webサーバーが公開する場所を、公開用のディレクトリだけに限定する
- アプリの本体や設定ファイルを、その外に置く
- 共用サーバーでは既にそう設定されていることが多い
- VPSでは自分で設定する必要がある

プロクラ
ここは移行時に必ず確認しよう。設定ファイルのURLを直接開いてみて、中身が見えないことを確かめる。数秒で済む確認だけど、重要度は高いよ。
4. PHPのバージョンと拡張
- 共用サーバーで使っていたバージョンと揃える
- 必要な拡張モジュールが入っているか確認する
- メモリ上限やアップロードサイズの設定も、既定値に戻っている
- 共用サーバー側の設定を控えてから移すと楽

レン
権限、キャッシュ、公開範囲、バージョン。この4つを見ればいいんだね。
移す前に控えておくもの
- PHPのバージョンと、有効な拡張モジュールの一覧
- メモリ上限やアップロードサイズなどの設定値
- データベースの接続情報
- 定期実行の設定(共用サーバー側で登録していたもの)

プロクラ
4つめは忘れやすいよ。共用サーバーの管理画面で登録していた定期実行は、VPSでは自分で設定し直すことになる。移行前に一覧を控えておこう。
この記事の条件で、実際の料金を見る
あわせて読みたい
- こんな人におすすめWordPressブログをさくらのVPSで動かすならWordPressを動かす場合のプランの目安と、運用で気をつけたいこと。「動く」と「安定して動く」の差がどこに出るのかを解説します。
- こんな人におすすめ学習用・検証環境としてのVPS活用法:さくらのVPSで手を動かして覚える自分のパソコンの中で練習するのと何が違うのか、何から順に触るのか、壊したときの戻し方と、学習が一区切りついたあとの後始末までを解説します。
- こんな人におすすめMinecraftのサーバー:版によって変わる必要スペックサーバーソフトの違いがメモリ要求にどう効くのか、参加人数とワールドの広さの関係、そして接続で使うポートの考え方を整理します。
- こんな人におすすめ追加要素を入れるとメモリ要求が跳ねる理由MODや拡張を入れると必要な容量が大きく変わります。なぜそうなるのか、入れる前に確認すること、そして途中で足りなくなったときの対処を解説します。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- シェルスクリプト入門
サーバー作業の自動化スクリプトを基礎から — prodou.net