linux - ver - que es el usuario www data
¿Cómo puedo crear una carpeta HTML pública en Ubuntu? (3)
Pregunta simple, pero por alguna razón no pude encontrar la respuesta exacta en Google:
Tengo una nueva instalación de Ubuntu en Slicehost, y me gustaría crear un directorio público en mi directorio de inicio para un sitio web simple que contiene un montón de archivos HTML estáticos. ¿Cómo hago esto? ¿Es solo cuestión de escribir mkdir public_html
y establecer los permisos, o hay una manera más limpia? (Recuerdo que en el pasado tuve problemas por los cuales cada vez que copiaba un archivo en mi directorio public_html, tenía que configurar manualmente sus permisos, lo cual era bastante frustrante).
Necesita usar mod_userdir para Apache, de lo contrario, necesita configurar enlaces simbólicos desde /var/www/
o donde sea.
Su problema de permisos se debe a que Apache no tiene acceso de lectura a sus archivos. Debe permitir el acceso de lectura a www-data
(o lo que sea que el usuario sea, distro-specific).
Suponiendo que ya ha instalado apache, haga lo siguiente:
sudo a2enmod userdir
sudo service apache2 reload
El primer comando habilita el mod de apache userdir, que hace exactamente lo que desea. El segundo recarga las configuraciones de Apache para que comience a usar la nueva configuración.
Para instalar apache2:
sudo apt-get install apache2
Por supuesto, también necesitarás asegurarte de que los permisos en tu carpeta public_html permitan que el usuario de www-data vea los archivos allí; por lo general, 755 funciona bien. Para hacer esto:
mkdir ~/public_html
chmod -R 755 ~/public_html
Esto recorrerá de forma recursiva (-R) su public_html y establecerá los permisos en 755 (propietario rwx, y ambos grupos y otros rx, rx).
Las otras respuestas están en el camino correcto con mod_userdir
, pero usar eso le dará a su sitio web la URL base http://www.yourdomain.com/~username/
/home/username/public_html/index.html
- por ejemplo, un archivo /home/username/public_html/index.html
sería accesible como http://www.yourdomain.com/~username/index.html
. Si desea que sus archivos estén accesibles en la raíz del dominio, como http://www.yourdomain.com/index.html
por ejemplo, tendrá que poner la directiva
DocumentRoot /home/username/public_html
en el archivo de configuración de Apache.
Por cierto, este tipo de pregunta es más adecuada para los foros de Slicehost.