PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 Configuration/CGI-Scipt Problem



d4n1oc
20.08.13, 21:35
Hallo Community,

Ich weiß nicht, ob der Thread hier richtig ist, da ich speziell dazu nichts gefunden habe.

Und Zwar habe ich folgendes Problem:
Ich habe auf meinem Rechner (Linux Mint mate) einen Apache2 Webserver installiert und versuche
verzweifelt ein CGI script, mittels shell geschrieben, zum laufen zu bringen.
Die normale Ausgabe einer HTML Datei über den Browser, aus dem Verzeichnis (bei mir "/var/www") funktioniert einwandfrei, wenn ich in den Browser Localhost eintippe.
Jetzt habe ich aber ein Shell-Script im cgi-bin verzeichnis (bei mir "/usr/lib/cgi-bin") und kann dies nicht über den Browser ausführen.
Mit chmod u+x dateiname habe ich versucht die Datei ausführbar zu machen.
Wenn ich jetzt den Dateipfad in den Browser eintippe wird mir einfach nur stumpf das Script wie in einem Editor angezeigt.
Ich habe auch bereits geprüft ob der Dateipfad /bin/bash richtig ist. Ich hoffe ihr könnt mir helfen das Script zu korrigieren oder ggf.
Die nötigen Apache2 configurationen forzunehmen.

Hier mal mein Script (bislang nur ein kleiner test):

#!/bin/bash

echo "Content-type: text/html"
echo "<html>"
echo "<body>"
echo "BLA BLA BLA BLA BLA"
echo '</body>'
echo '</html>'

MfG d4n1oc

marce
21.08.13, 06:29
Poste bitte den relevanten Teil der Apache-Config.

Hilfreich ist bei Tests auch: Davor Browsercache leeren.

d4n1oc
21.08.13, 10:15
Danke erstmal für die schnelle Antwort.
Die Browsercache zu leeren hat leider nichts gebracht.

Hier mal die Virtualhost Konfigurationsdatei:


<VirtualHost *:80>
ServerAdmin danloc-G31T-M7

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
AddHandler cgi-script .cgi .pl
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Die Einstellung sind alle unverändert. Ich habe nur " AddHandler cgi-script .cgi .pl" hinzugefügt (davor funktionierte es aber auch nicht).

marce
21.08.13, 10:22
bevor ich das hier ggf. mal teste oder die Konfig 1:1 gegen die Doku abgleiche:

* Den Apache hast Du nach der Konfigänderung neu gestartet?
* wie ist die exakte URL, die Du abrufst?
* Das Script ist _für den Apache_ ausführbar?
* ggf. - was sagt das Logfile?

ansonsten - für erste Tests eignet sich teilweise sowas wie curl oder wget besser - da cached nämlich garantiert nichts...

d4n1oc
21.08.13, 12:58
* Den Apache hast Du nach der Konfigänderung neu gestartet?
* wie ist die exakte URL, die Du abrufst?
* Das Script ist _für den Apache_ ausführbar?
* ggf. - was sagt das Logfile?

Also..

*Klar den Apache hab ich nach der Änderung neu gestartet(hat auch keine Probleme gemacht)

*Ich gebe in den Browser ein" /usr/lib/cgi-bin/test.cgi "

*Ob das Script für den Apache ausführbar ist weiß ich nicht. Allerdings habe ich versucht mit dem Befehl " chmod u+x dateiname " die Datei ausführbar zu machen. Darauf färbte sich der Dateiname grün (linux mate), woran ich jetzt sehe ob es tatsächlich ausführbar ist weiß ich leider nicht (wie kann man das testen/einsehen?).

Dazu kommt das aufgrund der ScriptAlias Einstellung jede Datei im besagten Order als CGI angesehen werden sollte und die AddHandler Einstellung sollte alle Dateien mit der Endung .cgi & .pl als solches ansehen (egal welcher Ordner).
Deswegen verstehe ich es nicht so ganz. Oder muss jedes einzelne script trotz der Apache Einstellung nochmal speziell ausführbar gemacht werden?(wie gesagt "chmod u+x Dateiname" bereits gemacht)

Danke schonmal im Vorraus
MfG Danloc

marce
21.08.13, 13:14
*Ich gebe in den Browser ein" /usr/lib/cgi-bin/test.cgi "
Das ist garantiert keine URL, die der Apache sehen will...

-> http://localhost/cgi-bin/test.cgi wäre angeraten...


*Ob das Script für den Apache ausführbar ist weiß ich nicht. Allerdings habe ich versucht mit dem Befehl " chmod u+x dateiname " die Datei ausführbar zu machen. Darauf färbte sich der Dateiname grün (linux mate), woran ich jetzt sehe ob es tatsächlich ausführbar ist weiß ich leider nicht (wie kann man das testen/einsehen?).

ls -la $datei
... und dann noch schauen, unter welchem User der Apache läuft. Schauen und Vergleichen - bei "Ich seh's nicht -> Posten.

Googlen nach "Linux Rechtesystem".