ちまたのレンタルサーバ会社は、PHPが使えるというキャッチフレーズを軽々しく使い過ぎてる。
PHPは、バージョン・システム環境・設定(php.ini)によって千差万別だという事を認識して欲しい。
以前借りていた1-man.netは、コバルトRAQサーバーというラック型のサーバーで、ソフトは内蔵されている物しか使えなかった。
* レンタルしていたときの環境 *
#OS :
Linux 2.2.16C35_III i586
#HTTPd:
Apache/1.3.20 Sun Cobalt (Unix)
mod_ssl/2.8.4
OpenSSL/0.9.6b
PHP/4.0.6
mod_auth_pam_external/0.1
FrontPage/4.0.4.3
mod_perl/1.25
#Perl :
version 5.005_03 built for i386-linux
|
PHPが 4.0.6 と哀しいくらい古いが、セーフモードが Off だったのが救いでした。
おかげで代用の外部プログラムが利用できたので困る事は無かったです。
でも、サーバ自体に問題が出て移転する事に・・・
移転の際、最初に申込んだECTレンタルサーバーの共有サーバーは、PHP4.2.x、GD1.6、GIF Read Supportなし。更にセーフモードOnで、見事に撃沈。
急いでいたのでちゃんと質問しなかった私が悪いのですが、駄目もとで問い合わせてみると・・・
「共有サーバーではそういった変更はできません。ご要望の件は占有サーバーでのみ承ります」
と、予想通りの回答。
当然、即刻解約・・・ただ、手数料3000円取られた(涙)
これを踏まえて、次からは事前に以下の内容で問い合わせ。
GD(グラフィックライブラリ)は利用可能か?
mbstring(マルチバイト関数)は利用可能か?
safe_modeは ON/OFF どちらでしょうか?
file_uploadsは ON でしょうか?
sendmail_pathは設定されているでしょうか?
(要はPHPからメールが送れるかどうか)
|
※PHPのバージョンはサイト内で4.3以降と確認済みという前提。
第1候補の80code.comからの回答によると、GD・mbstring・sendmail はOK。他については個別にphp.iniで設定可能との事。
php.iniを自由に扱える上にこちらの要望もクリア。値段も他より安め・・・文句なしにここに決定。
第2候補の回答を待たずに、さっそく申込む。サーバが使えるようになったら、POTI-boardでテスト。
全然問題ナシ(モーマンタイ)
というわけで、うちは現在ここなんだけど、ひとつ問題が・・・
PHPのServer APIが FastCGI。ようするに Apacheのモジュール ではない。
おかげで、BASIC認証が使えなくなりました。
※BASIC認証はApacheモジュールの機能
調べてわかるまで、レッツ!PHP製のアクセス解析にログインできないのが不思議でしたよ。
理由がわかれば簡単。クッキーで代用してログイン。ついでにログアウトもできるようにして、IP-ドメイン変換も追加。ちょいと便利になりました。
と、まぁ。私の苦労話でわかる通り、各レンタルサーバ会社のサイト上でのPHP情報が少な過ぎです。
せめて、phpinfo() が見れれば良いのですが、セキュリティ上問題ありそうな内容まで含まれる場合がある為、ほとんどの場合見せてくれません。
なら、見せたくない情報を隠して表示させれば良いのではないか?
と、思い以下のようなスクリプトを書いてみました。
<?php
/* phpinfo edit
*
* == 設定方法 ==
* 1. phpinfo()を実行し、そのHTMLソースをみる。
* 2. 置き換えたい部分をperl互換正規表現でパターン作成 -> $delpatterns
* 3. そのパターンにあった置換文字列を作成 -> $replace
例:あるタイトルからあるタイトル前まで削除
$delpatterns = array(
"'<h2><a name=\"module_apache\">apache</a></h2>.*?(<h2><a name=\"module_bcmath\">bcmath</a></h2>)'si"
,"'<h2>Environment</h2>.*?(<h2>PHP License</h2>)'si"
);
$replace = array(
"\\1"
,"\\1"
);
*/
$delpatterns = array(
"'<h2><a name=\"module_apache\">apache</a></h2>.*?(<h2><a name=\"module_bcmath\">bcmath</a></h2>)'si"
,"'<h2>Environment</h2>.*?(<h2>PHP License</h2>)'si"
,"'<tr><td[^>]*?>[^<]*?php\.ini[^\n]*?\n'si"
);
$replace = array(
"\\1"
,"\\1"
,""
);
ob_start();
phpinfo();
$all .= ob_get_contents();
ob_end_clean();
$all = preg_replace( $delpatterns, $replace, $all );
echo $all;
?>
|
>実行結果
こんなに簡単なスクリプトでPHPの情報を理解してもらえるのだから、各レンタルサーバは phpinfo を載せるべきだと思うが・・・どうでしょ?
[ このエントリへはコメント出来ません ]
|