エス技研

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.

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

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

  関連記事

Smartyのテンプレート内の処理で計算、加工をする方法

Smartyのテンプレート上で変数を計算する、加工する方法を解説します。

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

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

路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索
路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索

路線・駅検索の仕組みの構築は大変。登録する側も最寄り駅が多い場合は大変。なので簡易に実装するため緯度経度に基づき直線距離を計算する処理を考案して実装して、その処理を解説。

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)

PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説
連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。

PHPで特定の日間の日付を for、strtotimeで表示する

ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。

乱数発生器(パスワード生成サービス)がバージョンアップで高速化!
乱数発生器(パスワード生成サービス)がバージョンアップで高速化!

乱数やパスワードを生成する乱数発生器を高速化!重複しない10桁、20桁の文字列を10万件、20万件と生成することも可能!イベントのキャンペーンのシリアルコードなどにも利用可能!

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説
路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。

AdminerはphpMyAdmin代替のデータベース管理ツール

AdminerはphpMyAdminとほぼ同機能のデータベース管理ツール。PHP 1ファイルのため設置が非常に簡単で軽快に動作し、phpMyAdminの置き換えで使うのも問題なし。