2016-08-11 21 views
0

PHPを使ってローカルのApacheサーバーにディレクトリを作成しようとしています。
私は何も起こらないブラウザでそれらを実行しようとすると、私は
<?php mkdir("folder"); ?>

<?php exec("sudo mkdir folder"); ?>
を試してみました。
しかし、sudoを使って端末から実行できます。 (それは第二のコードでパスワードの入力を求めないように、私もsudoersファイルを修正)
は 私はsudoを使用しない場合、私はこのエラーを取得する
PHP Warning: mkdir(): Permission denied in /var/www/html/mscr/add.php on line 2PHP mkdir()がブラウザで動作していません

は私も this thisを試してみました。

ブラウザでディレクトリ操作以外のほとんどすべてを実行できます。 ブラウザでディレクトリを作成、削除、編集できるようにします。

ありがとうございました!

+1

のようなものは、それは、ブラウザを使用している場合ではなくPHPよりも、ディレクトリを作成する必要のあるApacheのないように777に設定されているサブフォルダを作成します。そうする許可を得ていますか? – CD001

+0

これは、Webサーバーユーザー(Apache/www /など)のsudo権限を与えるという意味で、 'sudo'を使用しないでください。代わりに、Webサーバユーザに対して親ディレクトリを書き込み可能にする必要があります。 – jeroen

答えて

0

Apacheのようなサウンドには、フォルダを作成する権限がありません。どちらか(あなたが新しいものを作成しようとしている)フォルダのApacheの所有権

sudo chown www-data /var/www/html/mscr 

を与えるか、MSCRフォルダの実行可能ファイル内のすべてのものを行います。この警告777

sudo chmod 777 /var/www/html/mscr 

にフォルダのアクセス許可を設定します。これを回避するには、ほとんどのCMSは/ var/www/html/MSCR /アップロード

+2

Webサーバー上で何も777する必要はありません。**これまで**:http://serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have -on-a-linux-webserver – CD001

+0

これは、ほとんどのCMSがアップロードフォルダをどのように使用するかについてかなり標準的です。 –

+0

@MarkTwiggそんなに私の問題を解決していただきありがとうございます。それはローカルサーバーとして滞在するので、私はすべてのアクセス許可が問題ではないと思う。 –

0
<?php mkdir("folder", 777, true); ?> 
+0

私はこれを試しましたが、私のためにはうまくいきませんでした。 Mark Twiggの答えが働いた。どうもありがとうございます。 –

+4

パーミッションに '777'を使わないでください! – hek2mgl

+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。また、コードと説明の両方の可読性が低下するため、説明的なコメントを使用してコードを混乱させないようにしてください。 – FrankerZ

関連する問題