2009-02-09 25 views
24

Pregunta simple, pero por alguna razón no pude encontrar la respuesta exacta en Google:¿Cómo puedo crear una carpeta HTML pública en Ubuntu?

Tengo una nueva instalación de Ubuntu en Slicehost, y me gustaría hacer 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 donde cada vez que copiaba un archivo en mi directorio public_html, tenía que configurar manualmente sus permisos, lo cual era bastante frustrante.)

+1

¿Has instalado apache? –

+0

Sí, seguí las instrucciones a continuación y todo funcionó. Gracias a todos. Lo siento si la pregunta está fuera de tema. Puede cerrar esta pregunta si lo desea. – RexE

Respuesta

31

Asumiendo que ya ha instalado Apache, haga lo siguiente:

sudo a2enmod userdir 
sudo service apache2 reload 

El primer comando permite al userdir apache mod, que hace exactamente lo que quiere. 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 necesita asegurarse de que los permisos en su carpeta public_html permiten al usuario www-data para ver los archivos allí - 755 por lo general funciona bien. Para ello:

mkdir ~/public_html 
chmod -R 755 ~/public_html 

Esto recursivamente (-R) ir a través de su public_html y establezca los permisos a 755 (rwx propietario, y ambos grupos y otra r-X, R-x).

+0

, pero ¿dónde debo poner la carpeta public_html? debajo/var/www /? – Dejell

+1

Coloque el archivo public_html en el directorio de inicio del usuario como se muestra arriba 'mkdir ~/public_html'. – Cyrille

+0

cuando probé para $ sudo a2enmod userid ,, me está dando un error ¡El ID de usuario del módulo no se cierra! ,, pero lo he creado en mi directorio de inicio. ¿como resolverlo? – jazzz

2

Necesita usar mod_userdir para Apache, de lo contrario, debe configurar enlaces simbólicos desde /var/www/ o donde sea.

El problema de los permisos se debe a que Apache no tiene acceso de lectura a tus archivos. Debe permitir el acceso de lectura a www-data (o lo que sea que el usuario sea, específico de la distribución).

9

Las otras respuestas están en el camino correcto con mod_userdir, pero el uso que se le dará a su sitio web de la URL base http://www.yourdomain.com/~username/ - por ejemplo, un archivo /home/username/public_html/index.html serían accesibles como http://www.yourdomain.com/~username/index.html. Si desea que sus archivos sean accesibles en la raíz del dominio, como http://www.yourdomain.com/index.html por ejemplo, entonces usted 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.

+0

¿Qué sucede si quiero poner los archivos en/var/www/public_html? – Dejell

+0

Solo use eso como la raíz del documento en su lugar. –

Cuestiones relacionadas