Comment puis-je utiliser pour gérer perlbrew perl installations destinées à des applications web?

StackOverflow https://stackoverflow.com/questions/3794922

Était-ce utile?

La solution

Je ne pense pas que ce soit un bon usage pour perlbrew, qui se déplace autour des liens symboliques sous son propre répertoire. L'astuce est de commutation du module mod_perl autour. Rappelez-vous, mod_perl va être binaire incompatible entre les versions principales de Perl, et que vous devrez compiler contre apache pour chaque version de Perl (et apache) que vous souhaitez utiliser.

perlbrew a vraiment deux grandes choses pour vous:

  • Installe perl, qui est trivialement facile à faire vous-même.
  • Commutateurs autour perl est donc symlinks quelle que soit la version que vous voulez.

Si vous renoncez à ce dernier, perlbrew ne fait pas vraiment beaucoup pour vous. Je ne pense pas que la fonction symlink est particulièrement utile.

Je pense que perlbrew est très bien pour ce qu'elle est, mais quand vous commencez à faire des choses en dehors de son champ d'application limité, il est temps de ne pas l'utiliser. Il est censé être un outil pour vous faire économiser du temps et des maux de tête, donc si ce n'est pas l'accomplissement de cet objectif, ce n'est pas le bon outil pour votre situation.

Dans cette situation, où j'appuie une application web unique, grand, je lui donne sa propre installation de perl que je ne laisse rien d'autre usage.

Pour vos questions:

  1. démarquage espace réservé

  2. Vous ne devriez pas avoir à configurer une substance de VirtualHost. Si vous utilisez mod_perl, perl est déjà là-bas et vous ne recevez pas de choisir un perl. Si vous utilisez des trucs de CGI, vous spécifiez le perl sur la ligne tralala. Vous devrez assurer apache choix les répertoires bibliothèque à droite, mais je pense que les poignées perlbrew que. Vous pourriez avoir à utiliser SetEnv ou quelque chose de similaire dans votre httpd.conf.

  3. Pour CGI vanille, pointez juste le droit chemin (lien symbolique) quelle que soit la version par défaut de perlbrew est. Le programme CGI utilisera simplement ce que perl points de chemin à.

Autres conseils

Voir la réponse de brian d foy pourquoi ne pas attendre à utiliser perlbrew pour basculer entre les versions de mod_perl. Je pense aussi que vous devrez exécuter plusieurs serveurs Apache, si vous avez besoin de plusieurs différentes versions de Perl mod_perl.

Cependant, l'utilisation perlbrew comme un moyen facile de construire Perl est à mon humble avis une chose valable de le faire, et il y a peu d'instructions disponibles pour savoir comment exécuter mod_perl sous perlbrew.

Tout d'abord assurer perl est construit avec le soutien bibliothèque partagée, en passant le drapeau -Duseshrplib (sinon sur les systèmes 64 bits, vous obtiendrez un échec de la compilation confusion au sujet -fPIC):

perlbrew install perl-5.16.3 -Duseshrplib

Installer le développement des bibliothèques Apache pour votre système. Sur Debian, cela diffère en fonction du Apache que vous MPM utilisez. Pour le MPM prefork:

sudo apt-get install apache2-prefork-dev

Ou pour le travailleur MPM:

sudo apt-get install apache2-threaded-dev

Ensuite, vous avez besoin d'options pour construire et installer mod_perl2 dans le bon endroit. Notez que cela signifie cpanm ne parviendra pas à le construire, mais vous pouvez l'utiliser pour mettre la main sur la source:

cpanm mod_perl2  # fails
cd ~/.cpanm/latest-build/mod_perl-2.0.8/   # adjust mod_perl version

Régler la version de Perl ci-dessous en conséquence. (L'option MP_APXS est de donner la bonne voie pour les systèmes basés sur Debian, que vous pourriez ne pas avoir besoin.)

perl Makefile.PL MP_APXS=/usr/bin/apxs2 \
                 MP_AP_DESTDIR=$HOME/perl5/perlbrew/perls/perl-5.16.3/
make
make install

Enfin, modifiez la ligne LoadModule dans votre fichier de configuration Apache (chemins en conséquence le réglage):

LoadModule perl_module <your homedir>/perl5/perlbrew/perls/<your perl>/usr/lib/apache2/modules/mod_perl.so

Votre installation mod_perl va maintenant exécuter la version de Perl que vous voulez. Installez tous vos modules CPAN requis et allez-y.

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