ソリューションの潜在的不足許可mkdir()内からphpのインストール

StackOverflow https://stackoverflow.com/questions/2061732

  •  20-09-2019
  •  | 
  •  

質問

大丈夫しています。I成する必要があるフォルダに保存作成テンプレートをクリアしました。私はインストールしようとする mkdir() 適当なディレクトリ(compiled_templates).

キシを返しますこの警告が表示されます。

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

走りを変えるモードのフォルダのcompiled_templateフォルダが作成したもの誤差と同様にアクセス権の問題です。

がありうることを保証することができな収納フォルダを介php?ただし、使用の外phpプログラムだけを確実にするためのフォルダが作り出されているのか。どのようなその他のphp開発者が対応す。

編集:この取付スクリプトなので全体的な目標とする10種類のランダムに人々のインストールスクリプトをサーバーです。その"くるphpはこれらすべての大に必要な書にアクセス権をcompiled_templatesディレクトリにいのではないか"という実践的なマニュアル過程では、残念ながら、

編集:呪い、許可の場合にはエラーだけで作り出してしまおうというものは、温度ディレクトリです。ラメ.

役に立ちましたか?

解決

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

mkdir(sys_get_temp_dir() . 'example');

一般的なアプローチは、しかし、単にユーザPHPは(例えばApacheの)として実行されていることを確認することで、必要に応じて書き込み権限を持っています。

他のヒント

私はtmpにディレクトリを置くに同意します。一般的に、インストーラスクリプトでこれに対処に関する一般的な質問に答えるために...あなたがスクリプトを実行する前に、Webルートにパーマを設定し、また、パーマがあなたのパッケージ内の任意のdirsに正しいことを確認しなければなりません。そうは言っても、私は一般のWebインストーラを避け、代わりにPHPのCLIバージョンのインストーラを書いてみます。もちろん、あなたがそれを行うためにボックスのSSHアクセスを必要とするが、私にとっては、少なくともその非常に稀に私はいけないケースます。

正常に設定し、システムの適切な権限を与え合う機会を設けていきたいと思いオプションスクリプトに必要な素敵な記述エラーメッセージできます。

ているということだいtempフォルダのかもしれな tmpfile(), tempnam()sys_get_temp_dir() 機能に使用できる可能性があります。

システムの一時ディレクトリを使用して、あなたに合っていない場合は、私がFTP証明書を要求し、その後、ディレクトリを作成して権限を設定するためにFTPを使用して創造的なインストーラを見てきました。

これは、しかし、それ自身の利益のために少しも賢いかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top