51 votes

N'php un équivalent python virtualenv ou ruby bac à sable?

Je suis habitué à l'utilisation de python virtualenv outil pour créer des environnements qui peuvent imiter les environnements de déploiement pour les projets que j'écris.

Maintenant, je vais travailler sur un projet php, et je me demande si il y a un équivalent? Clairement, j'espère être en mesure d'exécuter un virtualhost apache avec une vieille version de php, alors que tout le reste fonctionne à la normale jusqu'à la date de la version.

Ma machine de développement est en cours d'exécution ubuntu 11.04, de sorte que les solutions qui fonctionnent sur la plate-forme serait préférable.

12voto

duskwuff Points 69245

En supposant que vous utilisez mod_php, il n'y a aucun moyen de charger de multiples versions différentes dans la même instance d'Apache. Vous pouvez exécuter plusieurs versions différentes si vous utilisez PHP comme CGI ou FastCGI, mais ce sera lui-même introduire des différences dans le comportement de mod_php.

9voto

mozey Points 122

Une autre alternative aux machines virtuelles est docker.

7voto

ashwoods Points 1479

Comme le chargement de différentes versions de php dans apache avec mod_php ne semble pas être possible, le moyen le plus facile d'imiter le déploiement et le développement des configurations sera avec un virtualmachine, qui vous a indiqué que vous souhaitez éviter.

Une façon de faire de la charge de la machine virtuelle pour les développeurs un peu plus facile est d'utiliser quelque chose comme vagrant. Avec deux fichiers (le vagabond de fichier, et le chef/puppet fichier), vous pouvez "version" de votre vm, facilement les créer et de les détruire pour chaque projet et en cas de besoin.

5voto

smg628 Points 101

Vous pourriez être intéressé par ce: https://github.com/phpenv/phpenv

2voto

ashwoods Points 1479

(N'ai pas codé en php dans ans, donc cela pourrait être obsolète)

Comme je me souviens bien vous avez juste à point à un autre répertoire où vos bibliothèques de résidence (CHEMIN de), en utilisant quelque chose comme:

include_path = .:/usr/local/lib/php:./include (this goes in php.ini, default libararies)

et dans vos fichiers php:

ini_set("include_path", ".:../:./include:../include");

PHP n'a jamais vraiment eu un robuste système de packaging et de la bibliothèque de dépôt comme perl/python/ruby, POIRE a été d'essayer d'aller dans cette direction, mais il est très fermé, en comparaison, est difficile à configurer dans le multiprojet environnements.

Phark est en train de construire un brew/bundler port pour php, https://github.com/lox/phark, bien qu'il n'est pas de déploiement de prêt.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X