Doszedłem do wniosku, że moja instalacja PHP i moja MySQL nie dają sobie rady; Pracuję nad stworzeniem mojej pierwszej strony internetowej, która używa MySQL do treści, ale po dwóch dniach, stronach podręcznika, dokumentacji online i dziesiątkach samouczków, po prostu nie mogę uruchomić części PHP / MySQL. Mam ustanowiony domowy serwer internetowy (jestem jedynym administratorem / użytkownikiem), który obsługuje Apache i hostuje moje strony internetowe. Mam zainstalowany MySQL i mogłem utworzyć bazę danych i wysłać zapytanie do niej przez Terminal. Mam zainstalowany PHP i mogę używać echa do drukowania tekstu na dokumencie. Kiedy jednak pracuję z MySQL, wszystko się zmienia…
Mam stronę zawierającą elementy inicjujące. zawiera kilka akapitów zakodowanego na stałe kodu HTML, a następnie kod PHP umożliwiający dostęp do MySQL. Kiedy po raz pierwszy załadowałem stronę, wszystko to skutkowało pustą stroną. Skomentowałem sekcję PHP i załadowałem ponownie, aby potwierdzić, że zwykły HTML nadal działa, co zadziałało. Dlatego część PHP nie pozwalała na ładowanie żadnej strony.
Aby rozpocząć rozwiązywanie problemów z moim kodem, zostawiłem cały komentarz PHP z wyjątkiem następującego kodu dla połączenia z serwerem, który jest dostosowany z kilku różnych samouczków:
<?
echo("<p>PHP is working</p>");
$ses = mysql_connect("localhost","username","password");
if(!$ses){
echo("<p>Connection to content server failed.</p>");
exit();
}
echo("<p>Database Connected</p>");
?>
Po załadowaniu strony ładuje się początkowy kod HTML oprócz akapitu z napisem „PHP działa”, ale nie pojawia się komunikat o błędzie ani o powodzeniu. Usunąłem strukturę If z kodu - aby pozostały tylko dwa echa i mysql_connect - i uzyskałem ten sam wynik.
Wygląda na to, że funkcja mysql_connect powoduje, że serwer przestaje ładować kod po uruchomieniu, ale nie mam pomysłów, jak to naprawić. Dla przypomnienia: zmodyfikowałem plik php.ini, aby zawierał wiersz „connection = msql.so”, i używam MySQL 5.5, Apache 2.2.22, PHP 5.3.10, Ubuntu 12.04. Ponadto zarówno mój router, jak i modem zostały skonfigurowane do przekazywania portu 3306 na serwer - chociaż nie widzę, jak to powinno być konieczne - a moja nazwa użytkownika i hasło MySQL zostały potrojone i są identyczne z tymi, których używam z powodzeniem w terminalu.
czego mi brakuje?
php5-mysql
?Odpowiedzi:
Wszystko wygląda OK, więc myślę, że twoja instalacja nie została ukończona. Aby mysql i php mogły się komunikować, musisz zainstalować
php5-mysql
pakiet:źródło
Zainstaluj
php5-mysql
pakiet i użyj mysqli_connect zamiast mysql_connectźródło
Znajdź wersję Tomcat od
/etc/init.d/
. Powinien istnieć plik o nazwie tomcat7, stąd wersja 7Czasami ponowne uruchomienie komputera pomaga w sortowaniu innych problemów. Po ponownym uruchomieniu nie zapomnij uruchomić:
źródło