2009-02-09 9 views
24

Simple question, mais pour une raison quelconque, je n'ai pas trouvé la réponse exacte sur Google:Comment puis-je créer un dossier HTML public dans Ubuntu?

J'ai une nouvelle installation Ubuntu sur Slicehost, et je voudrais créer un répertoire public dans mon répertoire personnel pour un simple site Web contenant un tas de fichiers HTML statiques. Comment puis-je faire cela? Est-ce juste une question de taper mkdir public_html et de définir les autorisations, ou y a-t-il un moyen plus propre? (Je me souviens que dans le passé j'avais des problèmes où chaque fois que je copiais un fichier dans mon répertoire public_html, je devais définir manuellement ses permissions, ce qui était assez frustrant.)

+1

Avez-vous installé Apache? –

+0

Oui, j'ai suivi les instructions ci-dessous et tout a fonctionné. Merci tout le monde. Désolé si la question est hors sujet. Vous pouvez fermer cette question si vous le souhaitez. – RexE

Répondre

31

En supposant que vous avez déjà installé apache, procédez comme suit:

sudo a2enmod userdir 
sudo service apache2 reload 

La première commande permet au mod userdir apache, qui fait exactement ce que vous voulez. La seconde recharge les configurations apache pour qu'elles utilisent la nouvelle configuration.

Pour installer apache2:

sudo apt-get install apache2 

Bien sûr, vous aurez également besoin de vous assurer que les autorisations sur votre dossier public_html permettent à l'utilisateur www-data pour voir les fichiers là-bas - 755 fonctionne habituellement bien. Pour ce faire:

mkdir ~/public_html 
chmod -R 755 ~/public_html 

Cela récursive (R) passent par votre public_html et définissez les autorisations à 755 (propriétaire rwx, et les deux groupes et d'autres r-x, r-x).

+0

mais où dois-je mettre le dossier public_html? sous/var/www /? – Dejell

+1

Placez le fichier public_html dans le répertoire personnel de l'utilisateur comme indiqué ci-dessus 'mkdir ~/public_html'. – Cyrille

+0

quand j'ai essayé pour $ sudo a2enmod userid ,, il me donne une erreur Module ID utilisateur ne quitte pas! ,, mais je l'ai créé dans mon répertoire personnel. comment le résoudre? – jazzz

2

Vous devez utiliser mod_userdir pour Apache, Dans le cas contraire, vous devez définir des liens symboliques à partir de /var/www/ ou de n'importe où.

Votre problème d'autorisation est dû au fait qu'Apache n'a pas accès en lecture à vos fichiers. Vous devez autoriser l'accès en lecture à www-data (ou à tout autre utilisateur, spécifique à la distribution).

9

Les autres réponses sont sur la bonne voie avec mod_userdir, mais en utilisant qui donnera à votre site Web l'URL de base http://www.yourdomain.com/~username/ - par exemple, un fichier /home/username/public_html/index.html seraient accessibles http://www.yourdomain.com/~username/index.html. Si vous voulez que vos fichiers soient accessibles sous la racine de domaine, comme http://www.yourdomain.com/index.html par exemple, alors vous aurez besoin de mettre la directive

DocumentRoot /home/username/public_html 

dans le fichier de configuration Apache. Par ailleurs, ce genre de question est plus adapté aux Forums Slicehost.

+0

et si je veux mettre les fichiers sous/var/www/public_html? – Dejell

+0

Utilisez simplement cela comme racine du document à la place. –

Questions connexes