Question

En quelques mois, je commence un projet en PHP et j’hésite à faire comme d’habitude: développer sur ma machine Windows Vista 64bits. Comme je connais peu de choses sur Linux, je pense que cela peut être un bon moyen d’apprendre en travaillant sur une distribution Linux.

Pensez-vous que c'est une bonne idée ou non? je lancerais une VirtualBox avec Ubuntu (sur mon Vista64bits). Je pensais installer XAMPP pour pouvoir développer en PHP.

Si vous pensez que c'est une bonne idée, n'hésitez pas à me suggérer un tutoriel sur ce que je devrais savoir avec la virtualisation d'un système d'exploitation ou de Linux / dev.

Mettre à jour J'ai construit de nombreux sites Web en PHP avec Windows, la question est de savoir si c'est un bon moyen de commencer à apprendre Linux en le développant via une machine virtuelle? J'ai 4 béliers, ça va être lisse si j'installe Eclipse dans la machine virtuelle? etc.

Était-ce utile?

La solution

Vous devriez vraiment développer sur la même plateforme que celle que vous allez déployer. Je ne dis pas qu'il est mauvais de faire autrement, mais cela peut vous épargner un peu de peine à long terme. OTOH, vous apprendrez peut-être plus vite les différences de plate-forme de cette façon. La question principale est donc la suivante: voulez-vous avoir un système de production fonctionnant dès que possible sans trop de maux de tête? Ou, vous voulez passer du temps et faire des efforts pour apprendre à développer des outils multiplateformes?

Et oui, il y a des différences. Par exemple, les noms de fichiers sensibles aux majuscules et aux minuscules. Ensuite, certaines fonctions PHP utilisent des fonctions C natives ayant une implémentation différente. Par exemple, printf () ne produit pas la même quantité d’espace pour certains types. La résolution de la mesure du temps (millisecondes vs microsecondes) peut être différente, etc. Vous avez alors différentes manières de gérer les autorisations du système de fichiers. Ce ne sont là que quelques-uns des problèmes récents dont je me souviens par coeur.

Autres conseils

PHP devrait être le même sur toutes les plates-formes. Par conséquent, l'emplacement où vous développez n'a pas d'importance.

Cependant, d'après mon expérience et mes observations, plus de sites sous PHP fonctionnent sous Linux que Windows.

Obtenir la configuration d'Apache et de PHP sous Ubuntu ou Fedora est un jeu d'enfant, et tout tester est également très simple.

De plus, lorsque vous allez mettre en ligne votre site, sur quelle plate-forme il sera exécuté? Je préfère développer sur la plate-forme sur laquelle il s'exécutera chaque fois que possible.

Personnellement, je ne pense pas que vous utilisiez une machine virtuelle pour une production locale. Seriez-vous également en train d'exécuter votre IDE à l'intérieur de la machine virtuelle?

Si vous connaissez suffisamment les pièges de la transition entre les environnements Windows et Linux (tels que la sensibilité à la casse et les autorisations), vous ne devriez pas rencontrer de problèmes de développement sous Windows et de déploiement sous Linux.

Travailler sur une distribution Linux est sans aucun doute le moyen le plus simple de l’apprendre. Et mettre en place des serveurs et des travaux de développement est un excellent début.

La virtualisation de Linux est également très facile. Je l'ai fait plusieurs fois et c'est vraiment obieux. En outre, cette méthode vous facilitera l’utilisation de Linux, ce qui est bien mieux que de vous lancer et de découvrir que votre carte sans fil n’est pas prise en charge comme je l’ai fait:)

En ce qui concerne le développement PHP sous Linux ... J'ai codé PHP sous Windows et Linux et je peux vous dire qu'il y a très peu de différence entre les deux. J'utilise Eclipse sur les deux plates-formes et Apache & MySQL / XAMPP. La seule différence majeure que j'ai constatée est que Linux est beaucoup plus précis en ce qui concerne les autorisations et les cas.

PHP n’est pas sur toutes les plateformes, et jusqu’à très récemment, les versions de Windows avaient des problèmes qui n’étaient pas trouvés dans les versions de Linux. Beaucoup de fonctionnalités utiles sont spécifiques à * nix.

Je voudrais faire écho aux sentiments de @ Milan concernant le développement dans l'environnement de déploiement. Vous en apprendrez beaucoup plus sur l'environnement de déploiement en le faisant aussi.

Sur le problème de la machine virtuelle, si vous voulez tous vos outils Windows et votre machine Windows, configurez un serveur linux dans votre machine virtuelle (vous pouvez avoir une interface graphique si vous le souhaitez, mais vous allez principalement utilisez-le comme serveur). Configurez-le de sorte que Windows puisse voir l'installation d'Apache en cours d'exécution sur votre machine virtuelle et que vous utilisiez des partages samba pour accéder aux fichiers de la machine virtuelle comme un lecteur sous Windows. De cette façon, vous développez dans Windows mais testez deploy / setup sur un serveur linux en cours d'exécution. Tandis que deux développeurs de ma boutique utilisent Ubuntu, une troisième utilise constamment Photoshop et divers autres logiciels Windows. Elle utilise donc cette méthode pour exécuter un serveur dans une machine virtuelle mais en développant à partir de Windows.

Oh, et si vous utilisez Linux, n'utilisez pas XAMPP! Quelques commandes simples vous permettront de démarrer et d’obtenir une bien meilleure compréhension de votre déploiement. XAMPP convient, mais c'est pour les systèmes d'exploitation qui ne disposent pas de la gestion des paquets de Linux.

Alors que XAMPP fonctionne très bien, exécuter Apache et PHP sous Linux est une évidence. alors que sur Windows, c'est quelque chose de plus que vous devez faire ... et que vous devez supporter. En outre, la plupart des composants de la pile sont beaucoup plus optimisés et plus évolués pour un environnement POSIX. Les performances du ou des moteurs de base de données sont particulièrement sensibles aux primitives disponibles.

La plupart des logiciels libres s’exécutent sur des fenêtres, mais c’est une cheville ronde chahutée sur un trou carré.

En principe, je vous déconseille "d \ u0026 # 39; apprendre en faisant". dans un vrai projet - à moins que ce soit vraiment petit ou que vous ayez déjà fait des projets très similaires auparavant, de sorte que la courbe d'apprentissage sur les problèmes liés aux projets ne soit pas abrupte. Dans ce cas, vous pouvez disposer de ressources gratuites pour vous familiariser avec l’environnement en développement.

En général, j'aime mieux l'environnement Linux que Windows. Principalement parce que tous les outils de la CLI dont vous auriez besoin sont fournis et que Bash bat cmd.ext à tout moment. Mais avec Cygwin, même Windows, je trouve un environnement de développement confortable.

En ce qui concerne le développement PHP, je ne vois vraiment pas en quoi ce serait très différent. Il peut être avantageux de forcer le code à être plus portable (des fins telles que les fins de ligne, les barres obliques dans les noms de fichiers, etc.) si vous utilisez des systèmes de kiosque.

En tant que bureau ou poste de travail, il n'y a pas beaucoup de différence entre les deux. Je trouve que la plus grande différence réside dans la façon dont vous les administrez, mais j'espère que d'autres personnes le feront pour vous.

À mon avis, vous n'avez pas besoin de développer une distribution Linux. Le développement Web peut être fait à partir de n'importe quel système d'exploitation. Je ne sais pas, pourquoi vous programmez pour le Web ... en tant que professionnel? pour votre page d'accueil personnelle? Je pense qu’il suffit de disposer d’un espace Web libre exécutant un serveur PHP et de télécharger vos fichiers là-bas ... cela ne vous prend pas beaucoup de temps et il y a moins de choses à gérer.

un étudiant allemand;)

Utilisez le système d’exploitation que votre serveur de déploiement exécutera. Il est très probable qu’il s’agisse de Linux. J'ai récemment vu un déploiement se dérouler très mal, car il a été développé à l'aide de wampserver et déployé sur CentOS. Avec des différences majeures dans les configurations apache et PHP. Alors, connaissez votre serveur de déploiement et faites-le correspondre le plus étroitement possible.

Essayez de créer un environnement de développement avec VmWare Player. J'ai plusieurs environnements Linux sur mon ordinateur portable Vista. Vous pouvez également simplement effectuer un double démarrage. J'utilise Ubuntu, c'est facile.

L'effet secondaire du développement dans une machine virtuelle: davantage de frais généraux et, éventuellement, le besoin d'outils supplémentaires pour rendre le développement plus confortable. Les développeurs ont souvent besoin d'outils spéciaux pour leur développement, tels que Photoshop ou des outils de conception de vecteurs non disponibles sous Linux. Si la copie de travail du projet se trouve à l'intérieur de la machine virtuelle, il est logique de pouvoir y accéder facilement. Vous allez donc configurer SAMBA (ce qui pose souvent des problèmes de connexion depuis XP) ou configurer SSL (SFTP) / FTP. Vous devez également apprendre à utiliser la mise en réseau avec la machine virtuelle (NAT, pontage, transfert de port).

D'autre part, le développement sur une autre plate-forme en tant que cible peut donner mal à la tête. Je me suis souvent retrouvé dans la confusion avec les fichiers .htaccess pour la protection par mot de passe, à cause du chemin différent sur Windows / Linux. Si vous oubliez de modifier ces entrées ultérieurement sur le serveur de production, vous rencontrez un problème ...

Une meilleure solution: utilisez le meilleur des deux mondes. Une machine virtuelle finit par fonctionner plus tard sans tête (pas d’interface graphique, plutôt comme un "serveur distant") avec Ubuntu / Debian / FreeBSD) et n’exécutant que les serveurs nécessaires (Apache, MySQL, FTP, SSH ...).

Eclipse ou les autres outils de développement sous Windows / Mac.

5 ans plus tard: mon avis est d'utiliser la solution Linux. L'utilisation de PHP sous Linux présente de nombreux avantages. La principale raison est le niveau d’aide disponible dans la communauté. PHP semble également être optimisé pour les environnements Linux.

Il existe également une sécurité en nombre, car un nombre considérable de sites sont hébergés et exploités avec les solutions LAMP. Il existe une large gamme de frameworks et de CMS qui fonctionnent mieux sous Linux avec Apache2.

Simplifiez-vous la vie et commencez immédiatement à apprendre PHP.

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