パーミッション(属性)一括変更ツール・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 にアクセスします。
ファイルリストを作成する条件を設定し、「ファイルリスト表示」をクリックすると条件に合致するファイルの一覧が表示されます。
表示されたファイルの一覧の中からパーミッション(属性)を変更したいファイルにチェックを入れ、「パーミッション」を設定し、「パーミッション変更実行」をクリックすることでパーミッション変更が実行されます。
確認画面はありませんのでご注意ください。
実行修了すると、パーミッションの変更が処理されたファイルのパーミッションは赤字表示され、「設定されたパーミッション」も表示されますので、パーミッションが変更されたことを確認してください。
なお、万一の事故防止のため、指定するファイルのチェックと、パーミッションの値は毎回入力していただくようになっています。
「パーミッション一括変更ツール(WordPress最適化済)」初期設定について
「パーミッション一括変更ツール(WordPress最適化済)」は、WordPressがインストールしてあるフォルダに入れて、そのまま使えるようになっています。
WordPress最適化済なので!
ですが、違う設定で対応したい方には初期設定で変更できるポイントが 2カ所用意していますので、解説しておきます。
1 2 3 |
//初期値 $rootdir = "."; // プログラムを動かすフォルダを指定します。 $hidefile = array ( "./chmod_wp.php" ); // リストに表示しないファイルを指定します。 |
初期値の 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関数・モードを変数で指定する方法」で行っていますので、興味がある方はご覧ください。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。
-
-
PHPで特定の日間の日付を for、strtotimeで表示する
ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。
-
-
AdminerはphpMyAdmin代替のデータベース管理ツール
AdminerはphpMyAdminとほぼ同機能のデータベース管理ツール。PHP 1ファイルのため設置が非常に簡単で軽快に動作し、phpMyAdminの置き換えで使うのも問題なし。
-
-
ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入
標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。
-
-
PHPで APIにアクセスする際などに使用する cURLのサンプルプログラム
PHPのcURLを使用して各種APIにアクセスするサンプルプログラムを作成し、その処理を解説。カオナビAPIのみならず、他の多くのAPIにアクセスする際にも使用できる。
-
-
複数銘柄を指定して株価チャートを一覧するツール公開
入力銘柄の5日間、3か月間、6か月間、1年間、2年間の株価チャートを一覧表示しますのでチャートで売買判断をするのに最適です。
-
-
JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()
JSONとは「JavaScript Object Notation」の略でテキストベースのデータフォーマット。JSONの値をPHPで配列に変換するWebツールの紹介とその処理「json_encode()」「json_decode()」関数の解説。
-
-
PHPで正規表現の検証には preg_match_allが便利
PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。
-
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
-
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。
Comment
めちゃくちゃありがたいです。
WPをインストールしたサーバーのフォルダほぼ全てのパーミッションが700になってて、正常に表示されない状態でした。
サーバーのコマンド?操作とかまったくわからないので、FTP内で手動でちまちま変えていました。
かなり気が遠くなるな…と思っていた所、検索して記事みつけました。
本当にありがとうございます。
他にも何の記事か忘れてしまって恐縮なんですが、とても詳しく書かれていてすごく役に立った記憶があります。
ありがとうございました。
まみねこさん、コメントありがとうございます。
お役に立てたと言うことで、すごく嬉しいですね。
もともと私も WordPressのパーミッションを変えるのが大変だったので、作ったものなんです。
WordPressをインストールした後にパーミッションが違う、って気がつくと途方に暮れますよね。
ただ、このツールは使い終わったらサーバから消してくださいね。
残したままにしておくと、ハッキングされるリスクなどになりますので。
初心者のため、コマンド等のやり方が分からず、パーミッション設定を1つ1つ変えていたんですが、めんどくさくなってしまい、一括変更出来ないかと色々探したところ、こちらの記事を見つけダウンロードさせて頂きました。
数字を変更する段階で、早速数字を0に変更しようと思ったのですが、変更出来る数字が1~7となっていました。こちらのツールで0を指定することは可能でしょうか?
あんずさん、コメントありがとうございます。
連絡の件ですが、現在配布しているプログラムは、「0」は選択できないようになってしまっていますが、chmod()関数は「0」を設定することもできます。
そのため、お手数をおかけしますが、225行目の for文の「$ii = 1;」を「$ii = 0;」に変えていただければ、「0」も選択できるようになります。
近いうちに配布しているプログラムも修正をしておこうと思います。
chmod()関数について教えて頂きありがとうございました。
時間がかかってしまいましたが、無事関数を「$ii = 1;」から「$ii = 0;」に変えることが出来、お陰でパーミッションの数字設定欄に0が表示されるようになりました。すぐにファイルを指定し、「パーミッション変更実行」をしたのですが、「パーミッションの値が正しく設定されていません。」とエラーメッセージが表示され変更できませんでした。
他に変更する箇所があれば教えて頂ければと思います。
あんずさん、コメントありがとうございます。
ご連絡いただいた件、chmodの入力で、数値が選択されていないと入力エラーにするという処理をしていました。
「0」の場合もエラーとなっていました。
その辺りの処理を変更したものを作成し、下記のダウンロードサイトにアップし直しましたので、改めてダウンロードしてみてもらえませんでしょうか?
https://s-giken.info/chmod/index.php
よろしくお願いします。
エス技研さん。ありがとうございます。
先ほど、ダウンロードさせて頂き、パーミッションの設定を実行してみたところ、無事、0も設定することが出来、全てのパーミッションを設定することが出来ました!
丁寧に教えて頂き、また、プログラムの修正もして頂き、とても助かりました。エス技研さんのお陰です。本当にありがとうございました。
あんずさん、コメントありがとうございます。
多くの方に使っていただこうと公開しているプログラムですので、ちょっとした対応でより使い勝手がよくなるような対応は今後も実施していこうと思っています。
また何かお役に立てることがあればいいな、と思っています!