web-dev-qa-db-ja.com

ApacheはPHPによるファイルの作成を許可していません

UbuntuのlocalhostでHTMLとPHPを使用してデータを保存しようとしています。 HTMLとPHPファイルはうまく機能していますが、コマンドを使用してlocalhostでファイルを開くときは

$myfile = fopen("testfile.txt", "w")

それを作成することはできませんが、PHPファイルは機能しており、PHPから変数を出力するコマンドで設定するとうまく機能します。

PHPがlocalhost UbuntuのApacheでファイルを作成することを許可する方法。

2
Moithil Biswas

Apacheユーザー(通常はwww-data)がそのディレクトリにファイルを作成できるようにする必要があります。これは、Apacheをディレクトリの所有者にすることで実現できます。たとえば、ディレクトリがmy-dirと呼ばれる場合、ターミナルを開いてこれを実行します。

Sudo chown www-data my-dir
4
Quentin Skousen

ディレクトリだけでなく、そのディレクトリ内のすべてのフォルダとファイルを変更する場合は、-Rを次のように追加します

Sudo chown -R www-data my-dir
1
Josh McCormack

apache2 Ubuntuのデフォルトページに記載されているとおり:デフォルトでは、Ubuntuは/ var/www ...にあるファイル以外のファイルへのWebブラウザーを介したアクセスを許可しません。これは、書き込みたいディレクトリまたはファイルが/ var/wwwの下になければならないことを意味します。自分でこの情報を見逃し、/ tmpなどに書き込もうとしてしばらく髪を引っ張った。

0
markus-hb