web-dev-qa-db-fra.com

Devrais-je faire un lien symbolique entre mon répertoire / var / www et mon répertoire personnel?

Je viens d'installer Ubuntu Server 10.04 avec une configuration LAMP. Je souhaite héberger un site Web sur ce site, mais je ne sais pas quel est le meilleur moyen d'obtenir/de modifier mes fichiers sur le serveur. Googling offre de nombreuses options mais je ne sais pas quelle est la meilleure?

À moins d'une meilleure option, j'aimerais créer les pages sur un autre PC (Windows ou Linux) et utiliser SFTP pour synchroniser les modifications sur le serveur - mais je le fais dans un dossier comportant un lien symbolique dans ~/ou en modifiant les droits sur le dossier/var/www /?

20
Craig

Chaque configuration est différente. Pour moi, j'ai beaucoup d'utilisateurs sur un serveur qui hébergent chacun des sites Web. Pour vous, vous n'aurez probablement pas besoin de créer plus d'un utilisateur sur le système. Toutefois, si vous gérez plusieurs sites Web sur ce serveur, cette configuration vous aidera à gérer, configurer et déboguer chaque domaine plus facilement qu'une configuration standard de LAMP. Afin que cela se produise, j'utilise plusieurs périphériques Apache pour contourner les erreurs d'autorisation.

Premièrement, voici la structure de document que j'utilise:

/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs

Chaque utilisateur a son propre compte avec un dossier de domaines (que j’ai ajouté à /etc/skel afin qu’il soit créé à chaque fois. Chaque domaine a son propre dossier dans le dossier domains avec un dossier html (j’en ai mes raisons, principalement pour que les domaines puissent avoir Fichiers Web en dehors du domaine public.) N'hésitez pas à modifier cette structure comme bon vous semble, n'oubliez pas de conserver ces modifications tout au long de cet article.

Deuxièmement, j'héberge beaucoup de PHP sites, j'utilise donc suPHP dans ma configuration. Par défaut, le package d'archive standard ne dispose pas de l'indicateur de compilation approprié, ce qui se traduit par une version moins sécurisée de suPHP. J'ai créé mon propre paquet suPHP que j'utilise sur mes serveurs, les instructions d'installation ci-dessous. suPHP vous permet de définir les scripts utilisateur PHP à exécuter (entre autres: php.ini personnalisé pour chaque site, etc.). J'active également suExec pour Apache, éliminant ainsi la nécessité de détenir un quelconque droit de propriété sur l'utilisateur www-data (un utilisateur que je méprise).

Tout d’abord, assurez-vous d’avoir Apache et tous les autres services installés sur votre serveur. Assurez-vous qu'ils travaillent au moins. Après cela, je recommande l'installation de suphp-common et le module requis libapache2-mod-suphp (Plus d'informations: Que sont les PPA et comment les utiliser? ). Ensuite, après l'installation, activez suPHP et suexec à l'aide de a2enmod

Sudo a2enmod suphp
Sudo a2enmod suexec
Sudo a2dismod php5

Sudo /etc/init.d/Apache restart

Ensuite viendra le fichier de configuration. J'ai créé divers outils qui génèrent automatiquement les fichiers de configuration chaque fois que j'ajoute un nouveau site. Cependant, voici le modèle de base que j'utilise:

<VirtualHost *:80>
    ServerAdmin [EMAIL]
    ServerName [DOMAIN]
    ServerAlias www.[DOMAIN] [DOMAIN]
    DocumentRoot /home/[USER]/domains/[DOMAIN]/html

    <Directory /home/[USER]/domains/[DOMAIN]>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
    </Directory>

    ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined

    SuexecUserGroup [USER] [USER]

    suPHP_UserGroup [USER] [USER]
    suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>

Ceci configure la journalisation pour ce domaine, la racine du document et toutes les autres nécessités de base pour que le domaine fonctionne. Je place ces fichiers dans /etc/Apache2/sites-available/ généralement nommé [USER]-[DOMAIN] et les active/désactive avec a2ensite comme suit:

Sudo a2ensite [USER]-[DOMAIN]
Sudo a2dissite [USER]-[DOMAIN]

Après chaque modification des fichiers de configuration, Apache devra être rechargé avec

Sudo /etc/init.d/Apache reload

Bien que cela puisse sembler beaucoup de configurer la quantité de flexibilité gagnée, à mon avis, dépasse de loin le temps d'installation. Bien que vous n'ayez besoin que d'un serveur Web à utilisateur unique, à l'avenir, si vous souhaitez autre chose qu'un serveur Web à utilisateur unique, vous devrez effectuer d'autres actions (ou simplement supprimer la sécurité ensemble) pour le faire.

21
Marco Ceppi

Sftp est très facile à installer. Installez simplement le paquet openssh-server et vous aurez sftp. Assurez-vous que votre utilisateur a un bon mot de passe si vous pouvez y accéder depuis Internet. (8+ caractères, pas un mot du dictionnaire, a des symboles et des nombres).

Pour les autorisations, je le fais habituellement
Sudo adduser <username> www-data
Sudo chown -R www-data:www-data /var/www
Sudo chmod -R g+rw /var/www
Vous devriez alors pouvoir poster des pages en vous connectant avec sftp (en utilisant votre nom d’utilisateur et votre mot de passe), puis en allant dans le dossier/var/www et en y déposant vos fichiers.

11
Azendale

J'utilise webdav. C'est très facile à installer sur Ubuntu Server. Si vous avez installé Apache, vous avez presque terminé. Juste Sudo a2enmod dav; service Apache2 restart. Vous devrez faire une petite configuration de votre site virtuel. Voici un exemple que j'utilise en production:

<VirtualHost *>
    ServerName webdav.mysite.com
    ServerAdmin [email protected]

    DocumentRoot /srv/mysite
    DAVLockDB /var/lock/Apache2/DAVLock
    <Directory /srv/mysite>
        Order allow,deny
        Allow from all
    Dav On
    DAVMinTimeout 600
    DAVDepthInfinity On
AuthName "mysite login"
AuthType Basic
AuthUserFile /srv/mysite/.htpassword
Require valid-user

    </Directory>
php_admin_value engine off
</VirtualHost>

<VirtualHost *>

    ServerName mysite.com
    ServerAlias *.mysite.com
    ServerAdmin [email protected]

    DocumentRoot /srv/mysite/www
    <Directory /srv/mysite/www>
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /srv/mysite/cgi-bin/
</VirtualHost>

Vous pouvez placer ceci dans/srv/etc/Apache2/sites-available/mysite puis faites Sudo a2ensite mysite; Sudo service Apache2 reload.

Ce qui se passe ici, c'est que vous avez créé deux sites virtuels. L'un est www.monsite.com et l'autre est webdav.mysite.com. PHP a été désactivé sur webdav.mysite.com, ce qui est important.

Vous pouvez maintenant accéder à votre site via http sur Ubuntu, Windows et MacOS. Tous les trois ont construit un support webdav. Voici les instructions sur ajouter un emplacement réseau Webdav dans Ubunt .

1
newz2000

Je donnerais des autorisations d'écriture à/var/www à www-data et ajouterais votre utilisateur à ce groupe. De cette façon, il serait facile de contrôler quels utilisateurs peuvent écrire dans ce répertoire.

Sudo chgrp -R www-data /var/www
Sudo chmod g+w -R /var/www 
usermod -a -G www-data your-user
0
santiagozky