2

了解しました。問題があります。コンパイルされたテンプレートをphpに保存するためのフォルダーを作成する必要があります。mkdir()適切なディレクトリ( )を試行するインストールスクリプトがありますcompiled_templates

常にこの警告を返します。

Warning: mkdir() [function.mkdir]: Permission denied in /home/tchalvak/sites/quotesite/quotes/install.php on line 92

compiled_templateフォルダーが作成されるフォルダーのモードを変更して実行すると、同じアクセス許可の問題でエラーが発生します。

PHPを介してストレージフォルダに相当するものを作成できることを保証する方法はありませんか?フォルダが作成されていることを確認するためだけに、outside-phpプログラムを使用する必要がありますか?他のPHP開発者はこの問題にどのように対処しますか?

編集:これはインストール可能なスクリプトであるため、全体的な目的は、10人の異なるランダムな人がサーバーにスクリプトをインストールできるようにすることです。残念ながら、「phpがcompiled_templatesディレクトリへのこれらの必要な書き込み権限をすべて持っていることを確認する」ことは手動プロセスとして実用的ではないのはこのためです。

編集:くそー、一時ディレクトリを作成しようとしたときも同じ権限エラー。ラメ。

4

4 に答える 4

3

一時ディレクトリの場合は、システム一時ディレクトリにディレクトリを作成します。

mkdir(sys_get_temp_dir() . 'example');

ただし、一般的なアプローチは、ユーザーPHPが必要に応じて書き込み権限(apacheなど)を持っていることを確認することです。

于 2010-01-14T02:11:04.470 に答える
1

通常、適切な権限を持つようにシステムを設定します。それがオプションでない場合は、スクリプトが失敗し、わかりやすい説明的なエラーメッセージと考えられる解決策が表示されます。

一時フォルダが必要だとおっしゃっていたので、tmpfile()関数は便利かもしれません。tempnam()sys_get_temp_dir()

于 2010-01-14T02:13:28.833 に答える
1

dirをに入れることに同意しtmpます。一般的なインストーラースクリプトでこれを処理することに関するより一般的な質問に答えるには...スクリプトを実行する前にWebルートでパーマを設定し、パッケージ内のすべてのdirでパーマが正しいことを確認する必要があります。そうは言っても、私は通常、Webインストーラーを避け、代わりにCLIバージョンのphp用のインストーラーを作成しようとします。もちろん、それを行うにはボックスにsshアクセスする必要がありますが、少なくとも私にとっては、そうしないことはめったにありません。

于 2010-01-14T02:25:56.897 に答える
0

システム一時ディレクトリの使用が適切でない場合は、FTPクレデンシャルを要求し、FTPを使用してディレクトリを作成し、アクセス許可を設定するクリエイティブなインストーラーを見てきました。

ただし、これはそれ自体の利益には少し賢すぎるかもしれません。

于 2010-01-14T03:02:30.100 に答える