Strona 1 z 2

Nie można się logować na stronę po przeniesieniu z Fedory na Debiana

: 27 stycznia 2011, 16:44
autor: goska_23
Mam serwer stron www na Debianie Lenny i działające na nim dwie strony napisane/pisane/stale_uzupełniane w CMS-ie Word Press (Word Press działa na bazie mysql) - wszystko działa poprawnie. Na tymże Debianie są też bazy mysql od tych dwóch stron w Word Pressie i z nimi też jest wszystko w porządku.

Problem jest taki, że chciałam ze starej Fedory8 (do likwidacji) przenieść na mój ulubiony, nowy system Debian Lenny stronę napisaną przez kogoś ręcznie w php. Strona ta zawiera część opartą o dane w bazie mysql - dostęp do tej części możliwy jest po zalogowaniu i tutaj jest właśnie czarna rozpacz.

Nie jestem specjalistą od mysql i opadają mi ręce.
Zrobiłam z tą przenoszoną stroną tyle, że skopiowałam katalogi www i bazę mysql z tej fedory8 na Debiana Lenny. Zrobiłam podłączenie do bazy mysql.
Przeniesiona strona działa ale wywala się na tej części związanej z mysql, wywala się na logowaniu.
Po wpisaniu nazwy użytkownika i hasła w formularzu logowania tej strony w pasku adresu strony pokazuje mi, że otworzył ten plik [url]http://...../czlonek.php[/url] ale zawartość strony jest pusta - biały ekran.
W logach na Debianie nic nie znalazłam.

Próbowałam innego eksperymentu.
Działającą stronę na tej starej Fedorze8 (192.168.0.166) próbowałam podpiąć do mojej nowej bazy na Debianie Lenny (192.168.0.110). W tym momencie po próbie zalogowania wyświetla mi błąd:

Kod: Zaznacz cały

Zalogowanie niemożliwe. Należy być zalogowanym aby oglądać tę stronę
Jest to komunikat, który generuje się z wnętrza tego pliku czlonek.php. Tutaj już jest "coś" - widać, że z czymś jest problem.
Plik czlonek.php

Kod: Zaznacz cały

<?
require_once("funkcje_zak111.php");

session_start();
if($nazwa_uz && $haslo)

{
  if(loguj($nazwa_uz, $haslo))
  {
    // je�eli u�ytkownik znajduje si� w bazie danych rejestracja identyfikatora
    $prawid_uzyt=$nazwa_uz;
    session_register("prawid_uzyt");
?>
<frameset framespacing="0" frameborder="0" border="0">
<frame name="cala" src="czlonek1.php" framespacing="0" frameborder="0" border="0" noresize scrolling="no">
	<noframes>Niestety, Twoja przegl�darka nie obs�uguje ramek lub ich obs�uga zosta�a wy��czona. Sugerujemy 		          w��czenie obs�ugi ramek lub zainstalowanie nowszej wersji przegl�darki.
	</noframes>
</frameset>
<?
tworz_stopke_html();
  }
  else
  {
  
    tworz_naglowek_html("Problem:");
	 tworz_naglowek("Problem:");
    echo "Zalogowanie niemo�liwe.
          Nale�y by� zalogowanym aby ogl�da� t� stron�.";
    
    tworz_stopke_html();
    exit;
  }
}
//sprawdz_prawid_uzyt();
?>
Strona jest podłączana do bazy "zak111", która zawiera tabelę z loginami - ta tabela nazywa się: "uzytkownik" a zawarte w niej pola do loginu i hasła to odpowiednio: "nazwa_uz" i "haslo".
Przypuszczam, że problem może być taki, że na Debianie nie ma czegoś zainstalowanego od mysqla. (Miałam ten sam objaw na Fedorze8 jak wysypało mi się tam "mysqld").
No ale strony na mysqlu w Word Pressie na Debianie działają - tylko ta przenoszona strona nie działa.

Chciałabym ten problem rozwiązać na początek tak, żeby chociaż uruchomić tę stronę www z Fedory8 z podłączeniem do bazy znajdującej się już na Debianie Lenny.
Może to naprowadzi mnie na jakiś kolejny trop.

Poproszę o jakąś choćby mizerną wskazówkę!

Dodane:
Dołączę jeszcze plik tej stronki związany z logowaniem do bazy mysql, taki jest oryginalny na fedorze 8:

Kod: Zaznacz cały

<?

function lacz_bd()
{
  $wynik=mysql_pconnect("localhost", "root", "haslo1111");
  mysql_query("SET NAMES 'latin2'");
  if(!$wynik)
    return false;
  if(!mysql_select_db("zak111"))
    return false;

  return $wynik;
}


?>
Podłączając się tą stronką spoczywającą na fedorze do bazy na debianie (debian: 192.168.0.110) zmieniłam linijkę:

Kod: Zaznacz cały

  $wynik=mysql_pconnect("192.168.0.110", "goska1", "haslo2222");

: 27 stycznia 2011, 17:50
autor: tmy123
Podstawowa sprawa: czy mysql jest uruchomiony i czy np. z pod konsoli można przeglądać wymienione tabele?

: 27 stycznia 2011, 19:11
autor: goska_23
mysql jest uruchomiony i mam phpmyadmina w którym przeglądam bazy i ich tabele.
Dodane:
wynik polecenia:

Kod: Zaznacz cały

ps xa | grep mysqld
na debianie:

Kod: Zaznacz cały

28099 pts/1    S      0:00 /bin/sh /usr/bin/mysqld_safe
28136 pts/1    Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3036 --socket=/var/run/mysqld/mysqld.sock
28137 pts/1    S      0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld

Ten nietypowy port 3036 na debianie jest bo mam zalecenie żeby nic nie ruszać na routerze na którym tak jest ustawione.
W plikach my.cnf i php.ini ustawiłam pod to co jest na routerze czyli 3036.


na fedorze 8:

Kod: Zaznacz cały

2213 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid
 2273 ?        Sl    48:32 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock

: 27 stycznia 2011, 20:07
autor: lessmian2
Jeśli MySQL słucha na niestandardowym porcie, to czy zmieniłaś to w konfiguracji tej aplikacji PHP? I czy sprawdziłaś, czy aplikacja w ogóle łączy się poprawnie z bazą danych?

: 27 stycznia 2011, 21:18
autor: goska_23
Mam problem z analizą tego podłączenia do mysqla.
Z tego testu na Fedorze (katalogi strony www z Fedory - podłączenie do bazy na Debianie) widzę, że jest jakiś problem z podłączeniem do bazy.
Nie wiem, w którym miejscu kodu się "sypie". Pokazałam komunikat pochodzący pliku czlonek.php, który się się wyświetla.
To jest jeden problem jak stronę uruchamiam z Fedory a tylko baza jest na Debianie,

Drugi problem (jeśli całą stronę uruchamiam z Debiana - katalogi + baza) to wyświetlanie samej zawartości pliku czlonek.php (tego kodu pochodzącego z tego i jeszcze innych wywoływanych plików php do czego nie jest potrzebne połączenie z bazą mysql - powinien wyświetlić kawałek strony z informacją o błędzie - jak jest gdy uruchamiam z Fedory) - jak uruchamiam stronę w całości z Debiana (katalogi + baza) to nic mi się nie wyświetla, nawet ten komunikat, że:

Kod: Zaznacz cały

zalogowanie nie jest możliwe
który jest wywołany z pliku czlonek.php. Jest pusty biały ekran. Nie wiem gdzie szukać przyczyny tego problemu - w logach na Debianie nie ma od tego wpisów.

Jeszcze jutro spróbuję na Debianie ustawić na standardowe porty i na ruterze tak samo ale strona www, z którą jest problem nie ma żadnych odniesień do jakiegoś konkretnego portu.

Cały problem jest taki, że na Fedorze strona działa, a nie wiem jakie ustawienie oprócz tego portu mogę mieć inne na Debianie.

CMS-y Word Press mi działają na Debianie, a tam nie ustawiałam żadnych portów do baz mysql - Word Press się łączy ze swoimi bazami bez problemu.

: 27 stycznia 2011, 21:26
autor: lessmian2
Możliwe, że masz wyłączone wyświetlanie błędów w PHP. Zamień wpis dot. połączenia z bazą który wkleiłaś wyżej, na coś takiego:

Kod: Zaznacz cały

$wynik=mysql_pconnect("192.168.0.110:3036", "goska1", "haslo2222");
Nie podając portu, używasz domyślnego, czyli 3306. Być może w tym jest problem.

: 27 stycznia 2011, 21:34
autor: fnmirk
A ścieżki do katalogów i plików związanych z tą stroną masz poprawnie ustawione?

: 27 stycznia 2011, 21:45
autor: goska_23
lessmian2, tej linijki już próbowałam, nie ma żadnych zmian w stosunku do tego samego bez podania portu. A wyświetlanie błędów z tego co mi się wydaje mam włączone. Próbowałam trochę modyfikować te pliki php ze stronki i wtedy wyrzucał mi komunikaty o błędach.
Nie jestem biegła w pisaniu w php a tu zanosi się na to, że będę musiała popisać trochę kodów próbnych i "krok po kroku" dojść do tego co nie odpowiada Debianowi w stronie doskonale działającej na starszej Fedorze.

fnmirk, z tego co mi się wydaje to ta strona w momencie wchodzenia do opcji "logowania" przechodzi do podkatalogu w obrębie, którego są wszystkie pliki php wykorzystywane w czasie pracy z tą częścią strony dostępnej "po zalogowaniu".

: 27 stycznia 2011, 21:56
autor: fnmirk
To jeszcze sprawdź prawa dostępu do katalogów i plików.

: 27 stycznia 2011, 23:29
autor: Bastian
goska_23, pokaz kod funkcji

Kod: Zaznacz cały

loguj($nazwa_uz, $haslo)