CORESERVER と PHP セーフモードの問題

CORESERVER と PHP セーフモードの問題について、僕自身あまり詳しくないのですが、理解している範囲で書いてみます。 間違いなどがあれば、ご指摘頂けると助かります。

そもそも PHP のセーフモードとは?

元々、同じ共用サーバにいる、他のユーザ所有ファイルにアクセスさせないための仕組みがセーフモードなんだそうで、PHP6 からは廃止されるんだそうです。

順を追って書いてみると次の様になります。

  1. セーフモードで動作している PHP プログラムをウェブブラウザから操作し、フォルダやファイルを生成すると、その所有者が apache になる。
  2. FTP で自分がアップロードした PHP プログラムの所有者は自分になる。
  3. 自分が所有者の PHP プログラムから、所有者が apache のファイルへの読み書きを禁止するのがセーフモードです。

ちなみに、サーバ管理者が safe_mode=on に設定している場合、利用者が一部分だけ safe_mode=off にする事はできないみたい。

説明に自身がないので、ググってみると、hiromasa.zone :o) » セーフモードの束縛 というページを発見しました。 とても解りやすかったので、おすすめです。

CORESERVER の場合、PHP を CGI モードで動かすとセーフモードの制限を解除できるんだが…。

CORESERVER の場合、.htaccess ファイルに次の様に書いて設置すると、PHP を CGI モードで動かす事ができる。

AddHandler application/x-httpd-phpcgi .php

ただし、CORESERVER の CGI モードで PHP を動作させると、次の問題が起こる。

  1. モジュール版の PHP に比べて、負荷が高くなる。
  2. content-type ヘッダが text/html 固定になってしまう。

特に二番目の問題で、CSS, JS が正しく認識されず、WordPress 管理画面の表示がおかしくなるんじゃないかと勝手に想像してます。

参考:it : PHP を CGI 駆動にすると WP の管理画面の一部が変になる

雑感

PHP のセーフモードが有効になっていると、他の CMS でも色々問題がありそう。 セーフモードの制限のない軽快な共用レンタルサーバは無いかなぁ?

1 Comment

コメントを残す

メールアドレスが公開されることはありません。