Apache-Webserver / Mountain Lion

Estournel

Estournel

Aktives Mitglied
Thread Starter
Dabei seit
10.01.2011
Beiträge
103
Reaktionspunkte
4
Auf meinem MacBook Pro habe ich gerade Mountain Lion Mac OS X 10.7.5 per Internet Recovery (Neustart + ALT + CMD + R) installiert. Dabei habe ich auch die Betriebssystem-Partition formatiert. Anschließend habe ich mich als Benutzer mit Administrator-Rechten am MacBook Pro angemeldet.

Dann habe ich im Terminal-Fenster den vorinstallierten Apache-Webserver mit 'sudo /usr/sbin/apachectl start' gestartet, und mich mit 'ps -ef | grep httpd' davon überzeugt, daß er läuft. Es wurden zwei Prozesse gestartet:

Code:
    0  1370     1   0  1:17am ??         0:00.08 /usr/sbin/httpd -D FOREGROUND
   70  1372  1370   0  1:17am ??         0:00.00 /usr/sbin/httpd -D FOREGROUND

Die Datei '/private/etc/apache2/httpd.conf' habe erstmal unverändert gelassen. In der Datei ist 'ServerRoot "/usr"' angegeben. Soweit ich das verstanden habe, erwartet Apache die CGI-Skripte in diesem Verzeichnis '/usr'. Also habe ich ein Perl-Skript 'vorlage-q.pl' nach '/usr' kopiert und die Zugriffsrechte mit 'sudo chmod 777 vorlage-q.pl' maximal vergeben.

Der Aufruf des CGI-Skriptes im Safari-Browser 'http://localhost/vorlage-q.pl' liefert den Fehler - 404:

Code:
Not Found

The requested URL /vorlage-q.pl was not found on this server.

Apache/2.2.22 (Unix) DAV/2 Server at localhost Port 80

Was mache ich hier falsch, und wie wäre es richtig?
 
Hi,

Mountain Lion oder 10.7.5 ? Mountain Lion ist 10.8.x...

Zumindest meine (im Auslieferungszustand befindliche) httpd.conf enthält folgende Zeile:

Code:
ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

D.h. Apache sucht im Verzeichnis /Library/WebServer/CGI-Executables/ nach CGI Scripts, und nur da sollten sie auch abgelegt werden.
Ein Perl-Skript test.pl in diesem Verzeichnis wird über den URL http://localhost/cgi-bin/test.pl auch korrekt ausgeführt.

Nachtrag: Der Eintrag 'ServerRoot "/usr"' besagt, dass Konfigurationsdateien, Logs etc., soweit nicht anders angegeben, sich innerhalb dieses Stamms befinden müssen.
Was du wahrscheinlich suchst, ist der DocumentRoot, d.h. das Verzeichnis in dem sich die Webserver Dokumente (aber eben nicht CGI) befinden und das ist bei mir /Library/WebServer/Documents/. Dort werden .html, .php etc Dateien abgelegt.


Gruß
Hackepeter
 
Danke, jetzt läuft mein Script in '/Library/WebServer/CGI-Executables'. Danke auch für den Hinweis auf die Mac OS X-Versionen. Ich hatte Mountain Lion noch nicht aus dem App Store nachgeladen und installiert weil ich davon ausging, daß bei einem Internet Recovery immer gleich die neueste (gekaufte) Version installiert wird.

Gruß Estournel
 
Noch eine Frage, zu:

Nachtrag: Der Eintrag 'ServerRoot "/usr"' besagt, dass Konfigurationsdateien, Logs etc., soweit nicht anders angegeben, sich innerhalb dieses Stamms befinden müssen.
Was du wahrscheinlich suchst, ist der DocumentRoot, d.h. das Verzeichnis in dem sich die Webserver Dokumente (aber eben nicht CGI) befinden und das ist bei mir /Library/WebServer/Documents/. Dort werden .html, .php etc Dateien abgelegt.

Unter '/usr' finde ich nicht wie gewohnt die Log-Daeien 'access_log', 'error_log' und 'httpd.pid':

Code:
/usr:thomas: dir
total 8
drwxr-xr-x@   13 root  wheel    442 27 Dez 11:15 .
drwxr-xr-x    29 root  wheel   1054 26 Dez 23:55 ..
drwxr-xr-x     8 root  wheel    272 26 Dez 23:50 X11
lrwxr-xr-x     1 root  wheel      3 26 Dez 23:50 X11R6 -> X11
drwxr-xr-x  1056 root  wheel  35904 27 Dez 10:43 bin
drwxr-xr-x     3 root  wheel    102  1 Jun  2012 clang-ide
drwxr-xr-x   288 root  wheel   9792 27 Dez 10:42 include
drwxr-xr-x   344 root  wheel  11696 27 Dez 10:43 lib
drwxr-xr-x   140 root  wheel   4760 27 Dez 10:43 libexec
drwxr-xr-x     7 root  wheel    238  5 Aug 04:19 llvm-gcc-4.2
drwxr-xr-x   259 root  wheel   8806 27 Dez 10:43 sbin
drwxr-xr-x    64 root  wheel   2176 27 Dez 10:43 share
drwxr-xr-x     4 root  wheel    136 26 Dez 23:43 standalone

Auch die Suche danach mit 'find /usr -name error_log' führt zu keinem Ergebnis.

In der Apache-Konfigurationsdatei '/private/etc/apache2/httpd.conf' steht jedoch unverändert 'ServerRoot "/usr"'.

Wo schreibt Apache die Log-Files hin?
 
probier es mal in /var/log/apache2 und /var/run für die pid ...
 
Nach /var/log

Das mit dem ServerRoot /usr hat übrigens nichts mit den Verzeichnissen zu tun, die vom Apache benutzt werden.
Ich bin gerade etwas träge aber kurz.

ServerRoot
Installation des Apache Servers

DocumentRoot
Standard Verzeichnis für Documente

CustomLog
Pfad zu Logdateien

ErrorLog
Fehler Logfile

Dann gibt es noch zwei wichtige Blöche:

<Directory> .... </Directory>
Legt Einstellungen für Rechte auf physikalische Verzeichnisse fest

<Location> ... </Location>
Macht dasselbe für virtuelle Orte

Beispiel:

DocumentRoot wäre /Volumes/Webdaten/Bilder
URL /index.html ergibt:

<Location /Bilder>
</Location>

<Directory /Volumes/Webdaten/Bilder>
<Directory>

Nach diese Blöcken würde gesucht.

Daann gibt es noch

Alias /urlaub/photos /User/ich/Documents/Urlaub/Photos

Das mapped eine URL Location in ein Directory.
Rechte werden wie oben beschrieben gesucht.

ScriptAlias macht dasselbe für CGI.

Das war kurz und grösstenteils ungenau, könnte Dir aber helfen.
Steht alles auf www.apache.org und hat mit OSX nur wenig zu tun.

EDIT:

Wenn man ernsthaft mit Apache was machen will empfiehlt es sich meinen Meinung nach einen von OSX getrennten Apache mit Homebrew oder MacPorts aufzusetzen.

Dann fummelt man nämlich nicht in den OSX Verzeichnissen rum und macht sich seine Installation strubelig.
Aber jeder so wie er mag.
 
Mannometer, das war sehr gut, Danke:

Nach /var/log

Das mit dem ServerRoot /usr hat übrigens nichts mit den Verzeichnissen zu tun, die vom Apache benutzt werden.
Ich bin gerade etwas träge aber kurz.

ServerRoot
Installation des Apache Servers

...

Und hierzu:

Das war kurz und grösstenteils ungenau, könnte Dir aber helfen.
Steht alles auf www.apache.org und hat mit OSX nur wenig zu tun.

EDIT:

Wenn man ernsthaft mit Apache was machen will empfiehlt es sich meinen Meinung nach einen von OSX getrennten Apache mit Homebrew oder MacPorts aufzusetzen.

Dann fummelt man nämlich nicht in den OSX Verzeichnissen rum und macht sich seine Installation strubelig.
Aber jeder so wie er mag.

Das Herumfummeln ist genau das Problem. Vor dem Upgrade auf Mountain Lion hatte ich Apache 2.0.64 (glaube ich) original von www.apache.org installiert, und alles hat nach den üblichen Startschwierigkeiten gut funktioniert. Nach dem Upgrade habe ich Apache 2.2 von www.apache.org heruntergeladen und für die Ausführung der Apache-Installationsanweisungen

Code:
./configure --prefix /Applications/Apache --enable-so
make
sudo make install

auch noch Xcode für den C++ Compiler aus dem AppStore geholt und installiert und in 'Xcode/Preferences/Downloads/Components/Command Line Tools' herunter geladen und installiert, aber nach dem Upgrade auf Mountain Lion scheiterte './configure --prefix /Applications/Apache --enable-so' mit einer für mich kryptischen Fehlermeldung, die ich hier auch nicht wiedergeben kann, irgendetwas mit 'Script ... wrong interpreter'.

Da ich mich nicht nach jeder Betriebssystem-Installation von Mac OS X (das mache ich ab und zu mal auf meinen MacBook Pro's und vergebe dabei auch alle meine Paßwörter neu, nur so zur Sicherheit) auf's neue kaputt konfigurieren wollte, und weil Apple im Großen und Ganzen einigermaßen stabile Installationen verbreitet, dachte ich, na, dann greife ich jetzt mal auf den vorinstallierten Apache von Mac OS X zurück.

Für mich ist der Computer kein Selbstzweck sondern ein Werkzeug, mit dem ich meine Arbeit (Entwicklung von CGI-Skripten in Perl) erledigen will. Ich habe weder Lust noch die Zeit, mich tief in die Eingeweide von Mac OS X (UNIX-Derivat) und Apache rein zu wühlen und leider in meinen 37 Jahren Informatik nie als Software-Entwickler so richtig für UNIX entwickeln dürfen - habe dem ensprechend nur ein rudimentäres UNIX-Wissen.

Immer wenn ich die Apache-Konfigurationsdatei 'https.conf' verständnislos befummeln mußte lief es mir kalt den Rücken runter und ich war froh, wenn es dann endlich lief - weit entfernt von der "Energie des Verstehens". Hauptsache es läuft mit dem Gefühl "Ein blindes Huhn findet auch mal ein Korn". Danke nochmal für Deine Hinweise. Ich werde mich wohl doch mal richtig in die Apache-Dokumentation bei www.apache.org einlesen müssen. Das kostet aber alles Zeit, und ich bin doch schon 57 Jahre alt. Die Sanduhr läuft, und meine Rente muß ich auch noch verdienen - ein wahrer Eiertanz!

Gruß von
Estournel
 
es gibt doch auch schon fertige apache pakete wie MAMP ...
die sind doch recht einfach für unix laien...
 
Nach der nächsten Betriebssystem-Installation, sagen wir mal in ca. 4-6 Monaten, werde ich mal MAMPfen. Jetzt läuft's ja erstmal ...
 
Zurück
Oben Unten