ウェブプランにおいて2012年5月26日よりsuEXECを完全導入しました。
CGIがsuEXECで動作するのは一部のサーバーのみでございましたが、全サーバーでCGIがsuEXECで動作するよう仕様を変更致しました。
またPHPは、従来デフォルト(.htaccessで特別な設定を行なわない場合)の動作はsuEXECが無効になるモジュールモードでしたが、CGIモード(suEXECあり)で動作するように変更致しました。
既存のファイル等についてお客様でパーミッション変更を行なって頂く必要は通常ございませんが、CGI・PHPをご設置のお客様はお手数ですが念のため動作確認をお勧め致します。
(そのままでは動作しなくなるケースにつきましては、システムにてパーミッションの変更を行なわせていただきました)
●変更点(CGI)
従来からのsuEXEC導入サーバー(shirayuki.saiin.net、karen.saiin.net、haruka.saiin.net、rinrin.saiin.net)におきましては、仕様変更はございません。
それ以外のサーバー(primary.saiin.net、yotsuba.saiin.net、marie.saiin.net、aria.saiin.net)につきましては、上記サーバーと同様にCGIがsuEXECで動作するように変更となりました。
●変更点(PHP)
従来、PHP4のデフォルトの動作はsuEXECが無効なモジュールモードとなっておりました(全サーバー)。
今後はsuEXECが有効なCGIモードで動作するよう仕様を変更致しました。
(PHP5につきましては、先日の導入当初からsuEXECが有効なCGIモードで動作する仕様となっております)
●suEXECの注意点
CGIやPHPのスクリプトファイル自身およびスクリプトが格納されているディレクトリが第三者の書き込みを許すパーミッションになっている場合、エラー(500 Internal Server Error )となり動作しません。
(例えば、パーミッションが777のディレクトリにスクリプトを格納した場合や、スクリプト自身のパーミッションが666や777になっている場合、エラーが発生します)
スクリプトは各ユーザーの権限で動作します。このため、スクリプトから書き込みが行なわれるデータベースファイルのパーミッションを666ではなく600等としたり、また書込みが行なわれるディレクトリのパーミッションも777ではなく700等にすることが出来ます。
●既に設置されているCGI・PHP等のパーミッションについて
お客様でパーミッション変更を行なって頂く必要は通常ございませんが、お手数ですが念のため動作確認をお勧め致します。
suEXEC導入によってそのままでは動作しなくなるケース(上記「suEXECの注意点」に抵触するようなパーミッションが設定されてたケース)につきましては、システムにてパーミッションの変更を行ない、正常に動作するように致しました。
具体的には以下の通りでございます。
・オーナー以外に書込許可があるパーミッションのディレクトリ……オーナー以外の書込権限をOFFにしました。
・オーナー以外に書込許可があるパーミッションの.phpファイル……オーナー以外の書込権限をOFFにしました。
・オーナー以外に書込許可があるパーミッションの.cgi/.plファイル……オーナー以外の書込権限をOFFにしました(旧suEXEC非対応サーバーのみ)。
●パーミッションの基礎
記号表記
drwxrwxrwx
1文字目……種類 -:通常のファイル d:ディレクトリ(フォルダ)
2,3,4文字目……所有者(user)のパーミッション
5,6,7文字目……グループ(group)のパーミッション
8,9,10文字目……その他(others)のパーミッション
パーミッションを表わす3文字は、順に r:読取(read)可能 w:書込(write)可能 x:実行(execute)可能
それぞれ不可能を表わす場合は-とする
ディレクトリにおいては、「読取可能」とはファイル一覧を表示可能なことを、「書込可能」とはファイル作成・削除可能なことを、「実行可能」とはディレクトリ内のファイルにアクセス可能なことを指す
八進表記
741
1文字目……所有者(user)のパーミッション
2文字目……グループ(group)のパーミッション
3文字目……その他(others)のパーミッション
パーミッションを表わす数字は、4:読取(read)可能 2:書込(write)可能 1:実行(execute)可能 を足し合わせたもの。
例えば「読取可能・書込可能・実行可能」は4+2+1で7、「読取可能・書込不可・実行可能」は5となる。
記号表記の1文字目(ファイルorディレクトリの別)に該当するものは存在しない(八進表記だけでファイル・ディレクトリの判別は出来ない)。
表記例
記号表記:-rwxr-xr-x
八進表記:755
ファイルで、所有者は「読取可能・書込可能・実行可能」、グループユーザーは「読取可能・実行可能」、その他は「読取可能・実行可能」(cgiで通常使われるパーミッションです)
記号表記:drwxr-xr-x
八進表記:755
ディレクトリで、所有者は「読取可能・書込可能・実行可能」、グループユーザーは「読取可能・実行可能」、その他は「読取可能・実行可能」(上記と同じですが、ディレクトリの場合です。これもよく使われます)
記号表記:-rw-r--r--
八進表記:644
ファイルで、所有者は「読取可能・書込可能」、グループユーザーは「読取可能」、その他は「読取可能」(普通の静的なHTMLや画像ファイルで通常使われるパーミッションです)
実際のパーミッション
・ 西院ネットワークスのサーバーでは、通常はグループユーザーのパーミッションを意識する場面はありません。0(
---)にしてしまって構わないでしょう。
・ 画像やHTMLファイル、.htaccessなど、Webサーバーが読み込む静的なファイルは「その他(others)」が読取可能になっている必要があります。これは、Webサーバーが各ユーザーとは異なるユーザー権限で動いているためです。通常は644(
-rw-r--r--)にするとよいでしょう。
・ CGIファイル本体には、所有者に実行権限がある必要があります。suEXEC環境においてはCGIは各ユーザー(所有者)の権限で動作しますので、所有者だけが読取・書込・実行出来ればOKです。他者のパーミッションは0で構いません。700(
-rwx------)などにするのがおすすめです。
・ PHPファイル本体は、実行されるスクリプトですがCGIとは異なり実行属性が不要です。所有者だけが読取・書込出来ればOKです。600(
-rw-------)などにするのがおすすめです。
・ ディレクトリは、通常は755(
drwxr-xr-x)がよく使われます。
●その他
※ PHPについての最新の設定情報などは
PHPについてをご覧下さい。
ご不明な点がございましたら
[email protected]までお気軽にお問い合わせ下さい。