2011-10-05 34 views
18

Estoy aprendiendo a escribir un plugin de WordPress. Necesito ayuda para escribir algunos datos en un archivo XML. Estoy en mi máquina local, una Mac ejecutando MAMP. Tengo PHP 5.2.13. En mi plugin, Tengo:PHP fopen() Error: error al abrir la secuencia: Permiso denegado

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

Ejecución de lo anterior me da el siguiente error:

Warning: fopen(markers.xml) [function.fopen]: failed to open stream: Permission denied in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 73

Warning: fwrite(): supplied argument is not a valid stream resource in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 75

Warning: fclose(): supplied argument is not a valid stream resource in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 76

He intentado utilizar la ruta absoluta en la línea de $ file_handle: http://my_site/wp-content/plugins/my_plugin_folder/markers.xml. Pero, eso no funcionó.

También intentado cambiar los permisos en markers.xml de la siguiente manera:

(Me): Read Write & (desconocido): Sólo lectura todos: Read Write &

Por alguna razón, mi Mac no me permitió cambiar (desconocido) para Leer & Escribir. No estoy seguro si eso hace la diferencia. Hice clic derecho en el archivo y seleccioné 'Obtener información' para cambiar los permisos.

En phpinfo(), Tengo:

"registrados PHP Secuencias HTTPS, FTPS, compress.zlib, compress.bzip2, php, archivos, datos, http, ftp"

Es una Configuración de WordPress causando el problema? o es solo un problema de PHP?

¿Alguna sugerencia para resolver este problema?

Gracias.

+0

Posible duplicado de [PHP - No se pudo abrir la secuencia: Ningún tal archivo o directorio] (http://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or-directory) –

Respuesta

26

Es posible que debas cambiar los permisos como administrador. Abre el terminal en su Mac y luego abrir el directorio que markers.xml, ubicado en el tipo continuación:.

sudo chmod 777 markers.xml 

Es posible que se le pida una contraseña. Además, podrían ser los directorios que no permiten el acceso completo. No estoy familiarizado con WordPress, por lo que puede tener que cambiar el permiso de cada directorio que se mueve hacia arriba al directorio de mysite.

+0

Hola @Chris, gracias por el mensaje. Establecí markers.xml en 777, pero sigo recibiendo el error. Si cambio los directorios pasando a mysite, ¿no habría un problema de seguridad? ¿Algún consejo? Gracias. – Laxmidi

+0

Hola @Chris, cambié el chmod a 777 un nivel arriba. También utilicé un absolutepath en la máquina local en lugar de la ruta absoluta del host. ¡Ahora funciona! Gracias. – Laxmidi

+0

¡Gracias! En gran necesidad de esto: D – cwiggo

-3

[function.fopen]: failed to open stream

Si tiene acceso al archivo php.ini, que permite tratar fopen. Busque la línea respectiva y configurarlo para ser "en": & si en wp por ejemplo localhost/wordpress/function.fopen en el php.ini:

allow_url_fopen = off 
should bee this 
allow_url_fopen = On 

And add this line below it: 
allow_url_include = off 
should bee this 
allow_url_include = on 
+3

Esta respuesta es una tontería completa. En lugar de resolver el problema, introduce un agujero de seguridad. Si hubiera leído la pregunta a fondo, habría visto que desea abrir un archivo LOCAL: fopen ('markers.xml', 'w'); ¡Pero necesita allow_url_fopen = On solo para abrir archivos REMOTOS! Por ejemplo, para fopen ('http://example.com/....xml'); Por favor, consulte http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen – Elmue

Cuestiones relacionadas