Domanda

Sono stato con perlbrew per gestire più versioni di perl su Fedora Linux taccuino. L'ho usato con grande beneficio per eseguire gli script della riga di comando per lo più utilizzando App :: cmd .

Ora voglio passare per l'esecuzione di applicazioni web scritte utilizzando CGI :: Application utilizzando diversi Perls installati nel mio $HOME. Sono familiarità con l'esecuzione di applicazioni web Perl in $HOMEs usando user_dir di Apache o la creazione di host virtuali, ma non sono in grado di trovare un modo pulito di integrare questo e il perlbrew perle gestiti. In particolare ho bisogno di aiuto per capire e trovare le risposte a queste domande:

  1. Come installare mod_perl sotto perlbrew?
  2. Supponendo che questo è fatto, come faccio a configurare il mio VirtualHost in modo che raccoglie il perl corretto che è attuale?
  3. Se questo non è possibile, (cosa di cui dubito) posso almeno usare le installazioni locali per eseguire vaniglia CGI ?

Grazie per l'attenzione.

È stato utile?

Soluzione

Non credo che questo sia un buon uso per perlbrew, che si muove intorno collegamenti simbolici propria directory. Il trucco sta commutando il modulo mod_perl intorno. Ricordate, mod_perl sta per essere incompatibile a livello binario tra le principali versioni di perl, e che si dovrà compilarlo contro apache per ogni versione di Perl (e Apache) che si desidera utilizzare.

perlbrew davvero fa due grandi cose per voi:

  • Installa Perl, che è banalmente facile da fare da soli.
  • Interruttori intorno collegamenti simbolici in modo perl è tutto ciò che la versione che si desidera.

Se si rinunciare a quella ultima, perlbrew non è realmente facendo molto per voi. Non credo che la funzione link simbolico è particolarmente prezioso.

Credo perlbrew va bene per quello che è, ma quando si inizia a fare le cose al di fuori della sua portata limitata, è il momento di non usarlo. Si suppone che sia uno strumento per risparmiare tempo e mal di testa, quindi se non è realizzare questo obiettivo, non è lo strumento giusto per la vostra situazione.

In questa situazione, dove sto sostenendo una singola applicazione, grande web, gli ho dato la propria installazione di Perl che non lascio niente uso altra cosa.

Per le tue altre domande:

  1. Markdown segnaposto

  2. Non si dovrebbe avere per configurare qualsiasi roba VirtualHost. Se si utilizza mod_perl, perl è già in là e non si arriva a scegliere un perl. Se stai usando roba CGI, si specifica il perl sulla linea shebang. Si dovrà garantire Apache prende il directory di libreria di destra, ma penso che le maniglie perlbrew che. Potrebbe essere necessario utilizzare SetEnv o qualcosa di simile nel vostro httpd.conf.

  3. Per CGI vaniglia, basta puntare al percorso di destra (link simbolico) per qualsiasi sia la versione di default è perlbrew. Il programma CGI sarà solo utilizzare qualsiasi Perl che i punti di percorso a.

Altri suggerimenti

Risposta See brian d foy del motivo per cui non si aspettano di utilizzare perlbrew per passare tra le versioni di mod_perl. Mi aspetto anche che sarà necessario eseguire più server Apache, se avete bisogno di più versioni differenti Perl sotto mod_perl.

Tuttavia, utilizzando perlbrew come un modo semplice per costruire Perl è IMHO una cosa valida da fare, e ci sono alcune istruzioni disponibili per come eseguire mod_perl sotto perlbrew.

In primo luogo garantire perl è costruito con il supporto di libreria condivisa, passando la bandiera -Duseshrplib (altrimenti su sistemi a 64 bit si otterrà un errore di generazione di confusione circa -fPIC):

perlbrew install perl-5.16.3 -Duseshrplib

Installare le librerie di Apache di sviluppo per il sistema. Su Debian, questo varia a seconda del Apache MPM che si sta utilizzando. Per il MPM prefork:

sudo apt-get install apache2-prefork-dev

O per il MPM lavoratore:

sudo apt-get install apache2-threaded-dev

Quindi è necessario alcune opzioni per costruire e installare mod_perl2 nel posto giusto. Si noti che questo mezzo cpanm non riuscirà a costruirlo, ma si potrebbe usare per entrare in possesso della fonte:

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

Regolare la versione di Perl sotto di conseguenza. (L'opzione MP_APXS è quello di dare la strada giusta per i sistemi basati su Debian, che potrebbe non essere necessario.)

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

Infine, cambiare la linea LoadModule nel file di configurazione di Apache (regolando di conseguenza i percorsi):

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

L'installazione mod_perl sarà ora in esecuzione la versione di Perl che si desidera. Installare tutti i moduli CPAN richiesti e andare avanti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top