Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP nach Kompilation Installieren
Mahlzeit alle Miteinander,
um PHP5 mit den MSSQL-Funktionen zu nutzen, musste ich mir dieses neu kompilieren. Gesagt, getan. Alles fein. Nur die Installation (make install) klappt nicht wirklich. Es bleibt stetig das alte PHP 5.2.0 installiert, welches openSuse 10.2 mitbringt. Dieses hab ich per Yast installiert. Und nun auch ein wenig Angst, wenn ich es komplett deinstalliere, dass dann die Kommunikation mit dem Apachen nicht mehr funzt. Warum wird das neue nicht einfach über das alte PHP drüber gebügelt? Irgendwelche Vorschläge?
Vielen Dank,
Gruß,
Leeloo
baumgartner
26.02.07, 11:42
Wahrscheinlich weil es absicht ist dass man eine bereits existirende Installation überschreibt? Warum entfernst du das SUSE Paket nicht?
Meinst du eigentlich kompiliert oder installiert?
wie wäre es, wenn Du einfach die Version über das Paketmanagement installierst? Da sollte ein entsprechendes Paket (php-mysql oder so) enthalten sein.
Ansonsten - solange Du uns nicht verrätst, was Du genau wie gemacht hast können wir nur raten...
Hallihallöle und danke für die Antworten.
Was hab ich gemacht:
- openSuse 10.2 installiert
- per Yast Apache2 sowie PHP5 mit diversen Modulen installiert
- PHP 5.2.1 heruntergeladen, ausgepackt und mit ./configure kompiliert
- anschließend make und dann make install
Bis auf das meine phpinfo() immer noch meint, es wäre PHP 5.2.0 installiert, wurden keine Fehler angezeigt. weder bei ./configure, make noch make install.
Und es soll wirklich MS-SQL zur Verfügung stehen. Dass es ein php-mysql Modul gibt, weiß ich. Das brauch ich aber nicht.
Ok, wenn ich jetzt alle php5-.... Sachen deinstalliere. Meinste das klappt dann mit make install? Bin mir noch etwas unsicher.
Gruß,
Leeloo
PS: Mein ./configure-Befehl sah übrigens so aus:
./configure --prefix=/usr --datadir=/usr/share/php5 --mandir=/usr/share/man
--bindir=/usr/bin --with-libdir=lib --includedir=/usr/include
--sysconfdir=/etc/php5/apache2 --with-config-file-path=/etc/php5/apache2
--with-config-file-scan-dir=/etc/php5/conf.d --with-exec-dir=/usr/lib/php5/bin
--enable-libxml --enable-filter --enable-session --with-mm --with-pcre-regex=/usr
--enable-xml --enable-simplexml --enable-spl --disable-debug --enable-memory-limit
--enable-inline-optimization --enable-zend-multibyte --disable-rpath --with-apxs2=/usr/sbin/apxs2
--disable-all --disable-cli --with-mssql=/usr/local/freetds
... hast Du auch die Apache-Konfiguration an das neue Modul angepasst?
Abgesehen davon: "Du brauchst" MySQL-Unterstützung, weigerst Dich aber, das entsprechende YAST-php-Modul zu installieren? Aha.
ziehe dir das src.rpm von SUSE, passe das SPEC an (--with-mssql=/usr/local/freetds) und baue das RPM neu. Dann kannst du es einfach installieren
Abgesehen davon: "Du brauchst" MySQL-Unterstützung
Er redet von Microsoft SQL Server denke ich....
*AufStirnHau* Oh Gott, stimmt... Naja, Macht der Gewohnheit... Sorry.
Aber trotzdem: Apachekonfig angepasst?
Hi drcux,
ziehe dir das src.rpm von SUSE, passe das SPEC an (--with-mssql=/usr/local/freetds) und baue das RPM neu. Dann kannst du es einfach installieren
Hm ... Was für ein SPEC? Und wie baue ich das RPM dann neu?
Ok - schnell mal gegoogelt. So wie ich das verstehe, müsste es ein php5.spec geben, nachdem ich das Source-Paket installiert habe. Kann ich mit dem alten mitgelieferten PHP 5.2.0 machen, ja?! In der SPEC die Anpassung, wenn ich sie finde. Und Kompilieren: rpmbuild -ba php5.spec. Dabei wird nen Binary und nen Devel-RPM erstellt. Erstes kann ich dann per rpm -i installieren?! Einfach über das alte drüber? Oder das Alte lieber vorher deinstallieren?
Und ich brauch kein MySQL sondern wirklich MS SQL (das von Microsoft). Deshalb ja die Neukompilation. Da gibts leider kein RPM-Paket für :( Hab jedenfalls noch keines gefunden. Oder nicht intensiv danach gesucht.
VIelen Dank,
Gruß,
Leeloo
*AufStirnHau* Oh Gott, stimmt... Naja, Macht der Gewohnheit... Sorry.
Aber trotzdem: Apachekonfig angepasst?
Hehe ... da verwechselt man schnell mal ein y mit einem S ;-)
Was soll ich an der Apachekonfig anpassen? Hab mir auch schon den Wust von conf-Files reingezogen. Bis auf eine php5.conf, hab i nix weiter gefunden. Da steht was von einem Module mod_php5.c. Gibts auf meinem openSuse net. Merkwürdig.
Gruß,
Leeloo
Er redet von Microsoft SQL Server denke ich....
Er??? Wo???
Richtig gedacht, aber sie tut es :D
Oder wen meintest du?
Hm, Du hast ja --with-apxs gebaut - er müsste Dir also ein entsprechendes .so gebaut haben. Nach dem make install sollte das im Apache-Libexec-Verzeichnis liegen - wenn nicht, dann sollte es auch noch im sourcen-VZ liegen, das kannst Du dann manuell dorthin verschieben und dann halt entsprechend die Apache-Konfig anpassen, dass er dieses Modul lädt.
Wie es nun genau heisst / heissen muss und wie die entsprechende LoadModule-Anweisung lauten muss -> Apache-Doku.
Es sollte aber reichen, dass alte mod_php5.so / libphp5.so mit dem neu generierten zu überschreiben und den Apache neu zu starten...
Der Einfachhalthalber hab ich make install nochmal gemacht, um mir nochmal genauer anzuguggen, was der eigentlich macht:
Installing PHP SAPI module: apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' libphp5.la /usr/lib/apache2
/usr/lib/apr-1/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/
cp .libs/libphp5.so /usr/lib/apache2/libphp5.so
cp .libs/libphp5.lai /usr/lib/apache2/libphp5.la
libtool: install: warning: remember to run `libtool --finish /root/php-5.2.1/libs'
chmod 755 /usr/lib/apache2/libphp5.so
activating php5
"php5" already present
Installing build environment: /usr/lib/php/build/
Installing header files: /usr/include/php/
Installing helper programs: /usr/bin/
program: phpize
program: php-config
Installing man pages: /usr/share/man/man1/
page: phpize.1
page: php-config.1
Die libphp5.so hat er wohl überschrieben, nur die mod_php5.so nicht. Beide liegen in /usr/lib/apache2/.
Interessant ist die Ausgabe: "php5" already present
Was das wohl zu bedeuten hat? Kann er deshalb die mod_php5.so nicht überschreiben?
Was hat eigentlich dieses: rembember to run libtool zu bedeuten? Ist nämlich bei mir net installiert. Tu ich grad. Mal schaun, was dann passiert. Der installiert die beiden Libaries einfach unter libs/ in dem Verzeichnis was dort eben angegeben ist. Blöd ...
Gruß,
Leeloo
So wie ich das verstehe, müsste es ein php5.spec geben, nachdem ich das Source-Paket installiert habe.
richtig, es liegt unter /usr/src/packages/SPECS/
Kann ich mit dem alten mitgelieferten PHP 5.2.0 machen, ja?!
ja, sollte gehen
In der SPEC die Anpassung, wenn ich sie finde. Und Kompilieren: rpmbuild -ba php5.spec. Dabei wird nen Binary und nen Devel-RPM erstellt. Erstes kann ich dann per rpm -i installieren?! Einfach über das alte drüber? Oder das Alte lieber vorher deinstallieren?
rpm -U /usr/src/packages/RPMS/i586/php_blah_.rpm
damit updatest du dein installietes RPM
Hallo drcux,
ich danke dir für deine Hilfe. Mein Problem ist leider immer noch nicht gelöst. Das rpmbuild ist leider nicht erfolgreich und dauert irgendwie immer ziemlich lange. Nach dem ich die notwenigen Konfigurationen vorgenommen hab (d.h. ich hab die Hälfte von den Modulen erstmal auskommentiert, weil: Brauch ich nicht.) Lief es auch gut durch, doch scheitert es jetzt an dem Befehl mv php.1 php5.1. Fehlermeldung:
Cannot stat ‘php.1’ No such file or directory.
Stimmt ja auch, dass die Datei nicht da ist. Nur kann ich keinen Einfluss darauf nehmen, weil die beim Kompilieren ja dort erstellt werden muss. Ist ja ein temporäres Verzeichnis, dass am Anfang immer mit rm -rf gesäubert wird. Die php.1 liegt allerdings in einem anderen dieser temporären Verzeichnisse.
/usr/src/packages/BULID/php-5.2.0/build-cli/sapi/cli/php.1
Und nicht in dem, wo der grad ist:
$RPM_BUILD_ROOT/%{_mandir}/man1
Back to the Start. Statt openSuse diesmal gleich mit PHP zu installieren, lass ich das ganz weg und installier nur den Apachen. Dann probier ich das ganze nochmal mit ./configure und evtl. auch nochmal mit dem rpmbuild. Wenn das nicht klappt spring ich aus dem Fenster. Das muss doch irgendwie gehen. Was zum Teufel mach ich falsch? Hab wohl immer noch nicht den kompletten Durchblick *grummel* Ich beiße mir daran jetzt schon Tage die Zähnen aus. Das kann doch nicht sein. *gleicheinenSchreianfallkrieg*
Trotzdem danke und weiterhin verzweifelte Grüße,
Leeloo
:confused:
(d.h. ich hab die Hälfte von den Modulen erstmal auskommentiert, weil: Brauch ich nicht.)
warum? Dann ist es ja auch kein Wunder, wenn der Build nicht durchläuft...
Naja, er würde auch sonst net durchlaufen, weil die ganzen für mich unsinnigen Module ja auch noch diverse Devel-Pakte etc. brauchen und die müsst ich erstmal nachladen.
Den RPMBUILD hab ich nun erstmal über den Haufen geworfen und mich wieder an ./configure und php-5.2.1 gewagt. Hab mit dem Umgang von RPMBUILD ja einiges gelernt.
Moral von der Geschicht: Erzeuge ein php5.conf in /etc/apache2/conf.d allerdings mit folgendem Inhalt:
<IfModule mod_php5.c>
AddHandler application/x-httpd-php .php4
AddHandler application/x-httpd-php .php5
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .php4s
AddHandler application/x-httpd-php-source .php5s
AddHandler application/x-httpd-php-source .phps
DirectoryIndex index.php4
DirectoryIndex index.php5
DirectoryIndex index.php
</IfModule>
und nicht,wie woanders angegeben:
LoadModule php5_module /usr/lib/apache2/libphp5.so
AddType application/x-httpd-php php
Damit meint der Apache2 nur: PHP5-Modul schon geladen.
So, dann werd ich mal schaun, was ich da verbrochen hab und ob noch alles so funzt, wie es vorher funzte, nur jetzt eben mit PHP-MSSQL-Funktionen :D
Liebe Grüße,
Leeloo
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.