CentOS7の仮想サーバー構築にチャレンジ その9

CentOS7の仮想サーバー構築にチャレンジ その8 の続きです。PHPがユーザー権限で動くようになったので、それに伴う細々とした設定を行います。

もくじ

  • CentOS7 ISOファイルの入手(その1)
  • VMwareの準備(その1)
  • 仮想マシンの作成(その1)
  • CentOS7のセットアップ(その2)
  • 初回ログイン(その3)
  • ファイアウォール(iptables)(その4)
  • sudoの有効化(その5)
  • リモートからのrootログインの禁止設定(SSH)とセキュリティ強化(その5)
  • Apacheのインストール(その6)
  • WEBサーバーとして運用するための設定(その7)
  • SFTPによるファイルのアップロード(その7)
  • PHPのインストール(その8)
  • ユーザーディレクトリでWEBサイトを公開する(その8)
  • PHPをCGIモードで(ユーザー権限で)動かす(その8)
  • デフォルトパーミッションの変更(その9)
  • php.iniと.user.ini(その9)
  • MySQLの導入(その10)
  • phpMyAdminのインストール(その11)
  • WordPressのインストール(その12)

デフォルトパーミッションの変更

せっかくPHPがユーザー権限で動くようになったからには、セキュリティ的に安全なパーミッションをセットしたいところです。以下のコマンドを打ちます。 [VIM] umask #結果応答 0002 #新しい値をセット(新規作成orアップロードしたファイルの初期パーミッションを755にするとき) umask 022 #同644にするとき umask 133 [/VIM]

CentOSでは、新規作成されるファイルやディレクトリに対して、デフォルトで適用されるパーミッションが設定されています。これを変更するときに、umaskコマンドを使います。パーミッションというのはファイルへのアクセス権限です。念のため。パーミッションの数字は、

  • 0…何もできない
  • 1…ファイルを実行できる(ディレクトリの場合はそのディレクトリへの移動を許可) Xと表記されることも多々ある
  • 2…ファイルの書き込みや変更、ディレクトリ内のファイル作成や削除を許可 Wと表記されることも多々ある
  • 4…ファイルの内容表示、ディレクトリ内のファイルリストの表示を許可 Rと表記されることも多々ある
許可したい行動に合わせて上記の数字を足していきます。ファイルやディレクトリに対して何も許可しない(読み込みも書き込みも実行もできない)ときは「0」になります。読み込み、書き込み、実行を許可(なんでもできる)する場合は「7」です。「ファイルの読み込みと実行を許可」する場合は、読み込み許可の「4」に実行許可の「1」を足しあわせ、4+1=5で、パーミッションの数字は「5」になります。こんな感じでパーミッションの数字を出していくことができます。

また、パーミッションは「ファイル所有者」「ファイル所有グループ」「赤の他人」の3パターン分設定されます。数字3桁の並びも「所有者」「所有グループ」「赤の他人」の順です。例えばパーミッションが「755」のファイルがあったとすると、「ファイル所有者はなんでもできる、ファイル所有グループと赤の他人は読み込みと実行を許可」みたいな感じです。なお、この例は次のように表記されることもあります。「-rwxr-xr-x」

本題のumaskに戻ります。umaskの設定値は、デフォルトのパーミッションをセットするために使われますが、計算式は、(3桁の場合)「777 – (umask設定値) = (デフォルトパーミッション)」です。umaskの値を「022」にセットすると、777-022=755となり、デフォルトパーミッションは「755」になります。こんな感じで値をセットしていきます。

php.iniと.user.ini

今度はPHPの設定です。設定ファイルを編集します。 [VIM] sudo vim /etc/php.ini #編集内容 #183行目のコメントアウトを外し(文頭のセミコロンを消す)、ユーザー設定ファイル名の設定を変更(してもしなくても良い・するならphp.iniあたりにしておく) ;user_ini.filename = “.user.ini” #こうなる(ファイル名php.ini) user_ini.filename = “php.ini” #189行目のコメントアウトを外し(文頭のセミコロンを消す)、ユーザー設定ファイルを再読込する間隔に任意の値(秒)をセット(デフォでは300秒) ;user_ini.cache_ttl = 300 #こうなる(再読み込み間隔を150秒にセット) user_ini.cache_ttl = 150 #375行目で設定をOffにする expose_php = On #こうなる expose_php = Off #878行目のタイムゾーンを設定する ;date.timezone = #こうなる(日本ならAsia/Tokyo その他の場合は http://php.net/manual/ja/timezones.php を参照) date.timezone = “Asia/Tokyo” #1660行目のコメントアウトを外す ;mbstring.language = Japanese #こうなる mbstring.language = Japanese #1666行目のコメントアウトを外し、文字コードをUTF-8にする ;mbstring.internal_encoding = EUC-JP #こうなる mbstring.internal_encoding = UTF-8 #1670行目のコメントアウトを外す ;mbstring.http_input = auto #こうなる mbstring.http_input = auto #1675行目のコメントアウトを外し、文字コードをUTF-8にする ;mbstring.http_output = SJIS #こうなる mbstring.http_output = UTF-8 #1683行目のコメントアウトを外し、Onにする ;mbstring.encoding_translation = Off #こうなる mbstring.encoding_translation = On #1688行目のコメントアウトを外す ;mbstring.detect_order = auto #こうなる mbstring.detect_order = auto [/VIM] この辺りまで設定を終えたら保存して下さい。Apacheの再起動をしなくても設定は反映されます。全体のphp.iniで設定すべき項目は(初期段階では)このくらいです。後は必要になり次第ググればどうにかなるでしょう。

しかし、現実には、ユーザーごとに設定したい項目もあると思います。エラーメッセージの出力設定などはその最たるものです。本番環境では出したくないが開発中は出しておきたい…そんな時はユーザーごとに設定ファイルを用意しましょう。デフォルトでは.user.iniという名前(user_ini.filenameを変更した場合はその名前)で作成した設定ファイルをユーザーディレクトリ(の設定を適用したい階層)に設置すれば、設定が反映されます。書式はphp.iniと同じです。例えばエラーメッセージを画面上に出したいときは、 [VIM] display_errors = On [/VIM] と書けばOKです。セッションファイルの生成場所や、Cookieの寿命などもこちらで設定することが可能なので、必要になったらググってみればいいと思います。

参考サイト

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: