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
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é
Désactivez l'hôte virtuel Apache par défaut en entrant la commande suivante: ::
Sudo a2dissite default
Accédez à votre répertoire personnel en entrant la commande suivante: ::
cd ~
Créez un dossier pour contenir votre site Web en entrant la commande suivante: ::
mkdir public
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}
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 ~
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
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
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>
Enregistrez les modifications dans le fichier de configuration de l'hôte virtuel en appuyant sur Control + x
, puis en appuyant sur y
.
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
Redémarrez Apache pour enregistrer les modifications. Entrez la commande suivante: ::
Sudo service Apache2 restart
Répétez les étapes 1 à 11 pour tous les autres sites Web que vous souhaitez héberger sur votre Linode.