| Przygotowanie dystrybucji GNU/Linux do instalacji Joomla! |
|
|
|
| Wpisany przez mslonik | |||||
| piątek, 15 stycznia 2010 22:05 | |||||
|
W artykule przedstawiam krok po kroku instalację środowiska Joomla! w wersji 1.5.15 w wybranej dystrybucji GNU/Linux (Xubuntu 9.10). Wszędzie, gdzie to tylko możliwe, posługuję się konsolą bash. Artykuł jest w pewnym zakresie ilustrowany zrzutami ekranów. W znacznej mierze jest to tłumaczenie strony, którą znalazłem na wiki dystrybucji Ubuntu, czyli tutaj. Zapraszam do lektury! Założenia:
Powyższe założenia oznaczają, że odpuścimy sobie w niektórych punktach bezpieczeństwo na rzecz prostowy instalacji i późniejszego użytkowania. Z tych samych względów artykuł nie powinien być wykorzystywany podczas instalacji 'produkcyjnej', na maszynach, które mają pełnić rolę serwerów internetowych.
Dlaczego GNU/Linux i Joomla! ? Powodów jest kilka. Jądro GNU/Linux bardzo dobrze radzi sobie z serwerami, a właśnie takich aplikacji będziemy potrzebować, by uruchomić środowisko Joomla!. Jest to więc niejako wybór naturalny. Co prawda uruchamiając serwery na naszym domowym komputerze nie koniecznie poczujemy co to znaczy, ale uważam, że dla czystej ciekawości warto spróbować. Konfiguracja serwerów pod GNU/Linux być może komuś wydaje się zadaniem skomplikowanym. Serwer to nic innego, jak jeszcze jedna aplikacja. Serwery najczęściej konfiguruje się poprzez edycję plików konfiguracyjnych. Ot i wszystko. Mi konfiguracja systemu operacyjnego zajęła może 30 minut, a informatykiem nie jestem. Wystarczyła jasno napisana instrukcja i wola zwycięstwa ;-)
Czego będziemy potrzebować, by zainstalować środowisko Joomla! w systemie opartym na jądrze GNU/Linux? Mówiąc najprościej wystarczy, jeżeli zapalimy LAMP-ę... Ale po kolei. Aplikacje niezbędne do instalacji środowiska Joomla!:
Ponieważ jestem zwolennikiem wolności, czyli systemów operacyjnych spod znaku GNU/Linux oraz aplikacji o otwartym kodzie, wybrałem następujący zestaw narzędzi:
Jeżeli spojrzymy na pierwsze litery wybranych aplikacji, to można z nich złożyć słowo LAMP, które po angielsku oznacza ni mniej ni więcej, jak właśnie lampę. Do dzieła! Lista pakietów, które chcemy zainstalować, wygląda następująco: apache2 php5-mysql libapache2-mod-php5 mysql-server
Otwieramy konsolę i wpisujemy: maciej@maciej-gucek2:~$ sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
W efekcie zostaniemy poproszeni o podanie hasła administratora. Następnie na ekranie zostaną wyświetlone następujące komunikaty:
[sudo] password for maciej:
Jak widać instalacja wymienionych aplikacji będzie wymagała ściągnięcia 25,4 MB archiwów, co pewnie chwilę potrwa. Warto rzucić okiem na listę zaproponowanych pakietów. Wszystko to na wypadek, gdybyśmy kiedyś chcieli tych aplikacji się pozbyć. Po wciśnięciu 'T' zostaną ściągnięte niezbędne pakiety i rozpocznie się proces instalacji. W pewnym momencie na ekran wyskoczy nam komunikat jak na Obrazek 1. Pakiet bazy danych wymaga na etapie instalacji podania hasła administratora serwera bazy danych. Proponuję podać to samo hasło, którego na codzień używamy do wykonywania poleceń wymagających uprawnień administratora. Następnie zostaniemy poproszeni o ponowne wpisanie tego hasła (Obrazek 2).
Koniec końców na ekranie zostaną wyświetlone następujące komunikaty: Prekonfiguracja pakietów ... apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
I to by było na tyle. Proces instalacji wymaganego oprogramowania właśnie został zakończony :-]
Testy Sprawdźmy, czy oprogramowanie zainstalowało się tak, jak byśmy tego chcieli. Zaczynamy od serwera www (Apache2). Uruchamiamy przeglądarkę internetową i w pasku adresu wpisujemy: http://localhost/ W odpowiedzi powinniśmy zobaczyć następujący komunikat: {slimbox /images/stories//20100116_JoomlaLinux/640_It_works.png, /images/stories//20100116_JoomlaLinux/200_It_works.png } Obrazek 3. 'It works!', czyli działa
Sprawdźmy, czy działa serwer bazodanowy. Jeżeli działa, to powinniśmy być w stanie uruchomić tzw. menedżera, czyli aplikację, która pozwala na administrację bazami danych (zakładanie/usuwanie baz, dodawanie/usuwanie tablic, zarządzanie dostępem i wiele, wiele innych). Po wpisaniu w konsoli polecenia 'mysql -u root -p' zostaniemy zapytani o hasło administratora ('root') serwera bazy danych. Podajemy takie samo hasło, jak to, które wpisaliśmy na etapie konfiguracji pakietu bazy danych, patrz 'Obrazek 2' oraz 'Obrazek 3'. Po wprowadzeniu hasła znak zachęty zmieni się w 'mysql>', co oznacza, że zostaliśmy zalogowani i możemy teraz np. wpisać jedno z poleceń języka SQL. Nam chodziło jednak tylko o sprawdzenie, czy faktycznie możemy się porozumieć z serwerem bazy danych za pomocą menedżera, co właśnie uczyniliśmy. maciej@maciej-gucek2:~$ mysql -u root -p
Opuszczamy menedżera bazy: mysql> \q
Do sprawdzenia został nam serwer PHP. Stworzymy najprostszy plik z roszerzeniem .php, który powinien zostać zinterpretowany przez serwer php. maciej@maciej-gucek2:~$ sudo nano /var/www/testphp.php
Wklejamy następującą treść, następnie zapisujemy i opuszczamy edytor: <?php phpinfo(); ?>
Ja, by móc obejrzeć efekt powyższych działań, musiałem jeszcze następującym poleceniem uruchomić parsera kodu php: maciej@maciej-gucek2:~$ sudo a2enmod php5 Następnie zrestartowałem serwer www: maciej@maciej-gucek2:~$ sudo /etc/init.d/apache2 restart apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Uruchamiamy przeglądarkę internetową. W polu adresu wpisujemy: http://localhost/testphp.php W efekcie na ekranie zostaną wyświetlone następujące informacje: {slimbox /images/stories//20100116_JoomlaLinux/640_PHP_info.png, /images/stories//20100116_JoomlaLinux/200_PHP_info.png } Obrazek 4. Efekt działania funkcji 'phpinfo'
Jeżeli wszystko jest w porządku, to na koniec warto jeszcze przemyśleć sposób, w jaki będziemy wykorzystywać nasze środowisko. Serwer www działa mniej więcej w ten sposób, że stara się interpretować wszystkie pliki umieszczone w konkretnym katalogu. Nasza strona internetowa to więc nic innego, jak pewien zbiór plików umieszczonych w określonym katalogu. Przykładowo jeżeli umieścimy przed chwilą utworzony plik 'testphp.php' w katalogu '/var/www' i posłużymy się przeglądarką internetową, to serwer www (Apache2) będzie w stanie wysłać klientowi serwera (przeglądarce internetowej) wymagane informacje (Obrazek 4). Jeżeli ten sam plik umieścimy w jakimś innym katalogu na dysku, to 'magia' nie zadziała, serwer nie będzie w stanie obsłużyć zapytania ze strony przeglądarki. Jak to już zostało napisane tym specjalnym katalogiem, do którego ma dostęp serwer www, jest '/var/www'.
Prace dodatkowe Sprawdźmy, kto jest właścicielem katalogu '/var/www':
maciej@maciej-gucek2:~$ ls -ld /var/www
Jak widać jest nim administrator (root). Z punktu widzenia zwykłego użytkownika jest to sytuacja niepożądana, bo nie będziemy mogli wygodnie przenosić lub kopiować plików między naszym katalogiem domowym '/home/maciej' a katalogiem przypisanym serwerowi www. Do wyboru mamy co najmniej dwie drogi:
Proponuję wybrać drugą z możliwości, bo moim zdaniem jest bardziej elegancka. Serwerowi Apache2 można przypisać kilka różnych katalogów. Dla każdego z katalogów musimy jednak napisać osobny plik konfiguracyjny. Pliki konfiguracyjne muszą się znajdować w katalogu '/etc/apache2/sites-available'. Domyślnie w tym katalogu znajduje się jeden plik konfiguracyjny o nazwie 'default' (ang. domyślny). Mając wiele plików konfiguracyjnych (powiązanych z katalogami) możemy włączać i wyłączać niektóre z nich, w zależności od potrzeb. Przypiszemy serwerowi www przykładowy katalog znajdujący się w naszym katalogu domowym. Niech będzie to katalog '/home/maciej/strona_www': maciej@maciej-gucek2:~$ mkdir strona_www
Sprawdźmy efekt naszych działań: maciej@maciej-gucek2:~$ ls -ld /home/maciej/strona_www
Będziemy się wzorować na domyślnym pliku konfiguracyjnym:
maciej@maciej-gucek2:~$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/strona_www
maciej@maciej-gucek2:~$ sudo nano /etc/apache2/sites-available/strona_www
Ostatnim krokiem jest przekazanie serwerowi informacji o zmienionym katalogu, w którym przechowujemy pliki naszej strony www. W dystrybucjach *ubuntu (Ubuntu, Kubuntu, Xubuntu itp.) znajdziemy specjalne narzędzia: 'a2ensite' (apache2enable site, czyli w dowolnym tłumaczeniu: strona, która ma zostać przypisana do serwera apache) oraz 'a2dissite' (apache2disable site, czyli w dowolnym tłumaczeniu: strona, która ma zostać odłączona od serwera apache). maciej@maciej-gucek2:~$ sudo a2dissite default && sudo a2ensite strona_www
W efekcie zobaczymy na ekranie następujące komunikaty: Site default disabled. Enabling site strona_www.Run '/etc/init.d/apache2 reload' to activate new configuration!
Zgodnie z sugestią restartujemy serwer www: maciej@maciej-gucek2:~$ sudo /etc/init.d/apache2 restart
Sprawdźmy, czy nowa konfiguracja działa. Jeżeli tak jest, to dowolny plik zrozumiały dla przeglądarki internetowej umieszczony w katalogu '/home/maciej/strona_www' powinien dać się odczytać przez przeglądarkę internetową. Utwórzmy taki przykładowy plik: maciej@maciej-gucek2:~$ nano /home/maciej/strona_www/index.html
Wpisujemy następującą treść: <b>Hello! It is working!</b>
Treść może nie spełnia wszystkich wymagań formalnych języka html, ale na nasze potrzeby to wystarczy. Następnie zapisujemy ją i opuszczamy edytor. W polu adresu przeglądarki internetowej wpisujemy: http://localhost/ Oczom naszym powinien objawić się napis jak na Obrazek 5. {slimbox /images/stories//20100116_JoomlaLinux/640_Hello.png, /images/stories//20100116_JoomlaLinux/200_Hello.png } Obrazek 5.
Być może drażni nas ostrzeżenie pojawiające się przy każdym uruchomieniu serwera www: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
By się go pozbyć utworzymy w odpowiednim miejscu plik 'fqdn': maciej@maciej-gucek2:~$ sudo nano /etc/apache2/conf.d/fqdn
Wewnątrz umieszczamy tekst 'ServerName localhost'. Zapisujemy, opuszczamy edytor. Sprawdzamy efekt powtórnie uruchamiając serwer: maciej@maciej-gucek2:~$ sudo /etc/init.d/apache2 restart
Pliki, które zostaną utworzone w katalogu zarządzanym przez serwer www będą domyślnie należały do użytkownika 'www-data' i grupy 'www-data'. Warto dodać siebie do grupy 'www-data' chociażby po to, by móc swobodnie dodawać czy usuwać pliki znajdujące w naszym domowym katalogu '/home/maciej/strona_www'. W przypadku dystrybucji *buntu wydajemy polecenie 'adduser', które doda nas do grupy użytkowników 'www-data': maciej@maciej-gucek2:~$ sudo adduser maciej www-data
W odpowiedzi na ekranie zostaną wyświetlone następujące informacje: [sudo] password for maciej: Dodawanie użytkownika `maciej' do grupy `www-data'... Adding user maciej to group www-data
Niestety po wykonaniu komendy 'groups', która służy do wyświetlenia grup, do których należy dany użytkownik, nie zobaczymy nowej grupy 'www-data' do chwili, gdy ponownie się nie zalogujemy do systemu. Warto o tym pamiętać.
Zakończenie To wszystko. Osiągnęliśmy wyznaczone cele. Co dalej? Na przykład możemy zainstalować środowisko Joomla! lub utworzyć lokalnie, tj. na naszym komputerze, kopię strony www działającą gdzieś na publicznym serwerze www. Ale to są już tematy na osobne artykuły.
Informacje dodatkowe: Wersja jądra GNU/Linux dla której została sporządzona poniższa instrukcja: maciej@maciej-gucek2:~$ uname -a
Podstawowe informacje o dystrybucji: maciej@maciej-gucek2:~$ lsb_release -a
|
mslonik.pl





