Przedstawię stworzenie serwera WWW Apache z obsługą PHP i bazy danych MySQL pod linuksem (Fedora 6). Proces ten zajął mi trochę czasu zanim doszukałem się co i jak, ale z tym artykułem i dobrym netem to kwestia 15-30minut. A i proces instalacji tylko za pomocą gotowych paczek, więc jeśli ktoś szuka jak stworzyć ze źródeł niech szuka innego artykułu.

1. Pobieramy ustawienia repozytoriów:

CODE:
  1. rpm -Uvh http://www.fedorafaq.org/yum http://rpm.livna.org/livna-release-6.rpm

2. Pobieramy za pomocą YUMa następujące paczki:

  • serwer www Apache: httpd
  • bazę danych MySQL: mysql, mysql-server
  • powiązanie między PHP a MySQL: php-mysql
  • wymagane paczki z powiązań (o to zadba yum)

Jako root w konsoli wpisujemy więc:

CODE:
  1. yum install httpd php mysql mysql-server php-mysql

3. Po ściągnięciu i zainstalowaniu możemy przystąpić do konfiguracji.
4. Zaczynamy od MySQL. Odpalamy jako root usługę MySQL. W konsoli jako root dajemy więc:

CODE:
  1. service mysqld start

5. Jeśli usługa się uruchomiła powinniśmy dostać komunikat:

Uruchamianie MySQL:  [ OK ]

6. Zmieniamy teraz hasło użytkownika root bazy danych (domyślnie nie jest ono ustawione i każdy może do naszej bazy wejść). W konsoli dajemy więc:

CODE:
  1. mysqladmin -u root password 'nowe_haslo'

Gdzie w nowe_hasło podajemy swoje. Należy pamiętać o '', są obowiązkowe.

7. Logujemy się do bazy danych z konsoli:

CODE:
  1. mysql -u root -p

Zostaniemy poproszeni o hasło, które wcześniej ustawiliśmy.

8. Po zalogowaniu robimy porządek w bazie. Na początek kasujemy testową baze:

SQL:
  1. DROP DATABASE test;

Należy pamiętać o średniku na końcu, zapytanie nie zostanie wykonane aż go nie podamy.

9. Usuwamy dostęp anonimowych użytkowników:

SQL:
  1. DELETE FROM mysql.user WHERE user = '';
  2. FLUSH PRIVILEGES;

10. Teraz zabieramy się do konfiguracji Apacha. Otwieramy do edycji plik (vimem albo geditem w gnome): /etc/httpd/conf/httpd.conf

11. Możemy teraz zmienić domyślne miejsce trzymania stron /var/www/html na swoje. W moim przykładzie miejsce trzymania stron WWW będzie to: /home/www

12. Znajdujemy wpis: DocumentRoot "/var/www/html" zmieniamy go na DocumentRoot "/home/www"

13. Szukamy teraz wpisu: <Directory "/var/www/html"> zmieniamy go na <Directory "/home/www">

14. Zapisujemy i zamykamy plik konfiguracyjny.

15 . Jeśli mamy włączone SELinux , musimy dokonać parę zmian w jego ustawieniach. Jeśli mamy wyłączony możemy ominąć ten punkt.

Pod GNOME ustawienia SELinux możemy zmienić w: System-->Poziom bezpieczeństwa. Dajemy: Zmodyfikuj politykę SELinuksa->Usługa httpd. Zaznaczamy:

  • Pozwól demonowi httpd na zapisywanie w folderach o etykiecie public_content_rw_t
  • pozwól httpd na odczytywanie folderów domowych
  • pozwól httpd na używanie CGI
  • pozwól httpd na używanie swoich skryptów
  • pozwól skryptom httpd na zapisywanie plików w folderach o etykiecie public_content_rw_t
  • wyłącz ochronę SELinux dla demona httpd
  • wyłącz ochronę SELinux dla httpdsuexec
  • Złącz obsługę przez httpd wszystkich plików z treścią

16. Teraz musimy utworzyć katalog na strony www i inne katalogi:

CODE:
  1. cd /home
  2. mkdir www

17. Nadajemy mu prawa:

CODE:
  1. chmod -r 777 www

18. Wchodzimy do katlogu i w nim tworzymy testowy plik test.php z trescia:

PHP:
  1. &lt;?php phpinfo(); ?&gt;

19. Wcześniej już odpaliliśmy usługę mysqla, teraz odpalamy usługę Apacha (pod rootem):

CODE:
  1. service httpd start

20. Powinniśmy otrzymać komunikat:
Uruchamianie httpd: [ OK ]

21.Teraz odpalamy przeglądarkę i wpisujemy:
http://localhost/test.php

22. Jeśli ujrzymy stronę z informacjami na temat php, oznacza to że wszystko przebiegło pomyślnie. Od razu na tej stronie odszukujemy sekcji dotyczącej połączenia z mysql.

23. Jeśli strona nie startuje, odczytujemy logi (np. /var/log/httpd/)  i staramy się znaleźć bład.
24. Aby automatycznie startować serwer Apache i MySQL możemy sobie zrobić skrypty. Ja zrobiłem sobie tak:

  • skrypt startujący – stworzyłem plik o nazwie wwwstart w /sbin , treść pliku:
CODE:
  1. service mysqld start
  2. service httpd start

na pliku dałem prawo na wykonywanie chmod 766 wwwstartS

  • skrypt zatrzymujący – stworzyłem plik o nazwie wwwstop w /sbin , treść pliku:
CODE:
  1. service mysqld stop
  2. service httpd stop

na pliku dałem prawo na wykonywanie chmod 766 wwwstop25.

25. Aby uruchomić serwer w konsoli wpisujemy: wwwstart, aby zatrzymać: wwwstop (wszystko jako root)