http://support.album-system.com/index.php?topic=install-guide
ですが、phpをマニュアル通りに設置する(と思っているだけかもしれませんが)と、Access Forbiddenと出てきてしまいます。更に直接PHPのファイルにでは以下のエラーメッセージが出てきてしまいます。
Premature end of script headers: album.php
設置作業のどこがまずいでしょうか。効率的に原因を突き止める方法をお教えいただけますでしょうか。
【1】効率的に原因を突き止める方法
王道は無く、地道な話になりますが、エラーメッセージについて調べ、
適宜テスト用スクリプトを作ったりして、確認を進めるしかないです。
地道な努力を繰り返していけば、そのうちに経験則というものが成り立つようになり、
即応できるようにもなりますし、そもそも失敗しないようになってきます。
今件であれば"Premature end of script headers"をネット検索してみる事からになりますが、
検索してみるとヘッダがどうのこうのとか、パーミッションがどうのこうのというものが、
多数返ってきて、perlの場合なども多かったりするので、さらにphpで絞り込んでいきますと、
パーミッションの問題にたどり着くと思います。
そちらのLinux環境が分からないので、ここからは kn1967 の経験則によるものになるのですが、
現状は、「ディレクトリやファイルのパーミッションはそれぞれ指定通りにしているのだが、
それでも動かない」という事なのではないかと想像しています。
想像の発展となりますが apache の suEXEC が有効になっているのではないかという事が考えられ、
与えるべきアクセス権が下記とは違うものとなっている可能性が覗えそうです。
Piccy-Cabinetサポートサイト - インストールガイド
スクリプト配置フォルダー:”/var/www/html/album” アクセス権「777」
PHPファイルは、実行ユーザに実行権限を与えてください。 アクセス権「755」
album-key.phpは、実行ユーザに実行+書き込み権限を与えてください。 アクセス権「777」
ログ用フォルダー:”/var/www/html/album/log” アクセス権「666」
構成定義ファイル「config.xml」は、書き込み権限が必要です。アクセス権「666
【2】設置作業のどこがまずい
ここで話が戻って、地道なテストから入ります。
まずは最も単純なphpスクリプトを作成して、そのディレクトリに配置してみましょう。
<?php phpinfo(); ?>
多分、同じく動かないと思いうのですが、次に
ディレクトリのパーミッションを777→705
スクリプトファイルのパーミッションを755→700
などに変えてみましょう。
(666は600)
現状では、以上です。
なお、技術的質問の際にはOS環境(特にLinuxの場合は必須)も大きく関係してきますので、
環境は書き忘れないようにしましょう。コメント欄を開けておくと、
不足分などを聞いてきてくれるものと思われますので、個人的には開けておくことをお勧めします。
「効率的に原因を突き止める方法」といえるかどうかわかりませんが
【Access Forbidden】はWebサーバーの設定で
Indexesオプションがない場合に、以下のようなURLでアクセスすると表示されます。
Apacheは最後がスラッシュで区切られたURLがリクエストされた場合に、
DirectoryIndexのファイルを表示するようにします。
それがもない場合、
Indexesオプションが有効の場合は、
ファイルの一覧を表示します。
ですので、【Access Forbidden】の件は、
初期アクセスするファイルに直接リンクをさせるまたは、
DirectoryIndexを変更して、スラッシュで区切られた場合の自動で表示するファイルの
ファイル名を指定する。
という方がいいと思われます。
【Premature end of script headers: album.php 】の件もサーバー側の起因が考えられますので、
サーバー自体の設定を調整されたほうがいいように思われます。
「Premature end of script headers」の件は、
参考になるかどうかわかりませんが
具体的に「効率的に原因を突き止める方法」となると、
私の場合はソースファイル内をgrepをかけて、
エラーを表示している箇所のプログラムを読み解くか、
エラーメッセージが、見つからない場合は、
エラーメッセージ自体を
"Premature end of script headers"
のようにダブルクォートでエラーメッセージ自体をくくって
Googleでフレーズ検索をかけています。
そこで見つかったURLが
以下のURLです。
ただ、現時点では画像のアップロードができません。
php側のデフォルト設定(ファイルアップロードは2MBまで)のほうに
引っかかっている可能性がありそうなので、余裕をみて例えば10MBくらいまでに
あげてみてはどうでしょう?
【方法1】php.ini にて設定を行う(ユーザー単位が有効範囲)
post_max_size 11M
upload_max_filesize 10M(post_max_sizeと同じかそれ以下の値にする)
【方法2】.htaccsee にて設定を行う(ディレクトリ単位)
php_value post_max_size 10M
php_value upload_max_filesize 10M
【方法3】各スクリプトにて設定を行う(スクリプト単位)
ini_set('post_max_size', 10 * 1024 * 1024);
ini_set('upload_max_filesize', 10 * 1024 * 1024);
http://jp2.php.net/manual/ja/ini.core.php
どの方法が良いかは適宜判断する必要がありますし、
2および3については1による許可が必要だったりもしますが、
自サバという事なので、まずは1で試してみてからでよろしいかと思います。
【補記】
Pen3ということなので処理時間がかかってタイムアウトになる可能性や、
メモリの割り当て不足なども考慮すると下記も入れておいたほうが良いかもしれません。
memory_limit 12M(post_max_sizeと同じか、少し多め)
max_execution_time 60 (デフォルトは30秒)
1について試しましたが、以下のエラーが出てしまい、アップロード不可能でした。
エラーメッセージが出ておりますので、新たな以下の質問にて掲載させていただいております。
ご回答いただけますと幸いです。よろしくお願い致します。
http://q.hatena.ne.jp/1257366938