Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][oracle] zawieszanie skryptu/apacha
Forum PHP.pl > Forum > PHP
Olimpia_ona
Witam,
do testowania skryptów php używam lokalnie zainstalowanego serwera Krasnal. Dziś dodałam sobie biblioteki do działania na bazie Oracle. Zrobiłam funkcję w której jest coś takiego:
  1. <?php
  2. ...
  3. $db = "mo";
  4. $c1 = oci_connect("sca", "sca", $db);
  5.  
  6. $pyt= "select * from oscan.O_OPERAT WHERE NR_OPERATU='$nr_operatu'";
  7. ...
  8. oci_close($c1);
  9. ....
  10. ?>


i zrobiło mi się jakoś tak dziwnie, że skrypt mogę wywołać tylko raz i on zadziała zgodnie z oczekiwaniem, niestety jak go odświeżę, czy też wywołam drugi raz, to zachowuje się tak jak by nie mógł się załadować.
Dopiero, gdy zrestartuje apacha to mogę powtórnie wywołać plik. O co w tym może chodzić? Jak mogę zanalizować problem?

W pewnym momencie wyskoczył mi nawet komunikat:
Wystąpił problem z aplikacją apache.exe i zostanie ona zamknięta. Przepraszamy za kłopoty.
AppName: apache.exe AppVer: 0.0.0.0 ModName: ntdll.dll

Wydaje mi się, że aplikacja nie została zamknięta i działała dalej, ale nie ten plik w którym próbuje użyć połączenia do bazy oracle.
Cały skrypt jest dość długi dla tego go nie wkleje, ale jak by była taka potrzeba to i owszem, wtedy go wkleję
Luciano
Polaczenie Oracla z PHP nie jest tak banalne jak z MySQLem. Czesto pojawiaja sie rozne dziwne problemy, zwlaszcza pod windowsem.
Na dobry poczatek zapomnij o krasnalach i zainstaluj recznie najnowsze wersje php i apache. Upewnij sie ze uzywasz poprawnego klienta oracle.
Olimpia_ona
Cytat(Luciano @ 12.12.2007, 17:15:24 ) *
Na dobry poczatek zapomnij o krasnalach i zainstaluj recznie najnowsze wersje php i apache. Upewnij sie ze uzywasz poprawnego klienta oracle.


Nigdy nie robiłam tego ręcznie. W krasnalu to jest bardzo proste, tylko instaluje klikając dalej, dalej i już mogę pisać i testować skrypty.
Co powinnam poczytać, by wiedzieć jak zainstalować php i apache ręcznie? No i co z bazą mySql, którą krasnal tez sam instaluje?

Na forum krasnala też ktoś miał podobny problem, niestety nie mam tam konta jeszcze.
Odpowiedziano mu:
sprawdz czy apache robi za proxy, jesli tak, to wylacz ten modul

Jak można to sprawdzić i wyłączyć ewentualnie?
Luciano
Instalowanie tego typu aplikacji z automagicnzych installerow czesto wiaze sie z dziwnymi problemami. Widzialem rozne dziwne przypadki wiele razy i jestem absolutnie pewny, ze lepiej to robic samemu. Wszystkie aplikacje czyli Apache2, PHP i MySQL sa swietnie zdokumentowane na stronie producentow i wlasnie tam powinno sie szukac odpowiedzi. Apache2 i MySQL to wlasciwie 2 binarki ktore trzeba 2kliknac dac kilka razy dalej i wsio. PHP polecam sciagnac w postaci ZIP (jest tez automagicnzy installer ale go bym nie polecal). Instalacja PHP jest dobrze opisana http://www.php.net/manual/en/install.windows.php. Co do konfiguracji apacha i tego proxy to nie potrafi Ci odpowiedziec poniewaz nigdy nic z proxy nie robilem. Natomiast wszystkie konfiguracyjne sprawy sa w apachowym katalogu CONF - polecam plik httpd.conf od niego nalezy zaczac.
Olimpia_ona
poddałam się i postanowiłam jednak zainstalować wszystko ręcznie wg. przepisu ze strony: http://www.exzilla.net/docs/php-oci8/apache-php-oci8-01.php
Sciągnełam następujące pliki:
- apache_2.2.6-win32-x86-no_ssl.msi
- php-5.2.5-Win32.zip
- php-5.2.5-win32-installer.msi

Apacha (httpd.conf) zmodyfikowałam tak jak to jest w punkcie 3. Manually configure. Czyli:
1. dodałam linijkę:
LoadModule php5_module c:/Program Files/PHP/php5apache.dll

bo zainstalowałam php w Program Files (domyślnie).
2. oraz linijkę:
AddType application/x-httpd-php .php

3. zgodnie z instrukcją zrobiłam stop apache i...
... niestety już apache nie chce wystartować. Wyskakuje komunikat: The requested operation has failed.
Problem dotyczy linijki LoadModule, dostaje komunikat: Syntax error dot. tej linii


Co zrobiłam nie tak?
SirZooro
Prawdopodobnie musisz jeszcze skopiować bibliotekę php5ts.dll (czy jakoś tak, nie pamiętam dokładnej nazwy) tam gdzie Apache będzie ją mógł znaleźć, np. do c:/windows/system32. Jest to opisane w manualu do PHP, w części poświęconej instalacji.
Olimpia_ona
Cytat(SirZooro @ 14.12.2007, 18:00:47 ) *
Prawdopodobnie musisz jeszcze skopiować bibliotekę php5ts.dll (czy jakoś tak, nie pamiętam dokładnej nazwy) tam gdzie Apache będzie ją mógł znaleźć, np. do c:/windows/system32. Jest to opisane w manualu do PHP, w części poświęconej instalacji.


Tak zrobiłam to, było opisane w punkcie 2.3.2.2 (http://www.exzilla.net/docs/php-oci8/apache-php-oci8-01.php). Skopiowałam plik z c:\Program Files\php\php5ts.dll do c:\windows\system32
SirZooro
Sprawdziłem listę plików PHP5 i już wiem - php5apache.dll jest dostosowana do Apache 1, a ty masz Apache 2.2. Musisz użyć php5apache2_2.dll:
Kod
LoadModule php5_module c:/Program Files/PHP/php5apache2_2.dll
Olimpia_ona
Cytat(SirZooro @ 14.12.2007, 21:05:30 ) *
Sprawdziłem listę plików PHP5 i już wiem - php5apache.dll jest dostosowana do Apache 1, a ty masz Apache 2.2. Musisz użyć php5apache2_2.dll:
Kod
LoadModule php5_module c:/Program Files/PHP/php5apache2_2.dll


Dokładnie tak mam wpisane, a właściwie wpisałam teraz:
LoadModule php5_module c:/Progra~1/PHP/php5apache2_2.dll

i dostałam nowy komunikat:
PHP Startup: Unalble to load dynamic library 'c:\Program Files\PHP\ext\php_mysql.dll' - Nie można odnaleźć określonej procedury.

Dodam, że pod tą ścieżką mam plik php_mysql.dll


OK. Na razie zakomentowałam to rozszerzenie, dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.