OpenWrt - LAMP
Instalacja i konfiguracja Apache/MySQL/PHP w OpenWrtOstatnia zmiana: 2012-08-09 11:07
1. Apache
1.1. Instalacja
1.2. Konfiguracja
1.3. Uruchomienie
2. PHP5
2.1. Instalacja
2.2. Konfiguracja
3. MySQL
3.1. Instalacja
3.2. Konfiguracja
3.3. Uruchomienie
4. Zakończenie
LAMP jest akronimem określającym platformę serwerową składającą się z następujących elementów:
- Linux (system operacyjny)
- Apache (serwer www)
- MySQL (baza danych)
- PHP (język skryptowy)
Niezbędne jest posiadanie zewnętrznego nośnika na dane bazy oraz najlepiej extroot, jako że same pakiety zajmują dość dużo miejsca.
Założenia:
- serwer nasłuchuje na porcie 80 (więc wyłączamy wbudowane LuCI)
- katalog główny serwera to /www1
# opkg update
# mkdir -p /www1
# /etc/init.d/uhttpd stop
# /etc/init.d/uhttpd disable
Apache
Instalacja
# opkg install apache
Konfiguracja
Plik konfiguracyjny znajduje się w pliku /etc/apache/httpd.conf. Należy zmienić linię zawierającą DocumentRoot tak, aby wskazywała na wymagany przez nas katalog, czyli:
DocumentRoot "/usr/share/htdocs"
DocumentRoot "/www1"
<Directory "/usr/share/htdocs">
<Directory "/www1">
Uruchomienie
# apachectl start
PHP5
Instalacja
# opkg install php5-cgi php5-mod-mysql
Konfiguracja
Do zmiany niezbędna jest aktualizacja pliku konfiguracyjnego apache. Dodajemy handler do obsługi plików php przez cgi na końcu pliku /etc/apache/httpd.conf.
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi
<Directory "/usr/bin">
Order allow,deny
Allow from all
</Directory>
# apachectl restart
doc_root = "/www1"
extension=mysql.so
# php-cgi -v
MySQL
Instalacja
# opkg install mysql-server
Konfiguracja
Plik konfiguracyjny to /etc/my.cnf. Do modyfikacji niezbędne jest ustawienie katalogu z bazą danych (linia z datadir). Nie powinna wskazywać wewnętrznej pamięci flash, powinien to być zewnętrzny nośnik:
datadir = /mnt/sda1/mysql/
tmpdir = /mnt/sda1/tmp
# mkdir -p /mnt/sda1/mysql
# mkdir -p /mnt/sda1/tmp
key_buffer = 2M
max_allowed_packet = 2M
# mysql_install_db --force
Uruchomienie
# /etc/init.d/mysqld enable
# /etc/init.d/mysqld start
Zakończenie
Powyższe połączenie Apache + PHP + MySQL bez problemu działa na Linksysie WRT160NL (procesor 400MHz, 32MB pamięci RAM). Oczywiście wymagało to zewnętrznego nośnika USB do przechowywania danych i plików oraz niewielkiego tuningu pliku konfiguracyjnych.