Artur Pyszczuk's blog...

"Everything is okay in the end, if it's not ok, then it's not the end."
Unknown
/home/linux/lamp/

Linux + Apache + MySQL + PHP

LAMP jest to skrót od 4 wyrazów: Linux, Apache, MySQL, PHP. Linuksa już mamy zainstalowanego, trzeba doinstalować 3 programy, aby nasz system mógł spełniać rolę serwera stron WWW.
Otwórz terminal, bo trochę będziemy z niego korzystać i wpisz:

$ sudo apt-get install apache2 php5 mysql-server

Podczas instalacji pakietów (a dokładnie MySQL'a) instalator poprosi nas o podanie hasła dla administratora bazy danych (Rys. 1).


MySQL pass
Rys. 1. Ustawienie hasła administratora bazy danych.


Apache
Aby sprawdzić, czy nasz serwer Apache działa, w przeglądarce wpisujemy (bądź kliknij link) http://localhost. Powinna otworzyć się strona, na której będzie napisane:

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Teraz musimy sprawdzić, czy Apache będzie współpracował z plikami php. W konsoli wpisz:

$ echo "<?php phpinfo(); ?>" > test.php && sudo mv test.php /var/www/

(Tworzenie pliku test.php z zawartością: <?php phpinfo(); ?> oraz przeniesienie pliku test.php do /var/www/)
Teraz w przeglądarce wpisz (bądź kliknij link) http://localhost/test.php.
Jeśli przeglądarka pokaże tabelkę z informacjami na temat PHP to jesteśmy w domu, jeśli nie (przeglądarka będzie chciała pobrać plik php), to najprawdopodobniej serwer Apache musi zostać zrestartowany. Tak więc wpisz:

$ sudo /etc/init.d/apache2 restart

I teraz spróbuj włączyć tę stronę http://localhost/test.php.

MySQL
Aby używać MySQL spod konsoli możemy zrobić to w następujący sposób:

$ mysql -u root -p

Trzeba będzie podać hasło, które ustawiliśmy podczas instalowania pakietów MySQL. Rys. 2 pokazuje jak to wygląda po zalogowaniu, oraz po wydaniu jednego prostego zapytania MySQL.

MySQL spod konsoli
Rys. 2. MySQL spod konsoli.


phpMyAdmin
Operowanie w konsoli bazą danych nie dla wszystkich może być takie proste, tak więc została stworzona aplikacja phpMyAdmin, która spod przeglądarki wykonuje operacje na bazie danych. Aby zainstalować phpMyAdmin'a w konsoli wpisz:

$ sudo apt-get install phpmyadmin

Podczas instalacji phpMyAdmin'a instalator poprosi nas, abyśmy zaznaczyli serwer (rys. 3), z którym phpMyAdmin ma współpracować, tak więc zaznaczamy Apache2 (zaznaczamy spacją) i przechodzimy dalej.

Instalacja phpMyAdmin
Rys. 3. Wybór serwera, z którym phpMyAdmin ma współpracować.


W kolejnym kroku instalator powie nam, że phpMyAdmin musi mieć zainstalowaną i skonfigurowaną bazę danych. Aby to uczynić, zgadzamy się na to, by baza danych została skonfigurowana dla phpMyAdmin'a za pomocą dbconfig-common (rys. 4).

Instalacja phpMyAdmin
Rys. 4. Konfiguracja bazy danych dla phpMyadmin za pomocą dbconfig-common.


Kolejną rzeczą, którą trzeba zrobić (jak pokazano na rys. 5) to wprowadzenie hasła administratora bazy danych, to które wpisywalismy podczas instalacji MySQL'a.

Instalacja phpMyAdmin
Rys. 5. Wprowadź hasło administratora bazy danych.


W następnym kroku trzeba wprowadzić hasło dla phpMyAdmina.

Instalacja phpMyAdmin
Rys. 6. Wprowadź hasło dla phpMyAdmin'a.


Aby skorzystać z phpMyAdmin'a w przeglądarce wpisz (lub kliknij link) http://localhost/phpmyadmin.
Username: root
Password: ustawione podczas instalacji MySQL'a.

Katalog public_html
Tworzymy katalog, do którego będziemy wrzucać nasze pliki:

$ mkdir ~/public_html

Dodajemy moduł obsługi katalogu użytkownika

$ sudo a2enmod userdir

a następnie restartujemy serwer Apache.

$ sudo /etc/init.d/apache2 restart

Na stronę, która znajduje się w /home/user/public_html wchodzimy wpisując w przeglądarce:

http://localhost/~user/

Gdzie user to nazwa użytkownika.

Uwaga

Jeśli używasz Ubuntu w wersji 10.04 lub wyższej to może się okazać, że dalej w miejscu ~/public_html pliki php nie są interpretowane, a jedyne co przeglądarka robi to chce ściągać te pliki. Aby to naprawić postępuj według niniejszych zaleceń. Przede wszystkim stworzymy dwa pliki. Pierwszy z nich to index.html,

$ gedit ~/public_html/index.html

którego zawartość prezentuje się poniżej.

<html>
     <head>
       <title>Strona: index.html</title>
     </head>
       <body>
       Cialo strony
       </body>
</html>

Drugim plikiem jest plik test.php, którego zawartość jest taka jak poprzednio (podczas sprawdzania, czy serwer Apache dziala), a więc w konsoli wpisz

$ echo "<?php phpinfo(); ?>" > ~/public_html/test.php

A następnie sprawdź czy serwer odczytuje oba pliki z Twojego katalogu domowego, aby to zrobić wpisz w adresie przeglądarki http://localhost/~user/ oraz http://localhost/~user/test.php

Plik index.html powinien się włączyć bez żadnego problemu, problem natomiast może być podczas włączenia pliku test.php. Jeśli dalej przeglądarka chce plik ściągnąć zamiast zinterpretować, musimy dokonać pewnych modyfikacji w pliku php5.conf. Aby to zrobić wykonaj poniższe polecenie.

$ sudo gedit /etc/apache2/mods-available/php5.conf

Znajdź następujące linie

  # To re-enable php in user directories comment the following lines
   # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
   # prevents .htaccess files from disabling it.
   <IfModule mod_userdir.c>
      <Directory /home/*/public_html>
        php_admin_value engine Off
      </Directory>
   </IfModule>

i zamień je na

  # To re-enable php in user directories comment the following lines
   # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
   # prevents .htaccess files from disabling it.
   #<IfModule mod_userdir.c>
      #<Directory /home/*/public_html>
        # php_admin_value engine Off
      # </Directory>
   # </IfModule>

Czyli poprostu "zahashuj" te pięć linijek, a następnie zrestartuj serwer Apache'a.

$ sudo /etc/init.d/apache2 restart

W tym momencie plik test.php powinien zostać zinterpretowany.

Pomimo iż do samej konfiguracji Apache'a nie trzeba robić nic więcej, to jednak bardzo często używany moduł Apache'a, a mianowicie mod_rewrite zostanie tutaj poniekąd omówiony (konfiguracja). Aby dowiedzieć się w pełni co ten moduł robi należy przeczytać dokumentację Apache'a. Ja w skrócie powiem tylko tyle, że za pomocą tego mechanizmu można zmieniać linki, tzn jeśli mamy plik test.php i chcemy, aby włączał się po wpisaniu xd.html musimy pewną regułę do pliku dodać. O tym co trzeba dodać dowiesz się później, najpierw trzeba go uruchomić, by działał.

Pierwszą czynnością jaką trzeba zrobić, to dodać moduł. Robi się to za pomocą polecenia

$ sudo a2enmod rewrite

Następnie restartujemy serwer Apache.

$ sudo /etc/init.d/apache2 restart

Kolejny krokiem jest edycja pliku default znajdującego się w /etc/apache2/sites-available/.

$ sudo gedit /etc/apache2/sites-available/default

W pliku tym znajdujemy następujące wiersze

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

I zamieniamy je na

DocumentRoot /home/user/public_html
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/user/public_html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Zmienione rzeczy zostały pogrubione. Jako user wpisujemy nazwę swojego użytkownika. Teraz zapisujemy, zamykamy plik i restartujemy Apache'a.

$ sudo /etc/init.d/apache2 restart

Następnie tworzymy plik .htaccess (kropka przed nazwą!), w katalogu ~/public_html

$ gedit ~/public_html/.htaccess

o następującej zawartości.

Options FollowSymLinks
RewriteEngine On
RewriteRule ^xd.html$ test.php [L]

Należy pamiętać o ważnej rzeczy, plik .htaccess musi posiadać odpowiednie uprawnienia. Za pomocą niniejszego polecenia te uprawnienia zostaną ustawione.

$ chmod 644 ~/public_html/.htaccess

W tym momencie wchodząc na stronę http://localhost/~user/xd.html otrzymamy to samo, jakbyśmy weszli na stronę test.php.


Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |