Question

J'ai été impressionné par les screencasts pour Rails illustrant le serveur Web intégré et la base de données permettant le développement et les tests sur la machine locale. Comment faire en sorte qu'une instance d'Apache exécute un répertoire de projet sous la forme DocumentRoot et, éventuellement, serve les fichiers sur le port 8080 (ou quelque chose de similaire)?

La raison pour laquelle je pose cette question est parce que je vais essayer CodeIgniter, et j'aimerais l'utiliser pour plusieurs projets. Je préférerais ne pas encombrer le DocumentRoot de ma machine avec chacun d'eux. Des suggestions sur la manière de procéder aux migrations de bases de données sont également les bienvenues.

Merci pour vos réponses jusqu'à présent. Je dois préciser que je suis sous Mac OS X. Il semblerait que WAMP soit uniquement réservé à Windows. De plus, XAMPP semble être un excellent moyen d'installer Apache et de nombreux autres outils Web, mais je ne vois pas de moyen de charger une instance pour servir un répertoire de projet. Apache et PHP sont installés sur Mac OS X. Je cherche simplement un moyen de le faire servir un projet sur un port non standard.

Je viens de trouver MAMP Pro qui fait ce que je veux, mais un style plus minimaliste approche serait mieux si c'est possible. Quelqu'un a-t-il un fichier httpd.conf pouvant être édité et déposé dans un répertoire de projet?

De plus, désolé d’avoir simplement ajouté cette question à la migration de base de données. Ce que j'espère trouver, c’est quelque chose qui me permettra d’appliquer les modifications de schéma sur un serveur actif sans perdre les données existantes. Je suppose que cela est difficile et dépend fortement des facteurs environnementaux.

Était-ce utile?

La solution

Votre Mac est fourni avec un serveur Web Apache et une version de PHP. C'est l'une des principales raisons pour lesquelles les développeurs Web adorent cette plate-forme.

Puisque vous utilisez Code Igniter, vous voudrez utiliser PHP 5, la version par défaut de PHP fournie avec 10.5. Si vous utilisez une version antérieure du système d'exploitation, passez à entropy.ch et installez le paquet PHP5 fourni.

Ensuite, vous voudrez activer Apache. Dans le panneau des préférences de partage, activez le partage Web personnel. Cela démarrera Apache sur votre ordinateur local.

Ensuite, vous voudrez configurer de fausses URL de développement à utiliser pour vos sites. La longue tradition voulait que nous utilisions le faux TLD .dev pour cela (par exemple, stackoverflow.dev). Cependant, .dev est maintenant un réel TLD, vous ne voudrez probablement pas faire cela - .localhost semble être un standard de facto en émergence. Editez votre fichier / etc / hosts et ajoutez les lignes suivantes

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Ceci pointe les URL ci-dessus sur votre ordinateur local. La dernière étape est la configuration d’apache. Spécifiquement, activer l’hébergement virtuel nommé, activer PHP et configurer quelques hôtes virtuels. Si vous avez utilisé le paquet PHP entropie, l'activation de PHP sera déjà faite. Sinon, vous devrez modifier votre fichier http.conf comme décrit dans . En gros, vous supprimez les lignes qui vont charger le module PHP.

Chaque fois que vous apportez une modification à votre configuration Apache, vous devez redémarrer Apache pour que les modifications prennent effet. Dans une fenêtre de terminal, tapez la commande suivante

sudo apachectl graceful

Ceci redémarrera gracieusement Apache. Si vous avez fait une erreur de syntaxe dans le fichier de configuration, Apache ne redémarrera pas. Vous pouvez mettre en évidence des problèmes de configuration avec

sudo apachectl configtest

Donc, avec PHP activé, vous voudrez activer NamedVirtualHosts. Cela permettra à Apache de répondre à plusieurs URL. Recherchez la ligne suivante (ou similaire) dans votre fichier http.conf et décommentez-la.

#NameVirtualHost *  

Enfin, vous devrez indiquer à Apache où rechercher les fichiers de vos nouveaux hôtes virtuels. Vous pouvez le faire en ajoutant ce qui suit à votre fichier http.conf. REMARQUE: il est recommandé de décomposer les règles de configuration de ce type dans un fichier séparé et d'utiliser la directive include pour inclure vos modifications. Cela empêchera toute mise à jour automatique de supprimer vos modifications.

<VirtualHost *>
    DocumentRoot /Users/username/Sites/example.localhost
    ServerName example.localhost
    ServerAlias www.example.localhost
</VirtualHost>

Vous pouvez spécifier n'importe quel dossier en tant que DocumentRoot, mais je trouve pratique d'utiliser votre dossier Sites personnels, car il a déjà été configuré avec les autorisations appropriées pour inclure des fichiers.

Autres conseils

Désolé, Kyle, je n'ai pas assez de crédit pour répondre directement à votre commentaire. Mais si vous voulez que chaque projet soit servi sur un port différent, essayez de configurer votre configuration d’hôte virtuel exactement comme celle de Kelly ci-dessus (sans les commandes DNS), mais au lieu de 80, attribuez à chaque hôte virtuel son propre numéro de port, en supposant ajouté ce port à votre fichier ports.conf.

NameVirtualHost *

<virtualhost *:80>
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:81>
DocumentRoot /site2/documentroot
</virtualhost>

<virtualhost *:82>
DocumentRoot /site3/documentroot
</virtualhost>

<virtualhost *:83>
DocumentRoot /site4/documentroot
</virtualhost>

J'espère que cela vous aidera: /

Je télécharge également les derniers fichiers binaires pour chacun et les configure manuellement. Je trouve que le processus est simple, tant que vous en savez un peu sur la configuration d’Apache.

Sur ma machine de développement, la configuration d’Apache est basée sur le nom. hébergement virtuel . J'ai également un compte dyndns.org qui mappe mon domaine de développement sur mon ordinateur local. DynDNS fournit un domaine générique. Par conséquent, en utilisant des hôtes virtuels nommés, je peux facilement créer autant de sites (avec des racine du document) pour autant de domaines de développement que je le souhaite, tous exécutés à partir de la même instance Apache.

par exemple. La configuration Apache pour les hôtes virtuels pourrait être quelque chose comme

NameVirtualHost *:80

<virtualhost *:80>
ServerName site1.mydyndns.dyndns.org
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:80>
ServerName site2.mydyndns.dyndns.org
DocumentRoot /site2/documentroot
</virtualhost>

C’est le moyen le plus rapide et le plus simple pour moi de gérer facilement de nombreux sites de développement sur mon ordinateur local.

J'espère que cela a du sens.

Salut, Kelly.

Je n'utilise pas Macos, mais j'utilise Apache. Dans mon fichier de configuration apache (sur linux, il s'agit généralement de /etc/apache2/apache2.conf), recherchez une référence à un fichier appelé ports.conf. Recherchez ce fichier et ajoutez la ligne

Écoutez 8080

Ensuite, redémarrez le processus Apache. Après cela, vous devriez être en affaires. Je m'excuse par avance si cela ne fonctionne pas sur un mac:)

Vous pouvez utiliser un package d'installation très bas tel que XAMPP et l'exécuter. en tant qu'instance séparée. Il existe également de nombreux autres projets similaires.

Pour PHP, vous disposez de plusieurs packages de haute qualité pour déployer Apache + Mysql + PHP, tels que WAMP et XAMPP . Personnellement, je télécharge les derniers binaires de chacun et les installe manuellement pour avoir un contrôle plus fin. Il existe de nombreux tutoriels en ligne sur la façon de gérer cela.

Les migrations de bases de données doivent être simples - videz la base de données sur le serveur, soit en ligne de commande, soit via une interface telle que PHPMyAdmin et exportez-le de manière similaire (PHPMyAdmin est recommandé si vous n’avez aucune expérience de la ligne de commande Mysql).

Vous pouvez utiliser MAMP pro, mais la version gratuite est également un très bon choix. Obtenez-le ici: http://www.mamp.info/en/mamp.html

Je pourrais recommander l'utilisation d'un appareil virtuel LAMP distinct pour chaque environnement de développement que vous souhaitez expérimenter. Exécutez-les sur VMware Server ou VirtualBox.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top