人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在、xampp for linuxを用いて立てたサーバにPiccy Cabinetのアルバムシステムの設置を行っています。

http://support.album-system.com/index.php?topic=install-guide

ですが、phpをマニュアル通りに設置する(と思っているだけかもしれませんが)と、Access Forbiddenと出てきてしまいます。更に直接PHPのファイルにでは以下のエラーメッセージが出てきてしまいます。
Premature end of script headers: album.php

設置作業のどこがまずいでしょうか。効率的に原因を突き止める方法をお教えいただけますでしょうか。


●質問者: 天城桜華
●カテゴリ:インターネット ウェブ制作
✍キーワード:access Linux PHP SCRIPT XAMPP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●60ポイント ベストアンサー

【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の場合は必須)も大きく関係してきますので、

環境は書き忘れないようにしましょう。コメント欄を開けておくと、

不足分などを聞いてきてくれるものと思われますので、個人的には開けておくことをお勧めします。

◎質問者からの返答

ご回答いただきましてありがとうございます。

OSはUbuntu 9.04です。中古PCを安く買ってきてサーバに仕立て上げたこともあるため、スペックは低いです。

(Pen3のしかも、元々Meが入っていたモノを使用しております。それなりの年代物です。)


2 ● ワテ
●40ポイント

「効率的に原因を突き止める方法」といえるかどうかわかりませんが

【Access Forbidden】はWebサーバーの設定で

Indexesオプションがない場合に、以下のようなURLでアクセスすると表示されます。

http://www.ddummy.com/alubm/

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です。

http://sagittarius.dip.jp/toshi/premature.php

◎質問者からの返答

ご回答いただきましてありがとうございます。

このようなまとめサイトもあるのですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ