Apache: Probleme mit Virtual Host
Maresa P.
- webserver
Hallo,
mein Apache2 Server (auf RedHat 9.0) ist so konfiguriert, dass er meherer namebased virtual hosts verwaltet:
httpd.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName domain1.info
ServerAlias www.domain1.info
DocumentRoot /home/httpd/vhosts/domain1/httpdocs
</VirtualHost>
<VirtualHost *:80>
ServerName domain2.de
ServerAlias www.domain2.de domain3.info www.domain3.info
DocumentRoot /home/httpd/vhosts/domain2/httpdocs
</VirtualHost>
mit dem 2. virtual Host (domain2.de) funtkioniert alles super. Beim Aufruf der Domain wird der Inhalt aus /home/httpd/vhosts/domain2/httpdocs angezeigt.
Probleme habe ich jedoch mit dem 1. Virtual Host! Beim Aufruf von domain1.info (oder jeder anderen, nicht im virtual2 enthaltenen domain) bekomme ich eine Apache Seite:
Test Page
[...]
If you are the administrator of this website:
You may now add content to this directory, and replace this page.
Note that until you do so, people visiting your website will see this page, and not your content.
If you have upgraded from Red Hat Linux 6.2 and earlier, then you
are seeing this page because the default DocumentRoot set
in /etc/httpd/conf/httpd.conf has changed. Any subdirectories
which existed under /home/httpd should now be moved
to /var/www.
Alternatively, the contents of /var/www can be moved
to /home/httpd, and the configuration file can be updated
accordingly.
[...]
Das Verzeichnis /home/httpd/vhosts/domain1/httpdocs existiert und in ihm gibt es auch eine index.html
Der einzige Unterschied ist, dass das Verzeichnis von domain2.de ursprünglich von einem Konfigurationstool (Plesk) angelegt wurde. Das Verzeichnis von domain1.info habe ich manuell als root angelegt, jedoch die Eigentümer und Eigentümergruppe entsprechend angepasst.
Nun mein Fragen:
Vielen Dank für Euere Hilfe!
Maresa P.
_korrektur_
Nun mein Fragen:
hallo Maresa,
- Woran kann es liegen, dass domain1.info nicht den richtigen Inhalt liefert?
Im Prinzip ist diese Frage bereits in deinem vorherigen Thread zum selben Thema beantwortet worden. Der Fehler liegt hier:
NameVirtualHost *:80
<VirtualHost *:80>
Mach daraus bitte
NameVirtualHost lokale IP-Adresse
<VirtualHost lokale IP-Adresse>
Den port kannst du weglassen, wenn es sowieso port 80 sein soll. Du kannst mehrere (namensbasierte) virtuelle hosts auf diese Weise an dieselbe IP binden.
- Muss ich das neu angelegt Verzeichnis von domain1.info noch irgendwo in einer anderen Konfigurationsdaten hinzufügen?
Nein, das ist nicht nötig. Aber in /etc/hosts solltest du den Domainnamen eintragen.
Grüße aus Berlin
Christoph S.
Hallo,
Angespornt durch dieses Posting wollte ich jetzt doch noch mal versuchen einen virtual host hinzubekommen.
Die ip Adresse meiner Netzwerkkarte lautet 192.168.0.3
Das habe ich in die httpd.conf reingeschrieben
-------------------------
NameVirtualHost 192.168.0.3
<VirtualHost *>
ServerName localhost
DocumentRoot /var/www/
</VirtualHost>
<VirtualHost 192.168.0.3>
ServerName jeenas-home5
DocumentRoot /var/www/open/Webs/jeenas-home5/
</virtualHost>
-------------------------
Und das in die /etc/hosts
-------------------------
127.0.0.1 localhost
192.168.0.3 jeenas-home5 jeenas-home5
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
-------------------------
Wenn ich jetzt http://jeenas-home5/ in den Browser eingebe dann bekomme ich die Seite von /var/www/ und nicht /var/www/open/Webs/jeenas-home5/
Also mache ich auf jeden fall irgendetwas falsch, aber was?
Grüße
Jeena Paradies
hi,
Das habe ich in die httpd.conf reingeschrieben
NameVirtualHost 192.168.0.3
<VirtualHost *>
Also mache ich auf jeden fall irgendetwas falsch, aber was?
Du könntest es bereits an meinem "Zusammenschnitt" deines postings erkennen. Im <VirtualHost>-Container muß natürlich dieselbe IP stehen, die du bei NameVirtualHost angegeben hast, in deinem Fall also 192.168.0.3 und auf gar keinen Fall darf da einfach der Platzhalter * stehenbleiben.
Grüße aus Berlin
Christoph S.
Hallo,
Du könntest es bereits an meinem "Zusammenschnitt" deines postings erkennen. Im <VirtualHost>-Container muß natürlich dieselbe IP stehen, die du bei NameVirtualHost angegeben hast, in deinem Fall also 192.168.0.3 und auf gar keinen Fall darf da einfach der Platzhalter * stehenbleiben.
So jetzt habe ich ihn endlich wieder am laufen, der wollte nämlich jetzt gerade gar nicht mehr. Ich habe das jetzt verändert, was aber nichts daran verändert hat dass ich beim aufruf von http://jeenas-home5/ immer noch die gleiche Seite angezeigt bekomme wie http://localhost/ also die /var/www/ anstatt /var/www/open/Webs/jeenas-home5/ Es ist auch egal ob ich den Slash dahinter weglasse oder nicht.
-------------------------------------------------
#/etc/hosts
127.0.0.1 localhost
192.168.0.3 debian.jeena debian
192.168.0.3 jeenas-home jeenas-home5
#/etc/apache/httpd.conf
ServerName localhost
DocumentRoot /var/www
NameVirtualHost 192.168.0.3
<VirtualHost 192.168.0.3>
ServerName localhost
DocumentRoot /var/www
</VirtualHost>
<VirtualHost 192.168.0.3>
ServerName jeenas-home5
DocumentRoot /var/www/open/Webs/jeenas-home5
</VirtualHost>
Grüße
Jeena Paradies
morgens,
So jetzt habe ich ihn endlich wieder am laufen, der wollte nämlich jetzt gerade gar nicht mehr.
Oh. Was sagen deine logs dazu aus?
Ich habe das jetzt verändert, was aber nichts daran verändert hat dass ich beim aufruf von http://jeenas-home5/ immer noch die gleiche Seite angezeigt bekomme wie http://localhost/ also die /var/www/ anstatt /var/www/open/Webs/jeenas-home5/
Ich habe vorhin noch was vergessen. Es ist ziemlicher Unsinn, einen virtualHost "localhost" zu nennen. "localhost" gibt es immer, der _darf_ gar kein eigener virtualHost sein. Gib deinem ersten virtualHost einen anderen Namen.
#/etc/hosts
127.0.0.1 localhost
192.168.0.3 debian.jeena debian
192.168.0.3 jeenas-home jeenas-home5
Das sieht nicht so richtig gut aus. Mach mal daraus:
127.0.0.1 localhost
192.168.0.3 jeenas-home5
Unter Umständen hast du "weiter oben" in der httpd.conf noch irgendwas verkehrt eingetragen.
Grüße aus Berlin
Christoph S.
Hallo,
Das sieht nicht so richtig gut aus. Mach mal daraus:
127.0.0.1 localhost
192.168.0.3 jeenas-home5
Ok das habe ich jetzt genau so gemacht.
Hier jetzt mal meine httpd.conf ohne Kommentare http://jeenaparadies.servebeer.com/open/selfbilder/httpd-conf.txt
Grüße
Jeena Paradies
hallo,
Das sieht nicht so richtig gut aus. Mach mal daraus:
127.0.0.1 localhost
192.168.0.3 jeenas-home5
Ok das habe ich jetzt genau so gemacht.
Aber du schreibst nicht, ob es damit funktioniert hat.
Es gibt noch etwas, was ich als so selbstverständlich angesehen hbe, daß ich es nicht geschrieben habe: dein Rechner selbst muß bei dieser Konstruktion natürlich diese IP 192.168.0.3 haben. Ob sie vorhanden ist, zeigt dir "ifconfig" oder "ip addr".
Hier jetzt mal meine httpd.conf ohne Kommentare http://jeenaparadies.servebeer.com/open/selfbilder/httpd-conf.txt
Wie vermutet, steht da als ServerName bereits localhost drin und als DoxumentRoot /var/www. Damit ist ein virtualHost mit dem Namen "localhost" ganz und gar überflüssig. Sonst gibts an deiner httpd.conf nicht viel auszusetzen, sie ist ein wenig zu lang und enthält Teile, die du bestimmt nicht brauchst. Etwas unsicher bin ich natürlich, was du mit der allerletzten Zeile noch für eine /etc/apache/conf.d einbinden möchtest und ob du das überhaupt brauchst.
Grüße aus Berlin
Christoph S.
Hallo,
Aber du schreibst nicht, ob es damit funktioniert hat.
Nein leider nicht :/
Es gibt noch etwas, was ich als so selbstverständlich angesehen hbe, daß ich es nicht geschrieben habe: dein Rechner selbst muß bei dieser Konstruktion natürlich diese IP 192.168.0.3 haben. Ob sie vorhanden ist, zeigt dir "ifconfig" oder "ip addr".
Das hat er. Beweiß am Rechner meiner Frau ist mein Rechner als Gateway eingetragen mit 192.168.0.3
eth1 Protokoll:Ethernet Hardware Adresse 00:20:AF:4A:AB:C6
inet Adresse:192.168.0.3 Bcast:192.168.0.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1439 errors:0 dropped:0 overruns:0 frame:0
TX packets:1647 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:100
RX bytes:253820 (247.8 KiB) TX bytes:1202628 (1.1 MiB)
Interrupt:5 Basisadresse:0x220
Wie vermutet, steht da als ServerName bereits localhost drin und als DoxumentRoot /var/www. Damit ist ein virtualHost mit dem Namen "localhost" ganz und gar überflüssig.
Den habe ich ja jetzt auch ganz weggelassen.
Sonst gibts an deiner httpd.conf nicht viel auszusetzen, sie ist ein wenig zu lang und enthält Teile, die du bestimmt nicht brauchst.
Ja das stimmt bestimmt, aber ich bin noch unsicher was ich alles einfach weglassen kann, und bisher hat ja alles gut funktioniert.
Etwas unsicher bin ich natürlich, was du mit der allerletzten Zeile noch für eine /etc/apache/conf.d einbinden möchtest und ob du das überhaupt brauchst.
debian:/etc/apache/conf.d# ls
phpmyadmin
Das wurde warscheinlich bei der Installation von phpmyadmin automatisch reingeschrieben.
Da gibt es seit dem ich da jetzt wieder an den confs ein wenig rumgespielt habe wieder mal diese Alte abnormalität dass wenn ich eine PHP Seite aufrufe dann wird sie nicht ausgeliefert. Das aberwitzige dabei ist aber dass wenn ich http://localhost/phpmyadmin/ aufrufe alles ganz normal funktioniert. Das besteht ja auch aus lauter php Seiten. Es gibt auch keinen 500er oder 404er es passiert einfach nichts. Es wird auch nichts in die error.log geschrieben.
Grüße
Jeena Paradies
hallo,
Aber du schreibst nicht, ob es damit funktioniert hat.
Nein leider nicht :/
Na gut. Dann schau mal bitte in deine Modul-Liste unter /etc/apache/modules.conf, ob dort mod_vhost_alias oder etwas Ähnliches aktiviert ist. Das brauchst du.
Das hat er. Beweiß am Rechner meiner Frau ist mein Rechner als Gateway eingetragen mit 192.168.0.3
Der Eintrag kann mir völlig wurscht sein, der Beweis existiert erst, wenn deine Frau damit auch online gehen kann ;-)
Da gibt es seit dem ich da jetzt wieder an den confs ein wenig rumgespielt habe wieder mal diese Alte abnormalität dass wenn ich eine PHP Seite aufrufe dann wird sie nicht ausgeliefert.
Kann auch nicht. Dazu fehlt in deiner httpd.conf noch folgendes:
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
</IfModule>
Außerdem muß dann auch mod_php4 in der Modul-Liste aktiviert sein.
Das aberwitzige dabei ist aber dass wenn ich http://localhost/phpmyadmin/ aufrufe alles ganz normal funktioniert.
Das liegt am Konzept von phpmyadmin.
Grüße aus Berlin
Christoph S.
Hallo,
Der Eintrag kann mir völlig wurscht sein, der Beweis existiert erst, wenn deine Frau damit auch online gehen kann ;-)
Grr, das kann sie :)
Kann auch nicht. Dazu fehlt in deiner httpd.conf noch folgendes:
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
</IfModule>
Ok dass wusste ich nicht ich dachte dass
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
das schon erledigt.
Außerdem muß dann auch mod_php4 in der Modul-Liste aktiviert sein.
Na gut. Dann schau mal bitte in deine Modul-Liste unter /etc/apache/modules.conf, ob dort mod_vhost_alias oder etwas Ähnliches aktiviert ist. Das brauchst du.
Daran liegt es wohl. Beides fehlt bei mir. Ich habe auch das probiert reinzuschreiben
LoadModule mod_vhost_alias /usr/lib/apache/1.3/mod_vhost_alias.so
LoadModule mod_php4 /usr/lib/apache/1.3/mod_php4.so
aber
debian:/etc/apache# apachectl configtest
Syntax error on line 33 of /etc/apache/modules.conf:
Can't locate API module structure `mod_vhost_alias' in file /usr/lib/apache/1.3/mod_vhost_alias.so: /usr/sbin/apache: undefined symbol: mod_vhost_alias
und wenn ich das auskommentiere dann kommt
debian:/etc/apache# apachectl configtest
Syntax error on line 34 of /etc/apache/modules.conf:
Cannot load /usr/lib/apache/1.3/mod_php4.so into server: /usr/lib/apache/1.3/mod_php4.so: cannot open shared object file: No such file or directory
Also liegen diese *.so Dateien irgendwo anders bei mir?
Das liegt am Konzept von phpmyadmin.
Ach so.
Grüße
Jeena Paradies
hi,
ich dachte dass
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
das schon erledigt.
Nein. mod_mime ist zwar ziemlich "mächtig", aber hier brauchst du tatsächlich mod_php. Auf einer LINUX-Kiste ist es leicht, das Modul zu nehmen und nicht die CGI-Variante, die ich unter Windows bevorzuge.
Syntax error on line 33 of /etc/apache/modules.conf:
Can't locate API module structure `mod_vhost_alias' in file /usr/lib/apache/1.3/mod_vhost_alias.so: /usr/sbin/apache: undefined symbol: mod_vhost_alias
Warum hast du eigentlich einen Apache 1.3.x laufen? Für Debian kannst du dir von http://ftp.de.debian.org/debian/pool/main/a/apache2/ einen Apache 2.0.49 holen.
Syntax error on line 34 of /etc/apache/modules.conf:
Cannot load /usr/lib/apache/1.3/mod_php4.so into server
Also liegen diese *.so Dateien irgendwo anders bei mir?
Nein, wahrscheinlich hast du sie gar nicht.
Ich weiß nicht genau, _wie_ du dir deinen Apache installiert hast. Unter Umständen wird dir nichts andres übrigbleiben, als ihn nochmal neu selber zu kompilieren.
Jedenfalls haben wir jetzt erstmal geklärt, warum dein virtualHost nicht funktionieren kann und PHP scheinbar nicht funktioniert.
Grüße aus Berlin
Christoph S.
Hallo,
Warum hast du eigentlich einen Apache 1.3.x laufen? Für Debian kannst du dir von http://ftp.de.debian.org/debian/pool/main/a/apache2/ einen Apache 2.0.49 holen.
Meinst du ich soll das wirklich machen? Ich habe irgenwo von dir aussagen irgendwann gelesen dass da einige sachen noch nicht gingen mit dem 2.0er
Nein, wahrscheinlich hast du sie gar nicht.
Äm PHP hat doch bis gestern wunderbar funktioniert.
Ich weiß nicht genau, _wie_ du dir deinen Apache installiert hast. Unter Umständen wird dir nichts andres übrigbleiben, als ihn nochmal neu selber zu kompilieren.
Phuh, ne ne, damit habe ich nur schlechte Erfahrungen gemacht, und auf meinem 300 Mhz Celeron dauert das dann warscheinlich zwei Tage. Dann installiere ich mir jetzt doch lieber den 2.0er den du oben vorgeschlagen hast.
Jedenfalls haben wir jetzt erstmal geklärt, warum dein virtualHost nicht funktionieren kann und PHP scheinbar nicht funktioniert.
Ja einen wichtigen Schritt sind wir dann auf jeden fall schon mal weiter, vielen Dank übrigens für deine Hilfe.
Grüße
Jeena Paradies
Hallo,
Ich habe den 1.3.x weil er installiert wird wenn man apt-get install apache macht.
Bevor ich jetzt alles per Hand mache habe ich mal geschaut ob ich den 2er nicht doch per apt-get installieren kann und es geht anscheinend:
---------------------
debian:/etc/apache# apt-get install apache2
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Pakete apache2 ist ein virtuelles Pakete, das bereitgestellt wird von:
apache2-mpm-worker 2.0.49-1
apache2-mpm-threadpool 2.0.49-1
apache2-mpm-prefork 2.0.49-1
apache2-mpm-perchild 2.0.49-1
Sie sollten eines explizit zum Installieren auswählen.
E: Paket apache2 hat keinen Installationskandidaten
---------------------
Welchen sollte ich dann deiner Meinung nach nehmen, oder ist es egal? Soll ich den 1.3.x erst einmal deinstallieren damit die sich nicht in die Quere kommen? (Aber ich glaube das macht debian sowieso dann automatisch)
Grüße
Jeena Paradies
hallo,
Welchen sollte ich dann deiner Meinung nach nehmen, oder ist es egal? Soll ich den 1.3.x erst einmal deinstallieren damit die sich nicht in die Quere kommen? (Aber ich glaube das macht debian sowieso dann automatisch)
Nein, er wird nicht automatisch deinstalliert, es sei denn, du "befiehlst" es. Wenn du genügend Platz auf deiner Platte hast, kannst du beide Versionen nebeneinander installiert lassen und sogar beide laufen lassen. Du mußt dich bloß entscheiden, welcher als "default" als Systemdienst hochgefahren werden soll. In die Quere kommen können sie sich trotzdem, da sie wahrschenlich auf denselben port zugreifen möchten. Dann setzt du eben einen auf einen anderen port.
Grüße aus Berlin
Christoph S.
Hallo,
Nein, er wird nicht automatisch deinstalliert, es sei denn, du "befiehlst" es.
Jetzt habe ich einfach den 1.3er runtergeschmissen und den 2er installiert.
So weit so gut. Sieht jetzt alles ein wenig anders aus, vor allem habe ich keine modules.conf mehr und die httpd.conf ist leer.
Ich habe jetzt mal die # von hier weggemacht:
sieht also so aus in der apache2.conf aus:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
und in die leere httpd.conf das reingeschrieben:
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
</IfModule>
Aber wo ich jetzt dieses LoadModule reinschreiben soll kapiere ich nicht wirklich. Ich glaube dass dafür jetzt diese Verzeichnisse zuständig sind:
debian:/etc/apache2/mods-available# ls
actions.load auth_ldap.load cgi.load disk_cache.load headers.load mem_cache.load proxy_ftp.load ssl.conf usertrack.load
asis.load cache.load dav_fs.conf expires.load imap.load mime_magic.conf proxy_http.load ssl.load vhost_alias.load
auth_anon.load cern_meta.load dav_fs.load ext_filter.load include.load mime_magic.load proxy.load suexec.load
auth_dbm.load cgid.conf dav.load ext-filter.load info.load proxy.conf rewrite.load unique_id.load
auth_digest.load cgid.load deflate.load file_cache.load ldap.load proxy_connect.load speling.load userdir.conf
debian:/etc/apache2/mods-enabled# ls
actions.load cgi.load
Da sie in der apache2.conf includiert werden. vhost_alias.load scheint ja das zu sein was ich brauche aber von PHP keine Spur.
Grüße
Jeena Paradies
rehallo,
vor allem habe ich keine modules.conf mehr und die httpd.conf ist leer.
modules.conf brauchst du nicht unbedingt, es sei denn, du gibst das in der httpd.conf selbst so vor. Aber eine "leere" httpd.conf ist schlicht unmöglich.
sieht also so aus in der apache2.conf
Grmpf, was ist denn jetzt "apache2.conf"?
Aber wo ich jetzt dieses LoadModule reinschreiben soll kapiere ich nicht wirklich
Du bringst mich noch dazu, daß ich mir ein Debian hier installiere. Ich weiß nicht genau, was apt-get macht.
Ich glaube dass dafür jetzt diese Verzeichnisse zuständig sind:
debian:/etc/apache2/mods-available#
debian:/etc/apache2/mods-enabled#
Da sie in der apache2.conf includiert werden.
Nach deinem Inhaltsverzeichnis ist das höchstwahrschenlich der Fall.
vhost_alias.load scheint ja das zu sein was ich brauche
Es sieht sehr danach aus.
aber von PHP keine Spur.
Richtig, weil das nicht zum Apache selbst gehört. Das müßte während der PHP-Installation mitgeliefert bzw. eingerichtet werden. Unter http://ftp.de.debian.org/debian/pool/main/p/php4/ findest du das PHP-Modul, beispielsweise als http://ftp.de.debian.org/debian/pool/main/p/php4/libapache2-mod-php4_4.3.4-4_i386.deb.
Grüße aus Berlin
Christoph S.
Hallo,
Grmpf, was ist denn jetzt "apache2.conf"?
Das sieht fast aus wie die httpd.conf vom 1.3er
Richtig, weil das nicht zum Apache selbst gehört. Das müßte während der PHP-Installation mitgeliefert bzw. eingerichtet werden. Unter http://ftp.de.debian.org/debian/pool/main/p/php4/ findest du das PHP-Modul, beispielsweise als http://ftp.de.debian.org/debian/pool/main/p/php4/libapache2-mod-php4_4.3.4-4_i386.deb.
Ah super das klappt wunderbar, jetzt fehlt noch mysql und dann hab ich einen laufenden Apache 2.x. Leider sagt zur Zeit apt dass es keinen Installationskandidaten für mysql findet. Naja vielleicht ist das auch nur vorrübergehend (bei sid ja nicht ungewöhnlich)
Grüße
Jeena Paradies
hi,
gut, dann versuchen wir es jetzt zum Abschluß zu bringen.
Grmpf, was ist denn jetzt "apache2.conf"?
Das sieht fast aus wie die httpd.conf vom 1.3er
Dann wird sie es wohl auch sein, und Debian geht hier eigene Wege und verteilt einen neuen Namen. Doof - weil ich dann wegen des längst überfälligen und nahezu fertigen Updates meines Feature-Artikels mir doch noch ein aktuelles Debian installieren muß.
http://ftp.de.debian.org/debian/pool/main/p/php4/libapache2-mod-php4_4.3.4-4_i386.deb.
Ah super das klappt wunderbar
Siehst du ;-)
jetzt fehlt noch mysql und dann hab ich einen laufenden Apache 2.x.
Nö, den "laufenden Apache 2.0.49" hast du bereits.
Leider sagt zur Zeit apt dass es keinen Installationskandidaten für mysql findet.
Pffffff ... ich als Nicht-Debian-Benutzer darf dir die download-links anbietn, gelle? Nimm doch einfach irgendwas aus http://ftp.de.debian.org/debian/pool/main/m/mysql/ - da hättest du aber auch selber drauf kommen können.
Grüße aus Berlin
Christoph S.
Hallo,
Ah super das klappt wunderbar
Siehst du ;-)
Grr, so ganz klappt das wohl noch nicht ich bekomme immer Fatal error: Call to undefined function: mysql_connect() wenn ich an die Datenbank will.
--------------------
5. "Fatal error: Call to undefined function: mysql_connect() in /var/www/html/smallbusiness/include/database/db_mysql.inc on line 9"
PHP kennt in diesem Fall die Funktion mysql_connect() nicht. Das kann nur dann sein, wenn PHP ohne die MySQL Funktionen kompiliert wurde.
--------------------
Wer macht denn so was blödes und kompiliert PHP für ne Distri ohne MySQL Funktionen?
Nö, den "laufenden Apache 2.0.49" hast du bereits.
Wo du recht hast hast du recht :)
Pffffff ... ich als Nicht-Debian-Benutzer darf dir die download-links anbietn, gelle? Nimm doch einfach irgendwas aus http://ftp.de.debian.org/debian/pool/main/m/mysql/ - da hättest du aber auch selber drauf kommen können.
Ja nur weiß ich dann immer nicht was von den vielen Sachen ich da runterladen soll, und das ist ja das schöne an apt dass ich mir nie darüber Gedanken machen musste. Das ist wohl auch der Grund warum ich von Suse auf Debian umgestiegen bin. Bei Suse hatte ich _immer_ irgendwelche Abhängigkeitsprobleme.
Grüße
Jeena Paradies
seufz,
PHP kennt in diesem Fall die Funktion mysql_connect() nicht
Richtig. Ich weiß nicht, woher du diesen Funktionsnamen nimmst. Guckst du vielleicht mal auf http://de3.php.net/manual-lookup.php?pattern=mysql_connect()+&lang=de.
Das kann nur dann sein, wenn PHP ohne die MySQL Funktionen kompiliert wurde.
Nö. Einen solchen Funktionsnamen gibts halt nicht. Nimm eine Funktion, die es gibt.
Grüße aus Berlin
Christoph S.
Hallo,
Richtig. Ich weiß nicht, woher du diesen Funktionsnamen nimmst. Guckst du vielleicht mal auf http://de3.php.net/manual-lookup.php?pattern=mysql_connect()+&lang=de.
Ich weiß es auch nicht, aber das habe ich bisher schon immer so gemacht, deshalb hat es mich gewunder dass es nicht funktioniert.
Das kann nur dann sein, wenn PHP ohne die MySQL Funktionen kompiliert wurde.
Nö. Einen solchen Funktionsnamen gibts halt nicht. Nimm eine Funktion, die es gibt.
Also ich habe jetzt noch kräftig rumgesucht und folgendes gefunden:
Quelle: http://lists.debian.org/debian-user-de/2000/10/msg00047.html
---------------------------
wahrscheinlich wird das modul mysql.so nicht geladen.
1. im php-script mit dl("mysql.so"); das modul laden
2. oder in der datei /etc/php4/apache/php.ini in der sektion
'Dynamic Extensions' die zeile 'extension=mysql.so' einkommentieren/
einfügen.
---------------------------
Ich habe dann also die zeile 'extension=mysql.so' einkommentiert, aber nichts passierte. Danach habe ich dl("mysql.so"); versucht und es geht. Jetzt wäre es natürlich schön wenn ich es so wie früher hätte. Hast du da vielleicht eine Idee? Ansonsten muss ich halt in meine Scripte dl("mysql.so"); einfügen was mir aber komisch vorkommt.
Grüße
Jeena Paradies
hi,
das habe ich bisher schon immer so gemacht
Nö, du hast das bisher immer anders gemacht.
Schau dir einfach an, wie du den Befehl schreibst und wie er richtig aussehen sollte. Ich schreibe deine Form und die korrekte Form mal exakt untereinander:
mysql_connect ()
mysql_connect()
Siehst du es? Du hast einfach ein Leerzeichen drin, das da nicht reingehört.
Grüße aus Berlin
Christoph S.
Hallo,
mysql_connect ()
mysql_connect()
Siehst du es? Du hast einfach ein Leerzeichen drin, das da nicht reingehört.
Das war wohl in dem Text aus dieser komischen FAQ drin den ich gefunden habe. Mittlerweile weiß ich dass es doch reinkompiliert wurde nur dass ich da jedes mal dl("mysql.so"); ausführen muss was ich bisher nicht musste.
Beim mir im Script sieht es so aus (per copy&paste):
$connect = mysql_connect($dburl, $dbbenutzer, $dbpasswort);
if ($connect == FALSE) mail($webmastermail, "Datenbankfehler", "Es ist ein Fehler auf jeenaparadies.de aufgetreten. \nDie Seite $seite ist betroffen. \nAlso mach dich an die Arbeit fauler Sack! \nDer Fehler lautet:\n ".mysql_error());
Grüße
Jeena Paradies
Hallo,
- oder in der datei /etc/php4/apache/php.ini in der sektion
'Dynamic Extensions' die zeile 'extension=mysql.so' einkommentieren/
einfügen.
Maaan blöd bin ich!! Natürlich muss ich das in /etc/php4/apache2/php.ini ändern und nicht in /etc/php4/apache/php.ini
Jetzt klappt auch das wunderbar.
Ich danke dir vielmals für deine Hilfe Christoph. Ich habe heute sehr viel über meinen Apache gelernt, dank dir. Alleine hätte ich es wohl nicht gewagt diesen Schritt zu machen. Das letzte mal war es Zufall dass alles funktioniert hatte, aber jetzt weiß ich was ich wo eingestellt und installiert habe damit es funktioniert somit müsste es kein Problem sein das gleiche jetzt noch einmal hinzubekommen. (Vor allem weil auch dieser Thread für immer im Archiv für mich erreichbar sein wird)
Jetzt endlich mache ich mich auf und versuche alleine einen Vhost hinzubekommen. Falls ich es bis morgen nicht schaffen sollte dann frage ich noch einmal nach. Danke noch mals.
Grüße
Jeena Paradies
Hallo,
Vielleicht hilft dir das auch schon bevor du Debian installierst:
http://jeenaparadies.servebeer.com/open/selfbilder/apache2-debian-readme.txt
Grüße
Jeena Paradies
Hallo,
PHP kennt in diesem Fall die Funktion mysql_connect() nicht
Richtig. Ich weiß nicht, woher du diesen Funktionsnamen nimmst. Guckst du vielleicht mal auf http://de3.php.net/manual-lookup.php?pattern=mysql_connect()+&lang=de.
Das kann nur dann sein, wenn PHP ohne die MySQL Funktionen kompiliert wurde.
Nö. Einen solchen Funktionsnamen gibts halt nicht. Nimm eine Funktion, die es gibt.
Ja jetzt weiß ich woher ich das habe: http://de3.php.net/manual/de/function.mysql-connect.php. Das ist doch jetzt das selbe oder bin ich schon ganz blemblem???
Grüße
Jeena Paradies
rehallo,
Für Debian kannst du dir [...] einen Apache 2.0.49 holen.
Meinst du ich soll das wirklich machen? Ich habe irgenwo von dir aussagen irgendwann gelesen dass da einige sachen noch nicht gingen mit dem 2.0er
Möglich, muß aber wirklich eine Weile her sein. Seit Apache 2.0.48 sind die "Kinderkrankheiten" im wesentlichen bereinigt. Die SuSE 9.1 bietet auf ihren neuen CDs gar keinen 1.3.x mehr an, sondern "default" gleich einen 2.0.49.
Äm PHP hat doch bis gestern wunderbar funktioniert.
Das hast du vorhin anders beschrieben, ich seh da jetzt nicht so ganz durch.
Dann installiere ich mir jetzt doch lieber den 2.0er den du oben vorgeschlagen hast.
Ich habe mittlerweile gute Erfahrungen damit, allerdings habe ich im Moment kein Debian installiert.
Grüße aus Berlin
Christoph S.
Hallo,
Das hast du vorhin anders beschrieben, ich seh da jetzt nicht so ganz durch.
»»Da gibt es seit dem ich da jetzt wieder an den confs ein wenig rumgespielt habe wieder mal diese Alte abnormalität dass wenn ich eine PHP Seite aufrufe dann wird sie nicht ausgeliefert.
Also seit dem ich gestern an den configs rumgespielt habe funktioniert PHP nicht mehr. Das hatte ich auch schon ganz ganz früher so im November letztes Jahr als ich PHP das erste mal installiert habe. Siehe </archiv/2003/11/63235/#m359238> ab Themawechsel.
Ich habe mittlerweile gute Erfahrungen damit, allerdings habe ich im Moment kein Debian installiert.
Ok, aber das macht glaube ich nichts :)
Grüße
Jeena Paradies
Hallo,
Can't locate API module structure `mod_vhost_alias' in file /usr/lib/apache/1.3/mod_vhost_alias.so: /usr/sbin/apache: undefined symbol: mod_vhost_alias
Das liegt wohl daran dass
Module mod_vhost_alias
Compatibility: Available in Apache 1.3.7 and later.
und ich auf meinem Rechner
Apache/1.3.29 Server at localhost Port 80
installiert habe :/ kann ich das trotzdem irgendwie nutzen oder muss ich per Hand upgraden?
Grüße
Jeena Paradies
hi,
Module mod_vhost_alias
Compatibility: Available in Apache 1.3.7 and later.
Bedeutet, es ist seit Apache 1.3.7 verfügbar. Das ist schon sehr lange her.
und ich auf meinem Rechner
Apache/1.3.29 Server at localhost Port 80
installiert habe
Ja, na und? 29 ist deutlich höher als 7, also _kann_ mod_vhost_alias damit durchaus eingesetzt werden.
Christoph S.
Hallo,
Ja, na und? 29 ist deutlich höher als 7, also _kann_ mod_vhost_alias damit durchaus eingesetzt werden.
Frag mich nicht warum aber ich habe anstatt "29" - 2.9 gelesen und das war für mich weniger als 7
Grüße
Jeena Paradies