LAMP w Windows Azure – Część II

By | Marzec 14, 2015

W kolejnej, drugiej części poradnika o instalacji LAMP  w Windows Azure zainstalujemy i skonfigurujemy Apache’a, PHP, MySQL’a i PHPMyAdmin’a. Zabezpieczymy także folder PHPMyAdmina hasłem, aby zapobiec nieautoryzowanym logowaniom.

Poprzednia część poradnika poświęcona była stworzeniu nowej maszyny w Windows Azure, link do niej znajduje się tutaj – Instalacja LAMP(Linux, Apache, MySQL, PHP) w środowisku Windows Azure. Czas więc rozpocząć działanie i konfigurację 😉

Instalacja Apache’a

Na samym początku musimy połączyć się do serwera SSH przy użyciu PuTTY, zalogować się a następnie zaktualizować listę pakietów dostępnych w naszym systemie. Robimy to poleceniem:
sudo apt-get update
Czekamy kilka sekund aż listy zostaną zaktualizowane a my powrócimy do wiersza poleceń. Kolejnym krokiem jest instalacja pakietu Apache2, naszego podstawowego serwera WWW, który jest fundamentem LAMP. Instalację przeprowadzamy również używając sudo apt-get:
sudo apt-get install Apache2
Po wpisaniu tego polecenia i naciśnięciu entera zostaniemy poproszeni o potwierdzenie instalacji dodatkowych pakietów, poprzez naciśnięcie Y.
Po zainstalowaniu tego serwera będziemy mogli sprawdzić, czy zainstalował się on poprawnie, używając adresu HTTP:
http://<nazwa naszego serwera>/
Jeżeli wszystko wykonaliśmy poprawnie, nasza strona będzie wyglądać tak:

[singlepic id=9]

Czas więc przejść do kolejnego etapu, czyli instalacji serwera baz danych.

Instalacja MySQL

Instalacja MySQL’a jest prosta i sprowadza się również do wpisania aż jednego polecenia w zdalnym terminalu:
sudo apt-get install mysql-server php5-mysql
i naciśnięciu Entera. Po potwierdzeniu chęci instalacji dodatkowych pakietów i odczekaniu kilku sekund zostaniemy poproszeni o ustawienie hasła użytkownika root czyli naszego administratora bazy danych. [singlepic id=11]Wpisujemy hasło, naciskamy enter i jeszcze raz wpisujemy hasło, również zatwierdzając. Przez kilka sekund na ekranie będziemy widzieli masę komunikatów aż powrócimy do naszego wiersza poleceń, gdzie będziemy mogli wpisać kolejne komendy, które skonfigurują i zabezpieczą naszą bazę 🙂
Wpisujemy więc w linii komend polecenie
sudo mysql_install_db
potwierdzamy enterem a następnie wpisujemy
sudo mysql_secure_installation
i również potwierdzamy enterem. Zostanie nam zadane kilka pytań, w pierwszym podajemy obecne hasło użytkownika root,  w następnym mamy możliwość zmiany hasła naszego root’a. Jeżeli jesteśmy z tego hasła zadowoleni wpisujemy N i naciskamy enter. Kolejne kilka pytań przechodzimy poprzez naciskanie entera co zabezpieczy naszą bazę danych, uniemożliwi logowanie bez hasła, wyłączymy możliwość zdalnego logowania się kontem root oraz usuniemy testową bazę danych, a na samym końcu przeładujemy uprawnienia. Jeżeli wszystko przebiegło bez problemów, przejdźmy teraz do instalacji PHP.

Instalacja PHP

Instalację PHP wykonujemy przy użyciu następującego polecenia:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
Tradycyjnie już, naciskamy enter a następnie Y i ponownie Enter.  To zainstaluje nam PHP, ostatni brakujący element naszego LAMP’a. Po instalacji przejdziemy do małej konfiguracji naszego nowego serwera, a następnie zainstalujemy sobie PHPMyAdmina.

Kolejnym krokiem, który musimy przeprowadzić aby troszkę przyśpieszyć wczytywanie stron i uprościć sobie działanie musimy zmienić w pliku konfiguracyjnym Apache’a domyślną nazwę pliku, która będzie ładowany po wejściu do danego folderu. Wpisujemy w konsoli polecenie:
sudo nano /etc/apache2/mods-enabled/dir.conf
i naciskamy enter. w linijce
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

zamieniamy kolejność wpisów, aby wyglądało to tak:
<IfModule mod_dir.c>
DirectoryIndex index.php index.cgi index.pl index.html index.xhtml index.htm
</IfModule>

po czym naciskamy Ctrl+X, następnie Y i enter. Powrócimy do wiersza poleceń skąd wykonamy następny krok, którym będzie zrestartowanie serwera, aby nowe ustawienia zaczęły obowiązywać. Wpisujemy więc
sudo service apache2 restart
i naciskamy Enter. Po kilku sekundach nasz serwer będzie działał z nowymi ustawieniami a my powrócimy do naszej linii komend.

Aby sprawdzić, czy nasz LAMP działa tak jak powinien utwórzmy sobie teraz przy użyciu wbudowanego edytora plik tekstowy, który po wywołaniu w przeglądarce poda nam informacje o aktualnie posiadanych przez nas wersjach oprogramowania. Wpisujemy więc w konsoli polecenie.
sudo nano /var/www/html/info.php
i naciskamy enter. W nowo otwartym oknie edytora nano wpisujemy następujący kod:
<?php
phpinfo();
?>
,

po czym naciskamy Ctrl + X, Y i Enter.

Otwieramy przeglądarkę internetową i wpisujemy w pasku adresu:
http://<nazwa naszego serwera>/info.php
Powinniśmy zobaczyć coś wyglądającego jak to:

[singlepic id=10]

Jest to krótka informacja o wszystkim, co do tej pory zainstalowaliśmy na naszym serwerze. Ze względów bezpieczeństwa powinniśmy usunąć ten plik poleceniem:
sudo rm /var/www/html/info.php
Czas na kolejny krok naszego poradnika, czyli instalacja i konfiguracja PHPMyAdmin’a.

Instalacja LAMP zakończona. Czas na instalację PHPMyAdmin

Aby zainstalować PHPMyAdmin’a, po raz kolejny wykorzystamy znany nam już dobrze sudo apt-get:
sudo apt-get install phpmyadmin apache2-utils
Podczas instalacji naciskamy Enter aby ustawić Apache2 jako nasz serwer WWW, następnie Yes, aby skonfigurować nasz serwer baz danych. W kolejnym okienku podajemy nasze hasło dla użytkownika root, a następnie hasło dla nowego użytkownika zwanego phpmyadmin. Kiedy konfiguracja się zakończy a my powrócimy do linii poleceń, musimy jednorazowo włączyć naszą aplikację. Robimy to otwierając plik konfiguracyjny apache’a poleceniem:
sudo nano /etc/apache2/apache2.conf
Naciskamy Page Down aby dostać się na koniec naszego pliku jedną linijkę:
Include /etc/phpmyadmin/apache.conf
a następnie zapisujemy plik i opuszczamy nano, (Ctrl+X, Y i Enter). Następnie restartujemy nasz serwer apache znanym już nam poleceniem
sudo service apache2 restart
Aby przetestować naszą instalację PHPMyAdmina, wchodzimy na stronę
http://<nazwa naszego serwera>/phpmyadmin
gdzie możemy się zalogować loginem i hasłem konta root, bądź phpmyadmin.

Ponieważ nasza baza danych jest niezbędna do prawidłowego funkcjonowania systemu zabezpieczymy teraz PHPMyAdmina kolejnym loginem i hasłem, co zmniejszy ryzyko ataku na naszą nowo postawioną stronę.

Zabezpiecznie hasłem katalogu PHPMyAdmin
Konfigurację zabezpieczeń rozpoczynamy od edycji pliku konfiguracyjnego folderu PHPMyAdmin, wpisując w linię komend polecenie:
sudo nano /etc/phpmyadmin/apache.conf
Szukamy sekcji Directory, która będzie wyglądać mniej więcej tak:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
[...]

Dopisujemy do niej linijkę
AllowOverride All ,która pozwoli skorzystać nam z pliku .HTACCESS.

Po dopisaniu linijki plik powinien wyglądać następująco:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
[...]

Standardowo już zapisujemy nasz kod naciskając Ctrl+X, Y i Enter.

Teraz musimy stworzyć plik .htaccess, wydając polecenie:
sudo nano /usr/share/phpmyadmin/.htaccess
Teraz pokażę wam sztuczkę. Zaznaczcie poniższy tekst, kliknijcie prawym i kopiuj, a następnie, w oknie PuTTY z uruchomionym nano po prostu kliknijcie prawym przyciskiem myszy. Tekst się po prostu wklei 😉
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.phpmyadmin.htpasswd
Require valid-user

Po wklejeniu standardowo opuszczamy edytor i przechodzimy do dodawania użytkownika do folderu 😉

Wpisujemy polecenie:
sudo httpasswd -c /etc/apache2/.phpmyadmin.htpasswd <nazwa_uzytkownika>

gdzie jako <nazwa_uzytkownika> wprowadzamy dowolną, wybraną przez nas nazwę i naciskamy enter. Zostaniemy poproszeni o podanie hasła.
Restartujemy Apache’a i możemy się cieszyć zabezpieczonym katalogiem PHPMyAdmin. Podczas logowania zobaczymy takie okienko:

[singlepic id=12]

Na dzisiaj to tyle. W kolejnej części zainstalujemy sobie WordPressa i przekierujemy CloudFlare na naszą domenę, a także przyśpieszymy czas ładowania naszych stron poprzez instalację Page Insight dla naszego Apache’a