[+]Różne Apache zdalny mysql i problem z latin2

Konfiguracja serwerów, usług, itp.
micro
Posty: 12
Rejestracja: 15 czerwca 2007, 11:35

[+]RóŻne Apache zdalny mysql i problem z latin2

Post autor: micro »

Witam,

Nie znalazłem nigdzie opisu podobnego problemu więc zwracam się do społeczności forum; być może ktoś zdoła mi pomóc uporać się z moim kłopotem, z którym walczę od dłuższego czasu i... zwyczajnie nie radzę sobie.

Są 2 maszyny, na obu jest Debian Etch wraz z Apache2 z obsługą php i mysql. Wszystko instalowane z paczek.
Pierwszy serwer powstał kilka miesięcy temu. Niestety, ma uszkodzony dysk i jestem zmuszony czym prędzej przenieść strony użytkowników na inną maszynę, która w tym celu powstała kilka dni temu.
Apache2 i dodatki instalowane z repo poprzez atp-get. Strony użytkowników korzystają z baz danych umieszczonych na zewnętrznych maszynach.

Teoretycznie konfiguracja drugiego serwera jest identyczna jak pierwszego, a jednak...nie.
Pierwszy świetnie się sprawuje, natomiast drugi... hmm.. są problemy.

Po przeniesieniu plików i testowym odpaleniu stron wyszły 2 problemy.
Serwer bardzo ładnie i szybko łączy się z bazami mysql na porcie 3306, natomiast gdy strona korzysta z mysql-a znajdującego się na innym porcie niż domyślny (np 3307 lub 3309) strona na kilka sekund zwiesza się. Włączyłem logowanie lecz w logach nic nie ma. :(
drugi problem to kodowanie. Bazy zewnętrzne są przeważnie w latin2. O ile pierwszy prawidłowo odczytuje kodowania, o tyle 2 coś miesza. Samo kodowanie znaków w plikach odczytywane jest prawidłowo, lecz w treściach zaczytywanych z bazy mysql zamiast polskich znaków są pytajniki

Poniżej przykład:
strona, która jest na pierwszym serwerze http://skiteam.pl
te same pliki, i ta sama zewnętrzna baza ale pliki na nowej maszynie http://skiteam.blee.pl (plik konfiguracyjny strony zmieniony tak, by strona pracowała pod tym adresem).

Reasumując:
2 serwery na 2 różnych maszynach o podobnej konfiguracji instalacja przez apt-get
Pierwszy, który powstał wcześniej - pracuje prawidłowo
Drugi, który powstał w zeszłym tygodniu bardzo wolno wykonuje zapytania do baz mysql na portach innych niż 3306, nie rozpoznaje w bazie danych kodowania innego niż utf8, np latin2 (chyba z góry zakłada, że jest to utf8 i nie pozwala sobie wytłumaczyć, że jest inaczej). Oba serwery nie wymuszają domyślnego kodowania (zakomentowane adddefaultcharset w apache.conf oraz puste default_charset w php.ini)

Nie ukrywam, iż zależy mi na szybkim rozwiązaniu problemu. Dlatego też jeśli potrzebne są dodatkowe informacje, proszę piszcie. Udostępnię.

Z góry dziękuję za zainteresowanie i okazaną pomoc ;)

EDIT://
moje subiektywne odczucie:
drugi serwer bez problemu łączy się z bazą jeśli w pliku strony jest zdefiniowany adres serwera sql bez podanego portu czyli na domyślnym.
Natomiast jeśli plik konfiguracyjny zawiera adres_serwera_mysql :p ort, rozszerzenie php ignoruje port i próbuje wykonać zapytanie do serwera na domyślnym porcie, a dopiero gdy dostanie odmowę dostępu łączy się ponownie ale z uwzględnieniem 'port'.
Przy czym to mój domysł. Nie wiem jak to sprawdzić i jak to zmienić

//EDIT:

Już sobie poradziłem. Wystarczyło pomyśleć.
Opiszę zastosowane przeze mnie rozwiązanie na wypadek, gdyby ktoś miał podobny problem.
  • W pliku konfiguracyjnym strony usuwamy port w adresie serwera mysql
  • w pliku htaccess dopisujemy linijkę php_value mysql.default_port port_serwera_sql. Jeśli plik htaccess nie występuje - tworzymy go
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS »

Co do kodowania zobacz jakie masz poustawiane wartości kodowania znaków przy połączeniu z bazą danych.
ODPOWIEDZ