Compiler et executer un binaire pour cgi sur start10m

Bonjour à toutes et à tous,

Mon nom de domaine est : https://sagotch.fr/

Et j'utilise l'offre : start10m

J'essaye deseperement d'executer un programme compilé sur mon hebergement start10m.

J'ai donc compilé sur ma machine (Ubuntu 20.04 64bits) foo.exe, qui fait un "Hello, World!". En local, ça fonctionne. Sur mon hébergement par contre, j'ai une erreur 500 (et rien d'interessant dans les logs, juste des "End of script output before headers: foo.exe").

Voici les informations sur la config données par php: https://www.sagotch.fr/info.php
Un binaire `foo.exe` situé dans `cgi-bin` donne une 500: https://sagotch.fr/cgi-bin/foo.exe
Un binaire qui n'existe pas donne bien une 404: https://sagotch.fr/cgi-bin/bar.exe

Est-ce que cela pourrait venir de la compilation (sous Ubuntu 20.04) ?


Est-ce que cela pourrait venir de la compilation (sous Ubuntu 20.04) ?


Bonjour,

Dans un start1m (ancêtre du start10m) j'ai pu faire tourner /cgi-bin/test.pl
qui contient ceci:

#!/usr/bin/perl
print "Content-type: text/plain\n\nHello World !\n";

et il fonctionne toujours. Notez que vous devez mettre le flag 'x' dans les permissions.
A part perl, je ne sais pas ce qui est permis et ce qui ne l'est pas.
Un script #!/bin/sh renvoie une erreur 500.

J'ai effectivement pu faire tourner le même binaire après être passé en liaison statique plutôt que dynamique. C'est probablement un problème de version de la libc du coup (je n'ai plus le détails en tête mais il ne doit pas y avoir grand chose d'autre utilisé).

Est-il possible d'avoir la configuration des serveur sur lequel est notre start10m ? Idéalement, il existerait une image docker disponible quelque part pour reproduire l'environnement exact.

Tout ce que j'ai comme info c'est:
```
System Linux webm031.cluster029.gra.hosting.ovh.net 4.14.253-ovh-vps-grsec-zfs-classid #1 SMP Thu Oct 28 11:15:35 CEST 2021 x86_64
Build Date Dec 14 2021 17:00:00
Build System Linux f94952c79dbb 4.14.119-ovh-vps-grsec-zfs-classid #1 SMP Wed May 15 10:40:34 CEST 2019 x86_64 GNU/Linux
```
Peut-être que n'importe quel distro basée sur Linux 4.14.119 fera l'affaire ?

Un programme compilé ? C'est du C ? un binaire pour Windows (.exe) ?

Je dis peut être une bétise mais je ne pense pas qu'il soit possible de lancer un binaire sur un start10M…

C'est bien un binaire pour linux (mais qui a .exe pour extension, convention de l'outil de build).
```
ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=cd414f30e67ebc42f684b0875572cff545e0aa93, for GNU/Linux 3.2.0, with debug_info, not stripped
```
Ça fonctionne en `statically linked`, mais j'aimerais plutôt être en `dynamically linked`, pour des questions de taille d'executable.


Ça fonctionne en statically linked, mais j'aimerais plutôt être en dynamically linked, pour des questions de taille d'executable.


Vous avez beaucoup de chance que ça fonctionne.
Ce répertoire /cgi-bin/ c'est un reliquat du OVH d'il y a 20 ans.
En plus vous utilisez un hébergement gratuit pour faire tourner votre exécutable ELF.

1) à votre place je ne serais pas trop exigeant, surtout que c'est du gratuit et exécuter vos propres programmes compilés, ça ne se trouve pas contractuellement dans l'offre start10m.
2) à votre place il ne faut rien construire là-dessus qui devienne essentiel pour votre activité, car ça peut s'arrêter du jour au lendemain sans préavis pour les même raisons que ci-dessus.

et oui, 10 Mb pour mettre des programmes linkés statiquement ça devient vite un peu court.

C'est pas tellement une question d'être exigeant, je demande simplement comment faire, puisque de toute évidence c'est faisable. Si rien ne garantie que ça marche, je crois que rien n'interdit de le faire non plus.

En l'occurence, c'est juste du site web tout ce qu'il y a de plus classique sauf qu'au lieu de le coder en PHP, je le fais en OCaml, d'ou le CGI.

C'est aussi pour la beauté du geste, parce que sinon je ferais tourner ça sur mon VPS qui ne sert à rien depuis des mois.