• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

1.7K
Views
acceso denegado - PHP move_uploaded_file - Ubuntu LAMP /var/www

Me doy cuenta de que hay algún tipo de problema con los permisos en mi carpeta tmp o en la carpeta de imágenes que creé en la carpeta /var/www. Sé que /var/www inicialmente tiene acceso de root. He estado siguiendo algunos tutoriales en línea para tratar de solucionar este problema y he cambiado mis permisos a quién sabe qué durante la última hora más o menos.

Recibo este error cuando intento cargar un archivo desde un formulario HTML usando PHP/MySQL:

 Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot move uploaded file or something beavis

Así que creo que los permisos en la carpeta /var/www/images son incorrectos o los permisos en la carpeta tmp son root y el kernel de ubuntu no permite que el script php se mueva de este archivo raíz a la carpeta de imágenes que tiene permisos. de mi cuenta de usuario que yo sepa y está en el grupo nadie.

Estoy bastante perdido, cualquier ayuda es definitivamente apreciada.

Captura de pantalla de Ubuntu Linux gnome de los permisos de una carpeta

Arriba puede ver una imagen de los permisos en la carpeta de imágenes a la que estoy tratando de mover el archivo del directorio tmp.

Ah, y aquí está el script PHP que falla:

 if (!empty($screenshot)) { move_uploaded_file($_FILES['screenshot']['tmp_name'], $target) or die (' cannot move uploaded file or something beavis');

Respetuosamente,

usuario

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

trabajando con el mod USER DIR

Si se trata de una máquina de desarrollo, y creo que lo es, no intente usar /var/www (siempre habrá problemas de permisos) Intente usar el directorio de usuario

mantendrás todos tus archivos y proyectos en tu casa y no habrá problemas de permisos.

trabajando con el directorio raíz de Apache

Bien, si no puede trabajar con el directorio de usuario, debe configurar un sistema de archivos como este:

1. Averigüe el nombre de usuario del propietario de apache. Si usa Ubuntu, debería ser www-data. Ve a la terminal y escribe:

$ ps aux | grep apache

Debería obtener algo como esto a continuación. La primera columna es el nombre de usuario.

www-data 2070 0.0 0.0 463244 7788 ? S sty25 0:00 /usr/sbin/apache2 -k start

2. Descubra el grupo de usuarios de apache. Nuevamente terminal, escriba:

$ sudo groups www-data

Debería obtener algo como esto a continuación. La segunda columna es el nombre del grupo.

www-data : www-data

3. Establezca el usuario y el grupo de propietarios DERECHOS para el directorio raíz de apache:

$ sudo chown -R www-data:www-data /var/www/

4. Establezca los privilegios DERECHOS para el directorio raíz de apache:

$ sudo chmod -R 775 /var/www/

Ahora ha limpiado su sistema e intentamos arreglar su usuario para que tenga acceso al directorio /var/www.

5. Agregue el grupo apache a su usuario:

$ sudo usermod -a -G www-data {YOUR_USER_NAME}

¡ADVERTENCIA! ¡No olvides - un interruptor! de esta manera, agrega un nuevo grupo a la lista existente y no reemplaza la lista de grupos antiguos con una nueva.

Ahora tiene acceso de lectura/escritura a los archivos ubicados en el directorio raíz de apache. Y necesitamos decirle a apache que los nuevos archivos deben ser legibles/escribibles para los miembros del grupo

6. Agregue el comando umask a la configuración del entorno apache:

$ sudo echo umask 002 >> /etc/apache2/envvars

o con editor gráfico:

$ gksudo gedit /etc/apache2/envvars

y coloque umask 002 como última línea en este archivo

7. Voilá

$ sudo apache2ctl restart

¡Buena suerte!

about 3 years ago · Santiago Trujillo Report

0

Esto resolvió mi problema: http://ubuntuforums.org/showthread.php?t=1842090&s=8b97ec72fe7cd753910f488329a90f0f&p=11239688#post11239688

tl:dr - Escribí esto: sudo chown -R www-data:www-data /var/www

No creo que haya sido una combinación de intentar chmod el chown del directorio tmp y esto. Creo que solo está cambiando los permisos en la carpeta /var/www donde se guardan todos los archivos LAMP.

Ahora el script PHP funciona y lanza el archivo de imagen en el directorio que hice. Sería más fácil si Ubuntu instalara servidores de prueba como esta pila LAMP en el directorio de usuario sin tener que aprender los permisos de archivo como si estuviera protegiendo mis archivos de los submarinos nazis.

about 3 years ago · Santiago Trujillo Report

0

prueba esto: sudo chown -R 777 /var/www/images

debe otorgarle al archivo un permiso público 777 O 755 para que el archivo se pueda cargar en el directorio especificado, es solo un permiso

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error