Aller au contenu

Featured Replies

Posté(e)
  • Auteur

Donc j'ai re-édité un nouveau fichier cgi avec vi et maintenant sous SSH celà fonctionne.

Mais sous le navigateur encore pas.

Mahox> /var/services/web/cgi-bin/essais.cgi
Content-type: text/html
Hello word
Pour ce qui est des droits d’exécution pour http, c'est ou que l'on configure (sur le NAS?), peut-être que ce n'est que ça?
Posté(e)

Si la commande suivante fonctionne en étant connecté à ton nas en SSH en tant que root, c'est que les droits sont bon, essaye et donne nous le résultat :

su - http -s /bin/sh -c "/var/services/web/cgi-bin/essais.cgi"

Et si les droits sont bon, tu devrais pouvoir accéder à ton script par l'url :

http://<nom de ton nas>/cgi-bin/essais.cgi

Posté(e)
  • Auteur

Si la commande suivante fonctionne en étant connecté à ton nas en SSH en tant que root, c'est que les droits sont bon, essaye et donne nous le résultat :

su - http -s /bin/sh -c "/var/services/web/cgi-bin/essais.cgi"

Et si les droits sont bon, tu devrais pouvoir accéder à ton script par l'url :

http://<nom de ton nas>/cgi-bin/essais.cgi

Alors sous SSH connecté en root cela fonctionne:

Mahox> su - http -s /bin/sh -c "/var/services/web/cgi-bin/essais.cgi"
Content-type: text/html
Hello word
Mais avec le navigateur (Chrome ou Explorer) ça me donne une erreur :
Chrome "Désolé, la page que vous recherchez est introuvable."
Explorer "Le site Web ne peut pas afficher la page" (HTTP 500 erreur interne...)
Je pense que mon cas est insoluble... Merci, pour votre patience!

Posté(e)
  • Auteur

Et si c'était DSM5.1 qui avait un bug?

Posté(e)

Alors là .. possible oui, moi je tourne sous DSM 5.0-4528 Update 2

Je ne sais pas pourquoi mais je n'ai pas voulu passer en DSM5.1 .... peut-être à cause de la liste énorme des bug référencés ici depuis sa sortie lol

Posté(e)
  • Auteur

Ce matin, lueur d'espoir! Une mise à jour de perl était disponible....

He ben c'est pas mieux! mes scripts fonctionnent avec SSH, mais toujours pas depuis http (navigateur).

Je me demande si je suis le seul à vouloir utiliser perl sur synology avec DSM 5.1! ;-)

  • 3 mois après...
Posté(e)

Plusieurs petites choses à vérifier lorsque tu veux faire du cgi en perl :

Ton fichier cgi et ton répertoire cgi-bin doivent avoir les droits d’exécution par le serveur Web

Ton script cgi doit contenir en toute première ligne le shebang correct

Ton script cgi doit retourner du content html dans ses headers.

Voici le petit test que j'ai effectué sur mon syno en DSM 5.0:

Création du répertoire "/var/services/web/cgi-bin" avec les bon droits:

mkdir /var/services/web/cgi-bin

chmod 755 /var/services/web/cgi-bin

Création du fichier "/var/services/web/cgi-bin/test.cgi" avec les bons droits :

vi /var/services/web/cgi-bin/test.cgi

#!/usr/bin/perl
print "Content-type: text/htmlnn";
print "Hello, world!n";

chmod 755 /var/services/web/cgi-bin/test.cgi

Et j'ai bien le résultat attendu dans mon browser sur l'URL http://monsyno/cgi-bin/test.cgi (étant entendu que le Web Station sur mon syno est activé).

Ensuite si tu veux sécuriser un minimum les droits de tes fichiers web, je te conseille comme l'a dit Raoul d'utiliser http:htttp pour les droits, ce qui donnerait :

chown -R http:http /var/services/web/cgi-bin

chmod -R 750 /var/services/web/cgi-bin

J'ai testé ceci, mais si je fais http://monsyno/cgi-bin/test.cgi, idem, rien ne s'affiche.

La commande suivante renvoie bien Hello World !

su - http -s /bin/sh -c "/var/services/web/cgi-bin/test.cgi"

J'ai essayé avec un simple html dans le dossier cgi-bin et il ne s'affiche pas non plus.

Enfin, dans le fichier /etc/httpd/conf/httpd.conf-user, j'ai bien le directory suivant :

<Directory "/var/services/web">
    Options MultiViews FollowSymLinks ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Une idée de ce qui cloche ?

Posté(e)

Ok, j'ai trouvé...

En fait, le dossier cgi-bin est créé dans /volume1/web

Or, j'héberge 3 sites et j'ai donc 3 alias.

Il suffit de faire un lien symbolique dans chacun des dossiers de mes sites pour avoir le cgi-bin up.

ln -s /volume1/web/cgi-bin/ .

Enjoy. :)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.