VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

VPSでテーマやプラグインインストール時にFTPの接続情報が表示?

テーマやプラグインをインストールしようとすると下記情報が表示され、インストールが自動で実行できませんでした。

“接続情報
要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。 次に進むには FTP の接続情報を入力してください。”
 
原因は、WordPressのアップロード用のディレクトリに書き込み権限が無いためでした。
 
私の環境では、Webサーバー(Apache)を実行しているユーザーは”apache”ユーザーであるのに対し、WordPressのディレクトリの所有ユーザーは一般ユーザーとしていたため、”apache”ユーザーが他のユーザーが所有しているディレクトリに対して、ダウンロードしたテンプレートやプラグインのファイルを書き込もうとしても権限が無く実施できない状態になっていました。
 
(2013年10月3日)ファイル権限については、現在は別の設定にしました。
下記を参照願います。
WordPressディレクトリのパーミッションをセキュアに
 
(2013年10月4日)接続情報の回避については下記方法で回避するよう変更しました。
WordPressでFTP接続情報が表示、SSH転送で回避
私の環境には、ftpがインストールされていなく、このためだけにわざわざftpを導入するのも手間がかかると思いましたので、WordPressディレクトリの所有者を作業用の一般ユーザーから”apache”ユーザーに変更しました。
 
上記変更を行うと一般ユーザーでWordPress用のディレクトリのファイル操作が出来なくなりますが、そのような操作が必要になった事はほとんど無かったため、問題は無いと判断しました。

VPS上のWordPressディレクトリの所有ユーザ設定変更


 
VPSにSSHでログインし、rootユーザーにスイッチ。
(実施例)WordPress用ディレクトリはtest-wp
# ls -al /var/www/html | grep test-wp
drwxrwsr-x 5 test-wp apache 4096 Feb 16 12:59 test-wp

# chown -R apache /var/www/html/test-wp

# ls -al /var/www/html | grep test-wp
drwxrwsr-x 5 apache apache 4096 Feb 16 12:59 test-wp

WordPress用のディレクトリ”/var/www/html/test-wp”とその配下のディレクトリ、ファイル(”-R”オプションで指定)の所有者を一般ユーザーの”test-wp”から”apache”に変更しました。
 
これで、テーマやプラグインを管理画面から自動でインストールする事ができるようになりました。

モバイルバージョンを終了