SK Zadanie 7From Łukasz Graczykowski(Difference between revisions)
Revision as of 10:30, 11 January 2017
ZadaniaLAMPLAMP jest to zestaw oprogramowania typu open source stanowiący popularną platformę serwerową dynamicznych stron WWW. Na LAMP składają się (zgodnie ze skrótem):
Platforma LAMP jest idealną bazą do uruchamiania różnego rodzaju systemów CMS (Content Management Systems), takich jak MediaWiki, Joomla, Wordpress czy Drupal, które są podstawą nowoczesnych stron internetowych. Celem zajęć będzie zainstalowanie i skonfigurowanie platformy LAMP w wersji Apache+MySQL+PHP. Następnie, w ramach przetestowania konfiguracji, postawimy prostą stronę internetową opartą na systemie zarządzania treścią Wordpress. Apache 2Apache to wieloplatformowy serwer WWW na licencji wolnego oprogramowania. Jest najszerzej stosowanym serwerem HTTP w Internecie. Drugim bardzo popularnym serwerem HTTP na rynku jest nginx. Decyzja, który z serwerów wykorzystać w konkretnym przypadku wymaga zawsze dokładnej oceny. Serwerem nginx nie będziemy się zajmować na zajęciach, jednakże instrukcje do jego instalacji można znaleźć tutaj: Instalacja serwera nginx. Zanim zacznieszZanim zaczniesz cokolwiek instalować: sudo apt-get update oraz ewentualnie sudo apt-get dist-upgrade Zadanie 1: instalacja Apache2Włączyć przeglądarkę i przejść do adresu http://localhost/ . Nie powinno się nic wyświetlić. Następnie należy zainstalować paczkę apache2 i przetestować czy działa: odświerzyć stronę. Powinna pojawić się strona Apache2 Debian Default Page. Strona serwowana w tym momencie przez nasz komputer znajduje się w katalogu /var/www/html/ (index.html). Proszę wejść do tego katalogu i stworzyć wewnątrz plik tekstowy foo.html z dowloną treścią (np. “Ala ma kota”). Plik powinien zostać poprawnie wyświetlony przez przeglądarkę po wpisaniu http://localhost/foo.html. Podobnie, po wpisaniu adresu IP komputera na którym uruchomiony jest serwer np. http://194.29.175.132/foo.html możemy oglądać zawartość strony na zewnątrz. Zadanie 2: własna strona www - virtual host
sudo chown -R $USER:$USER /var/www/example.com sudo chmod -R 755 /var/www
W ogólności na jednym serwerze WWW może znajdować się więcej niż jedna strona (domena). Takie pojedyncze strony nazwyane są wirtualnymi hostami Virtual Hosts. Tworzy się je oraz konfiguruje w katalogach platformy apache2, mianowicie /etc/apache2. Najważniejsze elementy konfiguracji apache2:
By skonfigurować wirtualny host najłatwiej jest skopiować domyślny plik konfiguracyjny 000-default.conf znajdujący się w katalogu sites-avaliable. Polecane jest nadanie mu nazwy odpowiadającej nazwie domeny np example.com.conf. Nowy plik musi się kończyć rozszerzeniem *.conf! Następnie należy go odpowiednio zmodyfikować:
ServerName http://www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
Ostatnim krokiem jest aktywacja hosta oraz restart serwera apache2.
Dowiązanie symboliczne jest to specjalny rodzaj pliku, który wskazuje (odwołując się za pomocą nazwy/ścieżki) na dowolny inny plik lub katalog, który może nawet w danej chwili nie istnieć; odwołanie jest niewidoczne na poziomie aplikacji - dowiązanie symboliczne jest traktowany jak zwykły plik lub katalog. Note Do stworzenia dowiązania symbolicznego służy komenda ln -s [CEL] [NAZWA_LINKU]. Alternatywnie można użyć polecenia: sudo a2ensite example.com. Restart serwera: service apache2 restart Domyślną stroną www wyświetlaną przez serwer po wpisaniu http://localhost jest strona określona przez pierwszy (alfabetycznie) plik konfiguracyjny znajdujący się w katalogu sites-enabled. Plik /etc/hosts Plik hosts służy do mapowania (przypisywania) domen internetowych do konkretnych adresów IP. Kiedyś używany powszechnie, w dzisiejszych czasach zwykle zastąpiony przez serwery DNS. Jest to zwykły tekstowy plik, na linuksach znjdujący się w /etc/hosts. Note Jeśli domena jest wpisana w /etc/hosts, zawsze będze używany IP z tego pliku, a komputer w ogóle nie wykona zapytania DNS. Pliki hosts są używane do dziś, np. w małych firmach, które nie chcą stawiać firmowych serwerów DNS. Należy zmodyfikować plik /etc/hosts w ten sposób, by dodać nowe mapowanie: 127.0.1.2 example.com Należy wpisać w pasku przeglądarki example.com (a właściwie w Państwa przypadku: nazwisko.net) i sprawdzić, czy uzyskujemy utworzoną stronę www. MySQL MySQL jest to wolnodostępny system zarządzania relacyjnymi bazami danych. Zadanie 3: instalacja i przetestowanie MySQL Należy zainstalować paczki mysql-server i mysql-client Uwaga, przy instalacji serwera zostanie poproszone o hasło roota dla MySQLa. Należy zapamiętać ustawione hasło! Zadaniem jest stworzenie bazy danych MojaBaza, oraz użytkownika admin, który będzie posiadał pełne uprawnienia dostępu do niej. Zapoznajmy się teraz z działaniem MySQL: Logowanie do bazy danych (dla użytkownika root). mysql -u root -p Wylistowanie wszystkich dostępnych baz danych: SHOW DATABASES; Stworzenie nowej bazy danych: CREATE DATABASE nazwa; Stworzenie nowego użytkownika: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; Nadawanie uprawnień użytkownikom: GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’; Należy nadać uprawnienia ALL PRIVILEGES nowo stworzonemu użytkownikowi dla nowo utworzonej bazy danych oraz wszystkich znajdujących się w jej wnętrzu tabel (należy użyć *): GRANT ALL PRIVILEGES ON nazwa. * TO 'newuser'@'localhost'; Proszę wyjść z systemu (exit) oraz zalogować się ponownie na utworzonego użytkownika, a następnie wypisać widoczne dla niego bazy danych. PHP PHP to skryptowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistnym. Można go umieszczać razem z kodem html. Zadanie 4: instalacja serwera PHP Należy zainstalować paczki php5, php-pear, php5-mysql. Następnie należy stworzyć plik info.php oraz umieścić go w katalogu naszej uprzednio utworzonej strony www (hostowanej przez apache2). Plik powinien zawierać kilka linijek napisanych w języku PHP, np.: <?php echo "Ala ma kota"; phpinfo(); ?> Znaczniki <?php oraz ?> oznaczają początek oraz koniec skryptu PHP. Funkcja echo działa podobnie jak w języku bash, natomiast phpinfo() wypisuje informacje o systemie. Na koniec zrestartuj serwer apache2. Sprawdź, czy strona wyświetlana jest poprawnie wchodząc na http://localhost/info.php Systemy Zarządzania Treścią (CMS) System zarządzania treścią (ang. Content Management System, CMS) jesto to oprogramowanie pozwalające na proste tworzenie oraz późniejszą aktualizację serwisu WWW, umożliwiające dalszą rozbudowę przez redakcyjny personel nietechniczny. Dodawane informacje zapisywane są w bazie danych (najczęściej MySQL), a sam system napisany jest zwykle w języku PHP. Zadanie 5: instalacja systemu WordPress Wordpress, najpopularniejszy CMS na świecie, zaprojektowany jest głównie do obsługi blogów. Jest darmowy i rozpowszechniony na licencji GNU. Jeśli interesują Cię inne CMS możesz zerknąć tutaj: http://jakicmswybrac.pl/ . Ściągnij ze strony https://wordpress.org/download/ oraz rozpakuj w dowolnym katalogu paczkę WordPress Wrzuć zawartość paczki do katalogu strony hostowanej przez serwer apache2. Skrypt instalacyjny można odpalić wchodząc na adres hostowanej strony. Podczas instalacji należy podać informacje związane z bazą danych gdzie będą przechowywane treści: należy podać nazwę użytkownika oraz nazwę bazy danych utworzonych uprzednio w zadaniu dotyczącym MySQL. Proszę zmodyfikować/dodać pierwszy wpis do nowo utworzonego bloga. |