web-dev-qa-db-ja.com

PHP fopen()エラー:ストリームを開けませんでした:許可が拒否されました

WordPressプラグインを作成する方法を学びます。XMLファイルにデータを書き込むのに助けが必要です。MAMPを実行しているMacのローカルマシンにいます。PHP 5.2.13。プラグインには、次のものがあります。

$file_handle = fopen('markers.xml', 'w');
$stringdata = "Test Info";
fwrite($file_handle, $stringdata);
fclose($file_handle);

上記を実行すると、次のエラーが表示されます。

警告:fopen(markers.xml)[function.fopen]:ストリームを開けませんでした:/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.phpで73行目で許可が拒否されました

警告:fwrite():指定された引数は、75行目の/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.phpの有効なストリームリソースではありません

警告:fclose():指定された引数は、/ Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.phpの有効なストリームリソースではありません76行目

$ file_handle行の絶対パスを使用してみました: http://my_site/wp-content/plugins/my_plugin_folder/markers.xml 。しかし、それはうまくいきませんでした。

また、markers.xmlのアクセス許可を次のように変更してみました。

(私):読み取りと書き込み(不明):すべてのユーザーのみ読み取り:読み取りと書き込み

何らかの理由で、私のMacで(不明)を読み取りと書き込みに変更できません。それが違いを生むかどうかはわかりません。ファイルを右クリックし、権限を変更するために「情報を見る」を選択しました。

PhpInfo()には、次のものがあります。

「登録済みPHP Streams https、ftps、compress.zlib、compress.bzip2、php、file、data、http、ftp」

WordPress設定が問題の原因ですか?またはそれだけでPHP issue?

この問題を解決する方法に関する提案はありますか?

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

18
Laxmidi

管理者として権限を変更する必要がある場合があります。 Macでターミナルを開き、markers.xmlがあるディレクトリを開きます。次に、次のように入力します。

Sudo chmod 777 markers.xml

パスワードの入力を求められる場合があります。また、フルアクセスを許可しないディレクトリである可能性もあります。私はWordPressに慣れていないので、各ディレクトリの許可をmysiteディレクトリに移動する必要がある場合があります。

28
Chris