Configuration d'un environnement de développement sous Ubuntu

Je suis un user de Windows depuis longtime. Récemment, j'ai appris JavaScript / PHP / mySql et j'ai pensé que Ubuntu Server serait le choix. Je vais quand même travailler sur Windows XP / 7, cependant. Voici mon idée

  • Machine de développement (XP / 7): Où je fais toute la programmation. Les IDE seront Spket (JavaScript) et Aptana (PHP). Avec d'autres logiciels comme PhotoShop, Office …
  • Serveur (Ubuntu Lucid): C'est là que je stocke mes données, exécute mon HTTP, email, server FTP … Ce sera un VPS.

Donc simplement, je vais travailler avec Windows en tant que client (IDE, Client Email Software, FTP …) et Ubuntu en tant que server pour gérer mes données (Mercurial, Apache, mySql …)

Je suis nouveau, je me request s'il y a déjà quelqu'un qui fait ça et travaille avec ce mélange de client / server. Quels sont les inconvénients possibles de cette méthode? Est-ce que travailler sur FTP avec un VPS est une bonne idée ou pas?

Je suis un développeur solo, je pensais ces derniers jours à la meilleure approche pour travailler avec le cloud. Je fais du développement web. S'il vous plaît répondre avec tout ce qui concerne et utile, j'apprécierais beaucoup de développeurs qui écriront long post sur leur environnement de travail. Je n'ai pas d'idée précise en tête, je cherche juste à faire mieux.

Je vous remercie!

Certes, beaucoup de gens ont utilisé Ubuntu Server avec des clients Windows. Le Guide du server Ubuntu couvre à peu près tout ce que vous voulez faire.

Voici quelques commentaires sur votre configuration proposée:

  • Ditch FTP. Utilisez plutôt SSH. Personnellement, j'appendais également que vous devez configurer l'authentification par key et désactiver l'authentification par mot de passe. Voir cette page pour de l'aide.

  • Je ne vois aucune sorte de solution de sauvegarde mentionnée. Assurez-vous d'avoir des sauvegardes régulières.

  • Pensez à Git. Je voudrais utiliser Git plutôt que Mercurial, mais c'est une preference personnelle.

  • Pensez à la security dès le début – surtout si vous allez faire face au Web. Encore une fois, voir (1). Vous n'avez pas besoin d'être un expert en security, mais vous devriez au less considérer ce qui suit:

    1. Utilisez un pare-feu. Avec Ubuntu Server, cela est facile à faire en utilisant ufw et dont on parle dans le guide.
    2. N'exécutez pas les services dont vous n'avez pas besoin. Plus précisément, je restrais à l'écart de choses comme phpmyadmin.
    3. Ne fournissez pas d'access ou de privilèges qui ne sont pas nécessaires aux autres.
    4. Pensez à l'audit et à la journalisation.

Un commentaire plus général que je ne veux pas pousser trop fort est que vous pourriez envisager de transférer votre process de développement sur Linux aussi. D'après mon expérience, les outils disponibles pour Linux rendent le travail avec un server distant beaucoup plus fluide.

Je ne vois pas la nécessité pour un développeur web d'utiliser Windows pour le développement. Bien que vous vouliez toujours une plate-forme Windows pour les tests. Lequel de vous n'incluez pas dans votre list d'outils. Vous devriez avoir une sorte d'environnement de test automatisé pour plusieurs plates-forms différentes, mais cela peut être fait dans une machine virtuelle.

Je n'utiliserais pas un IDE comme Spket mais j'apprendrais un des éditeurs de base et (généralement parlant) hautement programmables: emacs, vi, ou eclipse.

Je voudrais aussi utiliser Mercurial du côté client pour tout le code.

Regardez Samba et ici – ceux-ci devraient répondre à beaucoup de vos besoins. Apache (fourni en standard avec ubuntu) pour les besoins du server web. Si vous devez avoir FTP, je suggère sftp

Quant aux sauvegardes – regardez ceci

Je trouve cygwin , très utile pour parler aux servers Linux. Vous pouvez utiliser rsync, ssh, scp et tous ces outils pour copyr des files d'avant en arrière. De plus, vous allez bientôt commencer à vous habituer aux outils Unix, de sorte que vous aurez probablement besoin de ces outils sur votre machine de travail.

Certaines personnes préfèrent utiliser du mastic , mais je trouve que cygwin + mintty + openssh est un choix beaucoup plus agréable, car il fonctionne avec les mêmes concepts que les outils linux natifs (ssh-agent, par exemple).

Dernière remarque, et certaines personnes peuvent ne pas être d'accord avec moi sur ce point, si vous voulez copyr des files entre cygwin et linux, je vous recommand de désactiver les ACL en éditant /etc/fstab .