Apache richiede impostazioni speciali per eseguire un comando?

1

Sto cercando di creare un'immagine usando Bio :: Perl / Bio :: Graphics e implementarla sul mio webserver. Tuttavia, ogni volta che sto cercando di eseguire i miei script online, la riga di comando non risponde per eseguire il mio script.

Uno dei miei file del modulo perl contiene questo comando di sistema:

my $command = "perl Graphics.pl $start $end $attributes";
system($command);

Tutti i valori sono indirizzati a questo comando e tutti gli script funzionano perfettamente quando vengono eseguiti manualmente attraverso la riga di comando. Apache non segnala un messaggio di errore ad eccezione del fatto che il file che avrebbe dovuto creare in Graphics.pl non è stato creato:

> [Mon Dec 16 12:15:59 2013] [error] [client ::1] Cannot Open Output 59_15_12_16_11_113_1_349_0.png, referer: http://localhost/~User/cgi-bin/Home.pl

>[Mon Dec 16 12:15:59 2013] [error] [client ::1] File does not exist: /Users/User/Sites/cgi-bin/59_15_12_16_11_113_1_349_0.png, referer: http://localhost/~User/cgi-bin/Results.pl?start=1000&end=20000&chr=All&type=protein

Esiste un'impostazione aggiuntiva che deve essere configurata nelle impostazioni di Apache in modo che possa utilizzare la riga di comando?

Le mie specifiche sono le seguenti:

  • Versione server: Apache / 2.2.24 (Unix)
  • perl 5, versione 16, subversion 2 (v5.16.2)
  • Mac OS 10.9 Mavericks

Qualsiasi aiuto sarebbe molto apprezzato.

    
posta fsimkovic 16.12.2013 - 13:25
fonte

1 risposta

1

Il problema è stato risolto. Fondamentalmente Apache non ha il permesso di scrivere nella cartella. Passaggi per risolvere il problema incluso:

  1. ls -la cgi-bin per controllare le autorizzazioni della mia cartella cgi-bin .
  2. Assegna la proprietà del gruppo _www di cgi-bin e assegna ai permessi di scrittura del gruppo : chgrp -R _www cgi-bin && chmod g+w cgi-bin .
  3. Inoltre, ho aggiunto il mio utente al gruppo _www , quindi non avrei dovuto autenticarmi ogni volta che ho aggiunto un file nella cartella cgi-bin .
  4. sudo dseditgroup -o edit -a ikr -t user _www è stato utilizzato per eseguire il passaggio 3 (ikr deve essere sostituito con il nome utente da aggiungere)
risposta data 18.12.2013 - 16:07
fonte

Leggi altre domande sui tag