2010-08-24 4 views
1

J'ai besoin de conseils si cette configuration est correcte. J'ai un serveur de dev personnel qui exécute Ubuntu. J'ai complètement installé Ubuntu avec git, django, mod_wsgi et apache2 en cours d'exécution. Je vais développer en utilisant mon Macbook Pro.Conseils de configuration de développement requis - Django + Apache2 + mod_wsgi - sur Mac et Ubuntu Dev Server

Mon idée était d'avoir une structure de répertoires identique sur les deux machines hors racine web.

Dis:

Mac: /path/to/webroot/ 
         ...project1/ 
         ...project2/ 

Ubu: /home/me/webroot/ 
         ...project1/ 
         ...project2/ 

Et utiliser git pour lancer le repo sur le serveur et Ubu cloner sur mon mac et commencer à développer. De cette façon, je vais atteindre:

  1. Plusieurs instances de code. Donc, si Ubuntu tombe en panne, j'ai le code sur Mac
  2. Je vais avoir le code en local sur mon Mac et cela aidera si je suis en déplacement.

S'il vous plaît avis si c'est une bonne pensée ou a besoin d'amélioration.

Répondre

1

Ça me semble OK.

Instances de code multiples. Donc, si Ubuntu se bloque, j'ai le code sur Mac

Si vous voulez être paranoïaque supplémentaire (comme je suis), vous devriez penser à une troisième place où votre code est disponible. Une solution git comme github plus quelque chose comme Dropbox pourrait être utile de méditer.

+0

Allez avec github (pour git), bitbucket (Mercurial) ou haricot (svn). Dropbox est génial, mais n'a pas été construit pour le contrôle de version du code source –

+0

@stevejalim: J'utilise à la fois github et Dropbox. Tous mes actifs statiques, non contrôlés par la version ainsi que les documents de projet partagés (temporairement) vont dans un dossier Dropbox. –

+0

Merci. J'ai une question: est-ce une bonne idée que mon macbook pro devrait aussi avoir une configuration d'apache + mod_wsgi + django qui me permet d'exécuter le même code sur mon macbook? Si oui, ai-je besoin d'installer une nouvelle copie d'Apache sur Macbook ou est-ce que je peux avoir quelque chose comme XAMPP + mod_wsgi? –

1

Si vous utilisez Django, pourquoi s'embêter à installer Apache. Django est livré avec un environnement de développement excellent . Je viens d'utiliser: manage.py runserver

Vous atteignez vos 2 points, en ayant juste des clones git sur le serveur et sur votre ordinateur portable pour le travail. Pas besoin d'Apache.

Deux notes:

  1. Depuis que je suis tombé sur un bug qui a eu lieu sur MySQL, mais n'a pas sqlite, je teste projets sur le même dbbackend avant de déployer. Mais pour le développement sur l'ordinateur portable , tout ce dont j'ai besoin est Python, Django et sqlite. J'essaie d'utiliser le même Python que sur le serveur de déploiement. J'ai déployé sur "Enterprise" distribution qui signifie anciennes ("stables") versions, qui manquent nouvelles fonctionnalités . virtualenv aide à garder les choses séparées.

Ces deux peuvent être résolus en ajoutant simplement un déploiement « test » supplémentaire de votre projet sur le serveur pour un dernier TestRun sur la même plate-forme juste avant mises à jour. PS: Si cela ne vous dérange pas d'installer et de configurer le logiciel supplémentaire, pourquoi ne pas tout installer et installer une machine virtuelle Ubuntu dans un virtualbox. Vous pouvez même faire de votre serveur principal une VM et de temps en temps prendre un instantané de l'image sur la route ...

modifier: runserver écoutera sur le port 8000 localhost. Si vous voulez vous y connecter à partir d'autres hôtes, utilisez manage.py runserver 0.0.0.0:8000 pour écouter sur 8000 sur tous les ip-addresser ou, si vous craignez de transmettre des informations aux snoopers, utilisez ssh -L8000:127.0.0.1:8000 <ubuntu-server> pour tunnel 8000 sur localhost (votre client) à 8000 sur localhost (votre serveur) via ssh. Celui qui correspond à vos besoins.

+0

'manage.py runserver' J'ai essayé cette commande sur le serveur Ubuntu que j'ai mais je n'ai pas pu accéder au serveur dev de python par : 8000 pour une raison quelconque. Si le port est différent, il ne devrait pas y avoir de conflit. Par conséquent, j'ai décidé d'aller à Apache. –

+0

J'aime l'idée de virtualEnv. Bien que, je ne veux pas que les machines virtuelles fonctionnent sur mon Macbook. J'ai VMWare mais je l'utilise à peine. Je pense que cela accélère la mort de mon disque dur. lol –

+1

Virtualenv n'est pas seulement génial pour imiter l'environnement de déploiement sur votre dev-machine, il peut être utile lorsque vous avez différents projets qui utilisent différentes versions d'applications et qui ont des dépendances de module différentes. –

Questions connexes