PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP kompilieren, der Apache, MySQL und die Files mit dem .h



alphanumeric
04.11.02, 11:08
Hallo,

ich brauche eure Hilfe weil die Installation von PHP 4.2.3 mich doch etwas zum Narren hällt. Ich habe mir auf meinem Linuxrechner (redhat 7.1) den Apache und MySQL installiert. Nun wollte ich eigentlich noch PHP dazupacken. Nun ja, das klappt noch nicht so ganz. Ich versuche PHP mit folgendem Befehl zu konfigurieren:

./configure --with-apache=/usr/local/apache --with-mysql=/usr/lib/mysql

Nun ja, PHP verweigert mir nun die zusammenarbeit mit dem Verweis:
configure: error: Invalid Apache directory - unable to find httpd.h under /usr/local/apache

Nun ja, ich bin ja nicht vollkommen dumm, suchen wir mal nach der Datei:

[root@localhost php-4.2.3]# locate httpd.h
/usr/local/apache/htdocs/manual/programs/httpd.html.en
/usr/local/apache/htdocs/manual/programs/httpd.html.html
/usr/local/apache/htdocs/manual/programs/httpd.html.ja.jis
/usr/local/apache/include/httpd.h
/root/php-4.2.3/sapi/phttpd/php_phttpd.h
/root/php-4.2.3/sapi/thttpd/php_thttpd.h
/root/apache_1.3.27/htdocs/manual/programs/httpd.html.en
/root/apache_1.3.27/htdocs/manual/programs/httpd.html.html
/root/apache_1.3.27/htdocs/manual/programs/httpd.html.ja.jis
/root/apache_1.3.27/src/include/httpd.h

Ok, installieren wir es mal mit
./configure --with-apache=/usr/local/apache/include --with-mysql=/usr/lib/mysql

ihr könnt es euch sicher denken:
configure: error: Invalid Apache directory - unable to find httpd.h under /usr/local/apache/include

Nun meine Frage, wieso findet PHP diese doofe Datei nicht? Sie ist ganz sicher da (habe sie auch schon angesehen, liegt also nicht an ner veralteten locate DB.

In der Hoffnung auf Hilfe
Marc

quinte17
04.11.02, 14:22
--with-apxs=/TOAPACHE/bin/apxs

oder beim 2er

--with-apxs2=/TOAPACHE2/bin/apxs

sonst compilest du des php direkt in den aopache rein.... wobei du dann den apache noch nicht compilieren hättest dürfen ;)

cu

PigPen|tuX
04.11.02, 15:10
huhu,

auch ein bissel senf von mir dazu :D

es gibt eine gute anleitung unter LAMP (http://www.baach.de)

dort wird das gut beschrieben mit allen zipp und zapp,
hat mir zumindest damals geholfen

mfg.
thom

alphanumeric
07.11.02, 17:02
Original geschrieben von PigPen|tuX
auch ein bissel senf von mir dazu :D

es gibt eine gute anleitung unter LAMP (http://www.baach.de)

dort wird das gut beschrieben mit allen zipp und zapp,
hat mir zumindest damals geholfen

Ok, ich habe nochmal alle halben Installationen runter geschmissen und es nach dem seiner Anleitung versucht. Ich komme bis zur letzten Zeile der mySQL Installation:

"/usr/local/mysql/current/bin/mysqladmin -u root password 'geheim'"

wenn ich das eingebe dann gibt es diese nette Meldung zurück:

/usr/local/mysql/current/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!


Was heisst das und wa smache ich dagegen?

Marc

quinte17
08.11.02, 06:42
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
: Schaue nach ob mysqld läuft und der socket: '/tmp/mysql.sock' existiert!

hast du denn den mysql server auch gestartet?

cu

alphanumeric
08.11.02, 12:08
Weiss ich nicht, wie startet ich den normalerweise. Aber ich denke schon, wenn ich mir so diese "Konversation" mit mysql anschau:

021108 13:17:19 Can't start server : Bind on unix socket: Address already in use
021108 13:17:19 Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
021108 13:17:19 Aborting

021108 13:17:19 /usr/local/mysql/3.23.52/libexec/mysqld: Shutdown Complete

[fserve@localhost serve]$ /usr/local/mysql/current/bin/mysqladmin -u root password 'geheim'
/usr/local/mysql/current/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

Naja, ich denke das spricht für sich, das ist genau in dieser reihenfolge so abgelaufen...

linuxerhh
08.11.02, 12:19
die gleiche sock fehlermeldung (111) hatte ich gestern auch habe hier im forum die threads durchsucht und einen gefunden der die ganze geschichte mit nem softlink löst ! die mysql.sock wird in der /tmp gesucht ist aber tatsächlich in /var/lib/mysql

einfach ln -s /var/lib/mysql/mysql.sock /tmp

eingeben und es dürfte erledigt sein :-)

alphanumeric
08.11.02, 12:43
leider nicht...

[root@localhost /root]# ln -s /var/lib/mysql/mysql.sock /tmp
ln: `/tmp/mysql.sock': Datei existiert

Ansonsten nichts neues an der Front... Selber Fehler

HangLoose
08.11.02, 13:07
hi

versuch das ganze mal mit /dein/pfad/safe_mysqld

alphanumeric
08.11.02, 14:24
Ist das gut oder schlecht?

Starting mysqld daemon with databases from /var/mysql/data
/usr/local/mysql/3.23.52/bin/safe_mysqld: line 273: 4510 Speicherzugriffsfehler $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-locking >>$err_log 2>&1
021108 15:35:42 mysqld ended

Ich tippe eher auf schlecht, oder?

HangLoose
08.11.02, 19:31
hi

ich würde auch sagen, eher schlecht.

in einem forum habe ich mal gelesen, das es an einer veralteten glibc liegen könnte. ich weiß aber nicht, ob man die so ohne weiteres updaten kann.

hast du mal ne andere rpm-version versucht?

MichlS
08.11.02, 22:06
@hangloose .. hallo :D .. und schon wieder supportest sql so wie bei mir vor kuzen

@alphanumeric

ich hatte unter suse 7.0 genau das gleiche problem .. schau mal auf diesen link evtl. kannst dir hier weiterhelfen .. da hat hangloose auch mitgeholfen :cool:



http://www.linuxforen.de/forums/showthread.php?s=&threadid=49325&perpage=20&highlight=mysql&pagenumber=1

HangLoose
08.11.02, 23:51
moin MichIs :)

mit mysql scheint es öfter probleme zu geben :confused: . ich habe grade nochmal in dem anderen thread nachgesehen. du hattest probleme mit der version 3.23.51 und hier ist es jetzt die version 3.23.52.

möglich, das die beide etwas buggy sind.


Gruß HangLoose

MichlS
09.11.02, 08:03
yeah thats right .. but .. ich denk das bei mir das falsche binary gestartet wurde .. bei mir startet jetzt diese befehlszeile den sql dienst

/etc/rc.d/mysql start
alles andere endete in div. fehlermeldungen socket 111 .. oder der server startet und beendet sofort wieder .. alles war dabei

just now sql run`s :cool:

greez mike

alphanumeric
09.11.02, 10:57
Also deine Beschreibung des Problems trifft in sehr guter Näherung auch auf meine problem zu, nur die Lösung erschliesst sicj mir noch nicht so ganz:

/etc/rc.d/mysql start
bash: /etc/rc.d/mysql: No such file or directory

Hmpf, warum kann das nicht einfach mal klappen... argh...

MichlS
10.11.02, 09:52
Hmpf, warum kann das nicht einfach mal klappen... argh...

weisst wie oft ich mich das frag ... jedesmal wenn ich was installier .. es hat echt noch nie etwas auf anhieb funktioniert .. das ist anscheinend so üblich bei linux :(

naja der weg zum ziel ist manchmal steinig

greez mike

Wiesel
18.12.02, 11:58
Ich habe eigentlich nach etwas anderem in dem Zusammenhang gesucht... aber da ich das Problem mit dem mySQL gerade hinter mir habe (unter Woody), und falls das Problem noch besteht:

1.) eine Gruppe namens mysql muss angelegt werden
~# groupadd mysql
2.) des weiteren ein gleichnamiger Benutzer ohne Passwort
~# useradd -g mysql mysql
3.) danach das mySQL-DB-Verzeichnis diesem User und dieser Gruppe zuordnen
~# chown mysql.mysql /var/mysql -Rv

dann zur Probe mysql starten:
./safe_mysqld --user=mysql

mit 'nmap localhost' prüfen, ob der Port 3306 geöffnet ist. In diesem Fall hat es geklappt.

Hoffe, ich konnte helfen. Bei mir bockt auch gerade das PHP-Kompilieren, aber bei diesem LAMP kommt wirklich eins nach dem anderen :mad::D


Gruss Wiesel

PigPen|tuX
18.12.02, 13:05
huhu wiesel,

wieso bockt dein php ?, damit hatte ich bisher persönlich noch nie probleme ;),

mysql ist da schon etwas kniffliger :D

@alpha....

starten erstmal mit -> /usr/local/mysql/current/bin/safe_mysqld &

wenn das klappt siehe -> cp support-files/mysql.server /etc/rc.d/init.d
chmod 744 /etc/rc.d/mysql.server
cd /etc/rc.d/rc2.d
ln -s ../init.d/mysql.server S20mysql.server
ln -s ../init.d/mysql.server K20mysql.server

mfg.
thom

Wiesel
19.12.02, 01:17
moinsen PigPen|Tux,
jo, muss mein PHP mal fragen- vielleicht hat es was gegen mich persönlich :D... ok, da kommt die Antwort:


make[3]: Entering directory `/root/php-4.2.3/sapi/apache'
gcc -I. -I/root/php-4.2.3/sapi/apache -I/root/php-4.2.3/main -I/root/php-4.2.3 -I/root/apache_1.3.27/src/include -I/root/apache_1.3.27/src/os/unix -I/root/php-4.2.3/Zend -I/usr/local/include -I/usr/local/mysql/current/include/mysql -I/root/php-4.2.3/ext/xml/expat -I/root/apache_1.3.27/src/include -I/root/apache_1.3.27/src/os/unix -I/root/php-4.2.3/TSRM -g -O2 -c sapi_apache.c && touch sapi_apache.lo
In file included from /root/apache_1.3.27/src/include/ap_config.h:77,
from /root/apache_1.3.27/src/include/httpd.h:72,
from sapi_apache.c:32:
/root/apache_1.3.27/src/include/ap_config_auto.h:6: unterminated `#if' conditional
In file included from /root/apache_1.3.27/src/include/httpd.h:72,
from sapi_apache.c:32:
/root/apache_1.3.27/src/include/ap_config.h:1396: warning: `XtOffsetOf' redefined
/root/php-4.2.3/main/php.h:346: warning: this is the location of the previous definition
make[3]: *** [sapi_apache.lo] Fehler 1
make[3]: Leaving directory `/root/php-4.2.3/sapi/apache'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/root/php-4.2.3/sapi/apache'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/root/php-4.2.3/sapi'
make: *** [all-recursive] Fehler 1
debian:~/php-4.2.3#


Bis dahin bin ich nach der Anleitung hier vorgegangen: http://www.linux-root.de/elug/lamp.html
Die Kompiliererei erledige ich hier mal vom Root-Homeverzeichnis aus, auch wenns nicht unbedingt die feine *X-Art ist. Sourcen kommen nach Beendigung eh wieder runter.

Noch mal zu mySQL: haste natürlich recht, das Background- '&' hinter dem Aufruf fehlte noch. ;)
Das mit dem mySQL.server-Script war auch ein Problem bei mir (tut nämlich nicht). Hab das Problem erst mal mit einem Zweizeilen-Initscript (nur der /usr/local/mysql/current/safe_mysqld-Aufruf drin) nach hinten geschoben und sehs mir an, wenn alles andere lööpt.


Gruss Wiesel

PigPen|tuX
19.12.02, 09:52
huhu,

irgendwie ist die Anleitung von der seite : http://www.linux-root.de/elug/lamp.html komisch.

wieso wird da 2 mal ein configure für den apache ausgeführt ?

-> also zuvor den apache vorbereiten das stimmt schon -> imho mit diesen zusätzen, das der apache alle module optional laden kann.

--------------------------------------------------
./configure --with-apache=../apache_1.3.26 \
--with-ssl=../openssl-0.9.6g \
--prefix=/usr/local/apache/1.3.26 \
--datadir=/var/www \
--enable-module=most \
--enable-shared=max \
--enable-module=ssl

-----------------------------------------------------

danach make -> zertifkate erzeugen -> make install

danach wird das php gebastelt.

schau dir mal die anleitung auf www.baach.de an ;)

mfg.
thom

ps: welche parameter gibst du denn am beim php-confen ? , ansonsten mal "make clean" und nochmal neu ./configure + die parameter :D

Wiesel
19.12.02, 11:44
die Params für das PHP-configure auf linux-root sind identisch mit denen des Baach-Tutorials. Die habe ich in eine Datei gepastet, eine lange Zeile draus und das Ganze ausführbar gemacht. Klappte auch soweit, nur der eigentliche make schlägt noch fehl.

Im Unterschied zu dem Tut habe ich zwei Tarballs in einer höheren Version: Freetype und den Indianer.

Mit Freetype 1.3.1 gabs den ersten Ärger. Da fehlte eine hinterher beim GD-Kompilieren eine Header-Datei namens ftglyph.h. Jemand riet mir, FT in der 2er zu nehmen, es ging dann mit der v2.1.2 durch.

Den Apache eine Unterversionsnummer höher, 1.3.27 statt .26, gabs auch ein passendes mod_ssl für.

Ansonsten nehmen die beiden Tuts sich nicht viel, aber ich werde es mit dem Baach-Teil ab OpenSSL noch mal von vorne versuchen.


Gruss Wiesel

PigPen|tuX
19.12.02, 12:03
huhu wiesel,

ich meine das hier die version ist erstmal egal, ->

:eek:

cd /usr/local/src/lamp/apache_1.3.20
./configure --prefix=/usr/local/apache/1.3.20

:eek:
danach php gebastelt und dann ->

nochmals:

:eek:

cd /usr/local/src/lamp/apache_1.3.20
SSL_BASE=/usr/local/openssl/current ./configure --prefix=/usr/local/apache/1.3.20 \
--datadir=/var/www \
--enable-module=ssl \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=php4

:eek:

ansosnten halte ich persönlich nichts von fertigen scripten, besonders wenn ich Sie nicht selbst geschrieben habe. :D

see you

thom

titus-noone
27.02.03, 22:16
Tach,
ich hab ein bisschen ein anderes Problem, hoffe aber das mir trotzdem jemand helfen kann.
Ich hab mysql compiliert und installiert, apache configuriert (./configure --with-layout=Apache)
und wollte nun php compilieren.
./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27

Das klappt auch ziemlich lange, bis schliesslich:
...
checking for type ushort... yes
checking for int8... no
checking base type of last arg to accept... socklen_t
checking return type of qsort... void
checking for mysql_close in -lmysqlclient... no
checking for mysql_errno in -lmysqlclient... no
configure: error: Try adding --with-zlib-dir=<DIR>. Please check config.log for more information.

Und da gehts leider nicht weiter.
Die Config.log versteh ich leider nicht,weiss also nicht, was darin von bedeutung sein könnte.
Würd mich echt freuen, wenn mir jemand 'nen Tip geben kann. Hab leider nicht wirklich Ahnung von Linux.(Mir hilft immer Mr. Google) THX


Ich nehme mysql 3.23.55 , hab Mandrake 9.0: