2017-08-19 4 views
0

EDIT: Suite à des réponses à des questions similaires, j'avais revendiqué la propriété du dossier et des fichiers avec chown. Une fois que j'ai défini les autorisations sur le dossier 777, il commence à fonctionner. Je ne connais pas grand-chose à la configuration d'Apache, mais jusqu'à présent, j'ai pu l'utiliser avec mes applications Web. Maintenant je suis en train d'apprendre quelques trucs en C, et voici ce qui se passe:en essayant d'exécuter CGI il télécharge à la place

  1. quand j'ouvrir les fichiers de mon navigateur sur http://localhost/cgi-bin/ tout fonctionne très bien; - fichiers se trouvant dans/usr/lib/cgi-bin/
  2. lorsque je déplace les fichiers vers/var/www/cgi-bin/et que j'essaie de les ouvrir sur le navigateur à partir de http://codigoc/ tout ce qu'il fait est de télécharger les fichiers au lieu de les exécuter.

J'ai fait des recherches en ligne, mais je n'ai pas encore trouvé de solution. Comme je ne sais pas exactement ce qui doit être fait, je vais vous laisser mes fichiers ci-dessous.

/etc/apache2/conf-enabled/serve-cgi-bin.conf

<IfModule mod_alias.c> 
    <IfModule mod_cgi.c> 
     Define ENABLE_USR_LIB_CGI_BIN 
    </IfModule> 

    <IfModule mod_cgid.c> 
     Define ENABLE_USR_LIB_CGI_BIN 
    </IfModule> 

    <IfDefine ENABLE_USR_LIB_CGI_BIN> 
     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     <Directory "/usr/lib/cgi-bin"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Require all granted 
     </Directory> 
     ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 
     <Directory "/var/www/cgi-bin"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Require all granted 
     </Directory> 
    </IfDefine> 
</IfModule> 

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

/etc/apache2/apache2.conf

<Directory /var/www/cgi-bin/> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi .pl 
</Directory> 

/etc/apache2/sites-permis /codigoc.conf

<VirtualHost *:80> 
    ServerName codigoc 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/cgi-bin/ 
    ScriptAlias /cgi-bin/ /var/www/cgi-bin 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
    <Directory "/var/www/cgi-bin"> 
     AllowOverride None 
     Options +ExecCGI -Multiviews +SymLinksIfOwnerMatch 
     Require all granted 
    </Directory> 
    # For most configuration files from conf-available/, which are 
    # enabled or disabled at a global level, it is possible to 
    # include a line for only one particular virtual host. For example the 
    # following line enables the CGI configuration for this host only 
    # after it has been globally disabled with "a2disconf". 
    Include conf-available/serve-cgi-bin.conf 
</VirtualHost>        

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

Je ne sais pas si cela suffit pour vous les gars pour me aider, mais si je me manque quelque chose s'il vous plaît laissez-moi savoir.

Merci d'avance!

+0

Il vaut mieux vérifier si vos attributs de fichier de script sont définis comme exécutables. –

+0

@John Sheridan: il est – Baya

+0

Je peux les exécuter sur le navigateur quand je les mets dans/usr/lib/cgi-bin/et les opener via http: // localhost/cgi-bin/fonctionne parfaitement bien de cette façon, mais Je les veux sur le/var/www/cgi-bin/dir et c'est là que je reçois le problème – Baya

Répondre

0

était un problème d'autorisations ... son résolu maintenant

Merci John, et désolé pour prendre votre temps

EDIT: Après des réponses à des questions similaires que j'avais revendiqué la propriété des fichiers dossieret avec chown. Une fois que j'ai défini les autorisations sur le dossier 777, il commence à fonctionner.

+0

Très bien. Tu es trié. Changer les autorisations à 755 plutôt que 777. –

+0

l'a fait, merci encore! – Baya