1. ホーム
  2. php

PHP にディレクトリへの書き込み権限を与えるにはどうしたらよいですか?

2023-08-19 10:34:50

質問

PHPを使ってファイルを作成しようとしているのですが、うまくいきません。これは、書き込みアクセス権を持っていないためだと推測しています (以前から常に問題でした)。これが問題なのかどうか、フォルダを chmod 0777 にして試してみましたが、これを元に戻すまで、そのディレクトリのすべてのスクリプトが 500 エラーメッセージを返してしまうという結果になりました。 どうすればPHPにファイルシステムへの書き込み権限を与え、ファイルを作成できるようになるのでしょうか?

編集: Apacheを使用してHostgator共有ホスティングでホストされています。

編集2:ある人がコードを求めてきました。 コードはGDイメージスクリプトです。以前は、呼び出されるたびに画像を作成していたので、それの残りの部分が動作することを知っています。今私は新しいテキストが追加されたときにそれらを作成し、フォルダにそれらを保存しようとしています。私が持っている書き込み行は次のとおりです。 imagejpeg(null,$file,85)です。

私はまた、それが単に壊れたスクリプトであるかどうかを確認するためにテストファイルを作成しました(主にtizagからコピーしたものです)。 http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (ここにコードを適切に掲載できるかどうか/方法はわかりません。以下は、PHPタグを除いたPHPスクリプトの内容です)。

13,13,1(別々の行)を返すので、何か書いたつもりのようですが、testfile.txtは空白(空白をアップロードした)、または存在しない(削除した場合)になっています。

編集3:サーバーはCentOSを使用しています。

どのように解決するのですか?

簡単な方法は、PHPが最初にディレクトリ自体を作成するようにすることです。

<?php
 $dir = 'myDir';

 // create new directory with 744 permissions if it does not exist yet
 // owner will be the user/group the PHP script is run under
 if ( !file_exists($dir) ) {
     mkdir ($dir, 0744);
 }

 file_put_contents ($dir.'/test.txt', 'Hello File');

これでパーミッションの手間が省けます。