|
今までに頂いた質問事項を少しまとめて見ました。メールでご質問頂く前に、まずこちらを一読下さい。(私の知識不足等で間違った記述があるかも知れません。どうかご容赦下さい。)
OS関連
[1]KOMONETで無料配布しているPHPスクリプトは、どんなOS上で稼動できますか?
KOMONETでは、Turbolinux 10 Server上でこれらのPHPスクリプトを稼動させています。ですから、LinuxやFreeBSD等のPC-UNIXやUNIX自体で稼動できると考えられます。Windowsサーバ上ではシステムの違いから動作保証はできませんので、十分ご注意下さい。PHPもPostgreSQLもWindowsに移植されたものがありますので、Windowsサーバ上でも稼動するものと勘違いされる方が幾分いらっしゃるようです。事前にご使用のレンタルサーバ等のシステム内容をご確認願います。
※現在、Turbolinux 11 Server搭載の第2WWWサーバ上でも、PHPスクリプトの動作検証を行っています。PHP5やPostgreSQL8系への対応は、こちらのサイトをご参照下さい。ただし、第2WWWサーバは暫定公開ですので、アクセスできる時間帯にご注意下さい。
[2]Windowsサーバとのシステムの違いとは何ですか?
一般の方はUNIX系のOSに関してほとんど知識がないでしょうから、システムの違いと言われても全く見当が付かないのではないかと思います。端的に言いますと、まずディレクトリ構成から違います。Windowsのディレクトリ構成は「マイ コンピュータ」から内部に入って行けば分かると思いますが、プログラム関連のファイルが「Program Files」ディレクトリの中にあるとか、ユーザ関連のファイルが「Documents and Settings」ディレクトリの中にあるとか、こう言ったディレクトリ構成がUNIX系とは全く異なる訳です。ですから、PHPファイルの中で他のシステム機能(メール送信機能とか)を呼び出す時の仕様とかが全然違って来ます。
又、Windowsでは実行ファイルの拡張子が「*.exe」だったりとか、ファイルの機能を拡張子で区別していますが、この点もUNIX系とは全く異なります。UNIX系のシステムには拡張子が付いていないファイルが一杯あります。スクリプトファイルのように「*.php」とか「*.cgi」とか種類分けを示す場合もありますが、システムの実行ファイル等にはほとんど拡張子が付いていません。
PHP関連
[1]私が使っているレンタルサーバではPHPをCGI版で動作させています。CGI版でも大丈夫ですか?
KOMONETで無料配布しているPHPスクリプトは全てモジュール版ですので、PHPをCGI版で動作させているサーバでは正常に動作しない可能性があります。ただ、レンタルサーバによっては、モジュール版のスクリプトでもそのまま動作するよう処置を施している所もあります。事前にご使用のレンタルサーバのシステム内容を十分ご確認下さい。
[2]CGI版とモジュール版との違いは何ですか?
最近レンタルサーバでPHPのCGI版を稼動させている所が増えて来ました。モジュール版の場合は、httpdが稼動した時点でPHPもモジュールとして読み込まれているので、CGI版に比べて動作が速くなります。CGI版の場合は、Perl/CGIと同様、PHPファイルの文頭でPHPを呼び出す為、その都度機能を呼び出す形となり、モジュール版に比べて少し動作が遅くなります。ただし、昨今のセキュリティ強化の点からは、ExecCGI等の恩恵をこうむりますので、よりサーバの安全性が高いと言えます。
[3]ExecCGIて何ですか?
ExecCGIとは、昔から問題となっているCGIプログラムによる管理者権限奪取の危険性を回避する仕組みです。管理者権限を奪われてしまいますと、サーバ上で好き勝手な事が出来てしまうので非常に危険です。ですから、CGIスクリプトの実行権限をどのような場合もユーザ権限内でとどめて置くようにしたのがExecCGIです。簡単に言うと、昔のように簡単に管理者権限を奪う事が出来なくなったと言う事でしょうか。
更に注意しなくてはいけないのは、ExecCGIが稼動している場合、CGIファイルや画像格納用のディレクトリ等のパーミッションの設定が、以前の仕様とは異なると言う点です。ユーザ権限内でのみ動作可能なよう仕様が変更されています。詳しくは、お使いのレンタルサーバの解説等をご参照下さい。
画像関連
[1]画像のアップロードができません。どうしたらいいですか?
KOMONETで無料配布しているPHPスクリプトでは、画像のアップロード処理の際、画像を格納するimgディレクトリの階層位置の情報を得る為に、環境変数「$PATH_TRANSLATED」を用いています。スーパーグローバル変数対策の項目で変数$pathの値をゲットしている箇所があると思いますが、もしお使いのサーバ環境でこの点にエラーが発生する場合は、変数$pathの値を絶対パスで指定して見て下さい。このエラーを回避できる可能性があります。
他にも、imgディレクトリのパーミッションの設定の問題とかもありますので、ご自分のサーバ環境を十分チェックして下さい。
メール送信関連
[1]フォームメールスクリプトを設置しましたが、メールを送る事ができません。
フォームメールスクリプトからメールを送信する仕組みは、スクリプトの中でメール送信機能である「sendmail」を呼び出して、フォームに書き込まれた内容をメールの各要素として送信処理しているものです。サーバで稼動しているメール送信用のプログラムが従来のsendmailであろうと、最近のpostfixであろうと、それは問題ありません。内部処理でそれぞれ振り分けられます。
それよりも根本的な問題は、お使いのサーバがこのメール送信機能自体を有効にしているかどうかです。レンタルサーバ等でスパムメール対策の為、ユーザによるメール送信機能を有効にしていない場合があります。まずご自分のサーバ環境を十分チェックして下さい。
スクリプトの設置に関して
[1]全くの初心者ですが、わたしでも設置できますか?
誠に残念ですが、提供しているファイルをFTPでサーバにアップさえすればそれだけで稼動すると言うものでは決してありません。上記の解説にもありますが、スクリプトの実際の稼動には色々な条件がクリアされる必要があります。通常のホームページ用ファイルとは異なりますので、事前にCGI全般に関する知識を習得した上で、PHPに挑戦して見て下さい。
又、PHP自体に関する知識も習得されますと、ご自分の好きなようにスクリプトを改造する事も出来るようになりますので、どうか頑張ってPHPに挑戦して見て下さい。