L'Utilisation De C++ Script CGI?
Je suis actuellement inscrit dans un site web d'applications de classe à mon collège et nous en apprendre davantage sur les scripts cgi. Je vais avoir du mal à apprendre à exécuter mon script CGI. Lorsque je clique sur mon lien, une fenêtre apparaît me demandant de télécharger mon helloworld.cgi fichier plutôt que de simplement la redirection.
HTML:
<html>
<body>
<a href="/user/local/apache2/cgi-bin/helloworld.cgi">click me</a>
</body>
</html>
C++:
#include <iostream>
using namespace std;
int main(){
cout << "Content-type: text/html" << endl;
cout << "<html>" << endl;
cout << " <body>" << endl;
cout << " Hello World!" << endl;
cout << " </body>" << endl;
cout << "</html>" << endl;
return 0;
}
Le script CGI est stocké à /user/local/apache2/cgi-bin/helloworld.cgi
- Juste pour confirmer, vous exécutez ce CGI sur un serveur web, et non pas le fichier local?
/user
‽‽‽‽ ...
Vous devez vous connecter pour publier un commentaire.
/user/local/apache2/cgi-bin/helloworld.cgi
est le chemin d'accès physique du fichier sur votre disque dur. Pour exécuter le script avec Apache, vous devez spécifier le chemin d'accès par rapport à votre serveur racine du document, par exemple.http://localhost/cgi-bin/helloworld.cgi
.Vous avez besoin de compiler le fichier C++, et le résultat helloworld.cgi. C++ n'est pas un langage de script -- vous ne pouvez pas déployer sur votre serveur.
Sur un *nix système, le nom du fichier C++ helloworld.cpp
Ensuite mis ce fichier dans votre répertoire cgi-bin
Edit: vous avez besoin de deux endl après le dernier élément d'en-tête
endl
endl
n'est pas nécessairement suffisant, HTTP mandats CR-LF comme l'EOL,endl
de la plate-forme..cgi
. Votre réponse m'a aidé à l'exécution d'un simple c++ script comme un script cgiJ'ai eu ce problème aussi, et cette solution a fonctionné pour moi :
La première exécution de cette commande sur le terminal:
Puis copiez helloworld.cgi /usr/lib/cgi-bin/
Et enfin changer href lien:
Vous avez juste besoin de configurer Apache pour reconnaître un
cgi-bin
correctement...Avoir une lecture de ceci: http://httpd.apache.org/docs/1.3/howto/cgi.html
Dans la config d'Apache
ScriptAlias
est probablement ce que vous voulez.(Je suis en supposant que vous avez compilé le fichier binaire helloworld.cgi)