エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


パーミッション(属性)一括変更ツール・WordPress最適化済

      2017/03/12

ファイル、フォルダのパーミッション一括変換ツール

 

「パーミッション一括変更ツール(WordPress最適化済)」リリース!

 
WordPressのファイル、フォルダのパーミッション(属性)をまとめて変更するツール(PHPのプログラム)を作りました。
 
 パーミッション一括変更ツール(WordPress最適化済)ダウンロードページ
 
 
パーミッション一括変更ツール(WordPress最適化済)の機能
・WordPressのフォルダ内のファイル、フォルダのパーミッションの一覧を表示します。
・表示されたファイルを選択し、パーミッションを変更します。
 
 
パーミッション一括変更ツール(WordPress最適化済)の目的
WordPressのファイル、フォルダのパーミッションを変更し、セキュリティの向上を目的としています。
 
 
ちなみに、「WordPress最適化済」と書いてはいますが、WordPressでなくても何のサイトでも全く問題なく使えます。WordPressに限定するような処理は一切いれていません。というか、何をすれば WordPress限定にできるのか分かりません(笑)!
 
ただ、「WordPress最適化済」と対象を明確にしておく方が WordPressを使う方にとっては優しいかな、と。
「あ、これ、WordPressのパーミッションの変更用のツールなんだ!」と思ってもらえる方が WordPressユーザには使ってもらいやすいかな、と思ったというお話です。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」の使い方

 
ファイルをダウンロードして、zipファイルを解凍して「chmod_wp.php」を取り出します。
取り出したファイルを WordPressがインストールされているフォルダに FTPでアップロードします。
 
http://{WordPressのURL}/chmod_wp.php にアクセスします。
 
20140924_wp_01
 
ファイルリストを作成する条件を設定し、「ファイルリスト表示」をクリックすると条件に合致するファイルの一覧が表示されます。
 
 
20140924_wp_02
 
表示されたファイルの一覧の中からパーミッション(属性)を変更したいファイルにチェックを入れ、「パーミッション」を設定し、「パーミッション変更実行」をクリックすることでパーミッション変更が実行されます。
確認画面はありませんのでご注意ください。
 
 
20140924_wp_03
 
実行修了すると、パーミッションの変更が処理されたファイルのパーミッションは赤字表示され、「設定されたパーミッション」も表示されますので、パーミッションが変更されたことを確認してください。
 
 
なお、万一の事故防止のため、指定するファイルのチェックと、パーミッションの値は毎回入力していただくようになっています。
 
 


 

「パーミッション一括変更ツール(WordPress最適化済)」初期設定について

 
「パーミッション一括変更ツール(WordPress最適化済)」は、WordPressがインストールしてあるフォルダに入れて、そのまま使えるようになっています。
WordPress最適化済なので!
 
ですが、違う設定で対応したい方には初期設定で変更できるポイントが 2カ所用意していますので、解説しておきます。
 
 

 
初期値の 1行目。
デフォルトのフォルダを「”.”」と設定していますので、WordPressがインストールしてあるルートフォルダにこのプログラム本体を置いて使うことを想定しています。
PHPの設定方法が分かる方はパスを適当に変更して使ってください。
 
初期値の 2行目。
このプログラムファイル本体である「chmod_wp.php」はプログラムの一覧には表示されない仕様にしています。
もし、プログラムのファイル名を「chmod_wp.php」から変更して使う場合はここを見直してください。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」を使う上での注意事項

 
自己責任において使ってください
デバッグは行っていますが、不具合等により問題が発生したとしても当方は一切責任を負えませんので、自己責任において使用してください。
 
 
サーバによって使えないサーバもあります
このサイトのサーバであるロリポップサーバでは動作を確認しましたが、その他のサーバでも動作する保証はありません。
サーバによっては、FTPユーザと Apacheのユーザが違うなど PHPのプログラムからパーミッションの変更が行えない場合があります。その場合はあきらめるしかありません。(このサーバでは動きました、このサーバでは動きませんでした、の情報をいただけると嬉しいですっ!!)
 
ただ、その場合でもファイルのパーミッション一覧ツールとしては使えますので、FTPツールによるパーミッションの変更をしたのち、全てのファイルのパーミッションが正しく変更されているかの確認には利用できます。
 
 
PHP 5.3以上でしか動きません
プログラムに無名関数の処理を使っていますので、PHPのバージョン 5.3以上でないと動かないと思います。
環境がないために 5.2以下でどのようになるかは確認していませんが。
 
 
利用に際しては一度実験をしてください
実験セットファイル一式もおいておきますので、いきなり WordPressで動作確認をするのではなく、まず最初に実験セットで試してみることをおススメします。
 
 
設定変更が終わったらサーバから削除してください
chmod_wp.phpのプログラムは、パーミッションを変更するツールですので、使い終わったらサーバから削除しておきましょう。
そのままサーバに残しておいて、万一外部のユーザが勝手に使ってしまったは大変なことになってしまいますので。
 
 
万一の事態に備えてバックアップをしてください
プログラムを実行した際に、万一動かなくなる自体を想定し、バックアップを取っておくことをオススメします。
バックアップは BackWPupという便利なプラグインがあります。「BackWPupでWordPressのDBもファイルもバックアップ」に記事を書いていますので、参考にしてください。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」開発の経緯

 
WordPressに限りませんが、Webサイトを運営するうえでファイルのパーミッションの設定はセキュリティを高める上で基本的なことでありながら重要な項目です。
 
FC2からWordPressに引越。インストールなど必要な全てを解説(セキュリティ対応のためのパーミッションの設定を再確認)」などセットアップやセキュリティの記事でもファイルのパーミッションの設定について言及しています。
 
 
ロリポップのサイト「http://lolipop.jp/security/#p-permission」にはロリポップサーバではどのようにパーミッションを設定するといいのかが書いてありますので、セキュリティ向上のためには正しくパーミッションを設定する必要があります。
ロリポップ以外のサーバではそれぞれのサーバの指定に合わせて設定すべきですが、ロリポップの設定は参考になるでしょう。
 
ちなみに、ロリポップが詳しく説明している理由は「ロリポップで非常に大きなハッキング騒動がありました。」の騒動があったことに要因があるのでしょう。
 
 
とはいえ、インストールした直後でも WordPressのファイルは 1200弱、フォルダは 130ほどあり、階層も深いものもあるなど、チェックするだけでも大変です。
 
運営をしているサイトが一つだけならば、一回限りの作業と腹をくくって力技でも問題ありませんが、業務などで定期的に WordPressサイトを構築している方なら何とかならないものか、と思ってもいて不思議ではありません。
 
SSHが使えるサーバならばコマンドで一括変更する方法もあるわけですが、ロリポップなどのレンタルサーバでは SSHが使えないものの方が多いため、FTPで一つずつ対応していく必要が出てきてしまうため、途中で面倒になって中途半端な設定のままにしている方も多いのではないでしょうか。
 
 
というわけで、自分自身で使いたくて、必要だったからこそ作ったアプリケーションです。
 
「必要だったから作ってみたシリーズ第4弾」です。
 
引き続き、必要なツールが出てきたら作っていきますのでよろしくお願いいたします。
「こんな感じのツールはないですか?」と要望があれば作るかもしれません。私自身が使いたいと思えば...
 
 

プログラムに関する解説

 
プログラムの中に出てくる、パーミッションを変更する chmod関数、10進数を 8進数に変換する octdec関数についての解説を「PHPパーミッション変更のchmod関数・モードを変数で指定する方法」で行っていますので、興味がある方はご覧ください。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Comment

  1. まみねこ より:

    めちゃくちゃありがたいです。
    WPをインストールしたサーバーのフォルダほぼ全てのパーミッションが700になってて、正常に表示されない状態でした。
    サーバーのコマンド?操作とかまったくわからないので、FTP内で手動でちまちま変えていました。

    かなり気が遠くなるな…と思っていた所、検索して記事みつけました。
    本当にありがとうございます。

    他にも何の記事か忘れてしまって恐縮なんですが、とても詳しく書かれていてすごく役に立った記憶があります。
    ありがとうございました。

    • エス技研 より:

      まみねこさん、コメントありがとうございます。
      お役に立てたと言うことで、すごく嬉しいですね。
       
      もともと私も WordPressのパーミッションを変えるのが大変だったので、作ったものなんです。
      WordPressをインストールした後にパーミッションが違う、って気がつくと途方に暮れますよね。
       
      ただ、このツールは使い終わったらサーバから消してくださいね。
      残したままにしておくと、ハッキングされるリスクなどになりますので。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

数値文字参照コード変換ツール(HTML特殊文字コード変換ツール)

テキストを数値文字参照コード(特殊文字コード)に変換するツール。テキストを数値文字参照コードに簡単変換。数値文字参照、文字実体参照、特殊文字などの違いも解説。

リダイレクトループが原因で「ERR_TOO_MANY_REDIRECTS」「このページを表示できません」が出たときの対策12事例+α

リダイレクトループ、自動転送設定ループの原因の解説とその対応方法を含め事例 12例を挙げて説明。

include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由

include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。

ECCUBEの商品一覧ページのSEO対策!rel=”next” rel=”prev”を設定

Googleは関連あるページはその旨明示するよう求めています。ECCUBEの商品一覧ページでその求めに応じるための「rel=”next”」「rel=”prev”」について解説します。

ECCUBEでカード決済NGの受注情報をマイページ購入履歴に表示しない方法解説

ECCUBEでカード決済に失敗しても購入履歴一覧に注文情報(受注情報)が表示される問題への対処方法を解説。受注情報レコードの作成の流れとステイタスについても解説。

ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合

テンプレートをアップロードする際にファイルサイズが大きすぎてエラーが表示される際の対処方法解説。パラメータ設定で設定する制限について解説を行っています。

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。

PHP画面が真っ白 header(“Location: $url”);

PHPの開発で header(“Location: $url”);を使うと画面が真っ白になる不具合が出る場合もあります。

ECCUBEでアップロードできない。upload_max_filesizeを設定する場所

テンプレートをアップロードする際に発生するエラー「テンプレートファイルがアップロードされていません」の対処方法。これはファイル容量の制限に引っかかっています。