web-dev-qa-db-fra.com

autorisations public_html pour le développement local

Je sais que cette question a été soulevée à quelques reprises, mais je n'arrive pas à trouver une réponse définitive à mon problème, alors s'il vous plaît, supportez-moi. J'ai installé Ubuntu Server 12.04 dans VirtualBox pour le développement et les tests PHP (Drupal et d'autres sites PHP utilisant le framework Yii). Ma question est en 3 parties ...

1) Si je crée un dossier public_html sous /home/myuser, dois-je attribuer la propriété de ce dossier à Apache www-data groupe? Si tel est le cas, y a-t-il des autorisations spécifiques que je devrais définir? 755? (Au fait, je suis ce guide pour créer le répertoire public_html et configurer plusieurs hôtes virtuels par site que je crée et teste)

J'avais précédemment tous mes sites sous /var/www, mais je me suis heurté à des erreurs d'autorisations refusées chaque fois que j'essayais de le sFTP, via FileZilla ou PhpStorm. C'est ce que j'avais fait précédemment:

Sudo chgrp www-data /var/www
Sudo chmod -R 775 /var/www
Sudo chmod -R g+s /var/www
Sudo usermod -G www-data [my_ftp_user]

2) La deuxième partie de ma question est la suivante: Si je crée mon projet PHP et ses fichiers sous Windows via PhpStorm, puis télécharger via sFTP, les autorisations seront-elles affectées?

3) Une fois que je suis satisfait de mon projet développé, serait-il souhaitable de le déplacer et de le tester sous /var/www pour voir comment il serait juste dans un environnement de production-ish?

J'apprécierais vraiment l'aide et les conseils ici. J'apprends plus au fur et à mesure, mais traiter avec des fichiers et des autorisations Linux est un tout nouveau match pour moi! Je vous remercie

3
maGz

J'utilise habituellement ce guide de linode pour créer un environnement de développement local: http://library.linode.com/hosting-website

Le seul ajout personnel que j’ajoute à cela est que parfois, je veux tester des chemins d’URL et des choses de ce genre, alors je trompe mon ordinateur en lui faisant croire que localhost est www.example.com.

Sudo nano /etc/hosts

Ajouter: 127.0.0.1 example.com N'oubliez pas de l'enlever quand vous allez vivre!

Remarque: directement copié

  1. Désactivez l'hôte virtuel Apache par défaut en entrant la commande suivante: ::

    Sudo a2dissite default

  2. Accédez à votre répertoire personnel en entrant la commande suivante: ::

    cd ~

  3. Créez un dossier pour contenir votre site Web en entrant la commande suivante: ::

    mkdir public

  4. Créez un ensemble de dossiers dans public pour stocker les fichiers, les journaux et les sauvegardes de votre site Web. Entrez la commande suivante en remplaçant example.com par votre nom de domaine: ::

    mkdir -p public/example.com/{public,log,backup}

  5. Configurez votre répertoire personnel pour qu'il soit lisible et accessible à tous les utilisateurs du système en entrant la commande suivante: ::

    Sudo chmod a+rx ~

  6. Définissez le répertoire public (ainsi que tous les fichiers qu'il contient) pour qu'il soit lisible et accessible à tous les utilisateurs du système en entrant la commande suivante: ::

    Sudo chmod -R a+rx ~/public

  7. Créez le fichier hôte virtuel de votre site Web en entrant la commande suivante. Remplacez example.com par votre nom de domaine: ::

    Sudo nano /etc/Apache2/sites-available/example.com

  8. Il est maintenant temps de créer une configuration pour votre hôte virtuel. Nous avons créé quelques paramètres de base pour commencer. Copiez et collez les paramètres indiqués ci-dessous dans le fichier hôte virtuel que vous venez de créer. Remplacez example_user par votre nom d'utilisateur et example.com par votre nom de domaine.

.. coloriser :: Apache

# domain: example.com
# public: /home/example_user/public/example.com/

<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin [email protected]
  ServerName  www.example.com
  ServerAlias example.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/example_user/public/example.com/public

  # Log file locations
  LogLevel warn
  ErrorLog  /home/example_user/public/example.com/log/error.log
  CustomLog /home/example_user/public/example.com/log/access.log combined
</VirtualHost>
  1. Enregistrez les modifications dans le fichier de configuration de l'hôte virtuel en appuyant sur Control + x, puis en appuyant sur y.

  2. Créez un lien symbolique vers votre nouveau répertoire public en entrant la commande suivante. Remplacez example.com par votre nom de domaine: ::

    Sudo a2ensite example.com
    
  3. Redémarrez Apache pour enregistrer les modifications. Entrez la commande suivante: ::

    Sudo service Apache2 restart
    
  4. Répétez les étapes 1 à 11 pour tous les autres sites Web que vous souhaitez héberger sur votre Linode.

3
Brandon Bertelsen