Skrót LAMP odnosi się do zestawu oprogramowania o otwartym kodzie źródłowym, powszechnie odnoszącego się do platformy serwera dynamicznych stron WWW. Po Polsku LAMP oznacza dosłownie Linux Apache MySQL PHP. Jest to pełen pakiet aplikacji i oprogramowania potrzebnego do uruchomienia serwera WWW z bazą danych na naszej maszynie.
Instalacja jest dośc prosta i nie wymaga specjalnych umiejętności:
W przypadku systemów Ubuntu/Lubuntu Mint itp. :
sudo su
A później: (w przypadku Debiana, logujemy się po prostu na konto root i efekt będzie ten sam)
aptitude install apache2 apache2-utils apache2-mpm-prefork php5 php5-common mysql-server mysql-common libapache2-mod-php5 php5-mysql phpmyadmin
Podczas instalacji zostajemy zapytani o kilka opcji m.in hasło do administratora bazy danych mysql.
Domyślnie serwer www nasłuchuje na katalog /var/www i tam należy wgrywać własną stronę WWW.
Serwer działa teraz pod adresem http://<IPSerwera>/ bądź http://localhost
Test PHP:
touch /var/www/test.php echo "<?php phpinfo(); ?>" >> /var/www/test.php
I wczytujemy w przeglądarce http://<IPSerwera>/test.php lub http://localhost/test.php
Jeśli poprawnie nie działa to powinno pomóc przeładowanie serwera Apache
a2enmod php5 /etc/init.d/apache2 force-reload
Test MySQL
mysql -u root -p
Powinien pojawić się monit o hasło – podajemy je.
Tak wygląda odpowiedź serwera MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 859 Server version: 5.5.33-1 (Debian) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Strony możemy kopiować do katalogu
- /var/www – jednak do tego wymagane są uprawnienia root’a
- /public_html – katalog zakładamy w naszym katalogu, i nie musimy mieć uprawnień administracyjnych
- By można było korzystać z katalogu public_html znajdującym się w naszym katalogu domowym
Musimy wykonać następujące kroki z poziomu użytkownika:
mkdir ~/public_html
Jednorazowe uaktywnienie modułu userdir
a2enmod userdir
Na taką stronę wchodzimy przez taki adres: http://localhost/~twoja-nazwa-uzytkownika np: http://localhost/~krzysztof lub http://localhost/~user3
Warto zaznaczyć że katalogi i pliki udostępniane przez serwer Apache2 powinny mieć odpowiednie uprawnienia (względy bezpieczeństwa)
- katalogi 755
- pliki 644
- jeśli korzystamy z public_html to nasz katalog domowy powinien mieć uprawnienia 711
Do zmiany uprawnień używamy chmod.
Apache i moduł SSL czyli protokuł https
Generowanie certyfikatu:
mkdir /etc/apache2/ssl; cd /etc/apache2/ssl openssl genrsa -out /etc/apache2/ssl/apache.key 1024 openssl req -new -x509 -days 365 -key /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Po tym poleceniu program zapyta nas o kilka informacji, które należy podać w celu dostarczenia niezbędnych informacji organowi wydającemu certyfikaty.
Aktywujemy port 443
echo "Listen 443" >> /etc/apache2/ports.conf
Instalacja certyfikatu: (instalacja modułu jeśli brak i jego uruchomienie)
apt-get install apache2 libapache-mod-ssl a2enmod ssl /etc/init.d/apache2 restart cd /etc/apache2/sites-available cp 000-default.conf default-ssl.conf
I edytujemy default-ssl.conf
nano default-ssl.conf
i wklejamy: ( a właściwie zamieniamy)
NameVirtualHost *:443 <virtualhost *:443> ServerAdmin webmaster@localhost SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key DocumentRoot /var/www/ ...
Na koniec:
a2ensite ssl /etc/init.d/apache2 restart
Wystarczy teraz wczytać https://<ip-serwera> lub https://localhost
Reasumując:
- Serwer WWW znajduje się w katalogu /var/www ale można włączyć moduł userdir
- Adres do serwera to po prostu http://<ip-serwera>
- Adres do phpmyadmina http://<ip-serwera>/phpmyadmin
- Domyślny port http 80
- Domyślny port mysql 3306
- Domyślny port https 443