2012-01-17 6 views
0

サイトはIWebの共有ホスティングサービスにあります。スクリプトがsession_start()を実行するたびに、サイトは応答を停止しました。それは前に働いていて、コードは変更されていません。session_startが内部サーバーエラーを生成しています

IWebは私たちが持っていたいくつかのバグに取り組んでいるので、サーバーの問題はかなり確実です。彼らは無能です。しかし、彼らは実際に調査する前に、いつものようにあらゆる種類の証明を求めています。

は、だから私はこれだけを含むスクリプトを作成しました:

ini_set('display_errors',1); 
error_reporting(E_ALL); 
session_start(); 

そして、私はそれを実行する場合、私はerror_logsで内部サーバーエラーと何を得るに十分確認してください。

私の質問はこれを引き起こす可能性がありますか?セッションフォルダの権限?私たちは共有ホスティングを行っているので、サーバー側は何も変更できません。

問題を解決するためにIWeb技術者に伝えることができるものはありますか?

+0

エラーログレベルを上げる必要があります。 vhostsのデフォルトでは無効になることがあります。そうでなければ推測するのは難しい。 (ディスクの空き容量?) – mario

+1

'彼らは無能です - 新しいホストを探す時間かもしれませんね? – DaveRandom

+0

@marioエラー報告はE_ALLにあります。 – Iznogood

答えて

0

最終的には、実際にはホストプロバイダでした。私は彼らと一緒にチケットを開き、最終的にそれを修正した。

私の側で何も変更されていないので、サーバーの問題でした。修正された内容についての詳細はわかりませんが、/ tmpフォルダのパーミッションと関係があると確信しています。

-2

ホストプロバイダのIWebは適切なホストではありません。これはサーバー側の問題です。新しいWebホスティングを見つける時です。

+0

私の質問を編集したばかりです。 – Iznogood

+4

自分で試してみましょう。 – DaveRandom

+1

」タグブロック内に1つのステートメントしかない場合、セミコロンは必要ありません。 '?>'は1つの役割を果たします。 –

2

あなたは機能それが権限の問題だ場合は、その後、

echo substr(sprintf('%o', fileperms($sessionpath)), -4); 

通常のパスに設定された権限を表示することができ

$sessionpath = session_save_path(); 

とのセッションのパスを取得することができ、あなたは言ってエラーになるだろうセッションの開始時に拒否されたアクセスに関するもの。

+0

私のテストスクリプトにあなたのコードを貼り付け、0を表示しました。しかし、エラーはありません。実際には、session_save_pathは空の文字列を返します。 – Iznogood

+0

奇妙な、デフォルトは "/ tmp"にする必要があります。 php.iniで変更する必要があります。 http://www.php.net/manual/en/session.configuration.php#ini.session.save-path – dqhendricks

+0

@Iznogoodはおそらく、それをtmpの外にあり、公衆の外にあるフォルダに設定したいと思うでしょう。これは、session_save_path()関数でiniを使用する代わりに、スクリプトの開始時にプログラムで行うことができますが、iniが優先されます。 – dqhendricks

0

PHP session_start()を使用しているときに内部サーバーエラーが発生した場合は、session.save_pathとして構成されたフォルダ内のファイルの数を確認してください。ここでは簡単スクリプトは次のとおりです。

set_time_limit(0); 
ini_set("memory_limit","256M"); 

$directory = session_save_path(); 
$filecount = count(glob($directory . "/*")); 

echo $directory." file count = ".$filecount; 

そこにあるファイル(数千人の100S)の束がある場合、それはクライアントのクッキーを削除することで、一時的に解決することができます時折内部サーバーエラーを引き起こす可能性があります。共有サーバーでは、とにかく自分のファイルシステム領域にセッションCookieを保存することをお勧めします。私が使用している解決策は、セッションを開始するスクリプトまたはセッション変数を設定するスクリプトのsession.save_pathを変更することです。

ini_set('session.save_path', dirname(__FILE__) . '/../session'); 
関連する問題