2017-01-11 6 views
1

ArchLinuxでサーバーを実行しようとしていますが、ApacheとPHPは正常に動作していますが、 。私はStackOverflowの上でこの種の多くの質問を見ていると私は私が見つけたすべての提案を使用しているように見えるが、私はまだmove_uploadedファイル:ストリームを開くことに失敗しました:/srv/http/upload.phpで許可が拒否されました

failed to open stream: Permission denied in /srv/http/upload.php 

エラーが発生します。

は(私は右ではないのthatsを知っているが、私はローカルで働いている私は777には/ tmp /、/ホーム/管理者/ SCRIPTS/TRおよび/ srvの/ HTTPの権限を設定

Warning: move_uploaded_file(): Unable to move '/tmp/phpZvJK1l' to '/home/administrator/SCRIPTS/tr/solution.cpp' in /srv/http/upload.php on line 20 

正確には私はそれをどうにかして稼働させたい)。

また、これらのディレクトリのすべての所有者をhttp(つまりPHPを実行しているユーザー)に設定しましたが、それでも問題は解決しません。

答えて

2

一部のPHP構成では、ユーザーのdocrootディレクトリ以外のファイルへのアクセスが許可されないため、PHP内で/ tmpにアクセスできない場合があります。/home/administratorディレクトリ内のtempディレクトリにファイルをアップロードしてください。できればWebブラウザからアクセスできないディレクトリ(docrootの兄弟ディレクトリ)にアップロードしてください。/tmpのディレクトリへ

+0

私は一時ディレクトリを/ home/tempに変更しましたが、私はまだ同じエラーが発生しています。それは私がちょうど気付くことができないいくつかのばかげた小さな間違いを作っているようだ。 – Petr

+0

UPD:すべて完了。私は/ administratorフォルダの所有者をhttpに変更しました – Petr

0

所与の許可:私は、Webプロジェクトで作業するとき

はsudo chmodの777/tmpの

+0

これは/ tmpの問題ではありません – funilrys

+0

/tmpの問題がある場合、彼は '/ tmp/phpZvJK1l'ファイルを作成できませんでした。 – funilrys

0

アーチユーザーとして、私は同じ問題を持っています。

私はアーチウィキ

ユーザーディレクトリのthis一部がhttp://localhost/~yourusername/を通じて、デフォルトで利用可能であり、(これは、/ etc/httpdの/に変更することができます〜/ public_htmlの内容を示して見ることをお勧めしますconf/extra/httpd-userdir.conf)。

だから、あなたはApacheがそこに着くことができるようにあなたのホームディレクトリのパーミッションが正しく設定されていることを確認する必要があります

そのようにあなたは〜/ public_htmlディレクトリを作成する必要がために行います。あなたのホームディレクトリと〜/ public_htmlのは、(「世界の残りの部分」)他人のために実行可能である必要があります。その後

$ chmod o+x ~ 
$ chmod o+x ~/public_html 
$ chmod -R o+r ~/public_html 

あなたが現在開発として~/public_htmlを使用することができます/srv/http/の下にファイルを配置する必要はありませんディレクトリ。

+0

@Petrはちょうど私の答えをより多くの "アーチ"指向に更新しました:) – funilrys

関連する問題