Odpowiedź: Tak, bez problemu można założyć swój serwer www oraz umieścić tam dowolną stronę www .
Zakładanie własnego serwera www powinniśmy zacząć od zebrania informacji o swoim połączeniu z internetem. Jeśli planujemy umieścić tylko wizytówkę www, to da się to zrobić nawet na łączu o przepustowości 128/128 kilobitów/sekundę (download/upload). Jednak jeśli chcemy postawić jakiś poważny serwer, to należałoby zadbać o lepsze połączenie.
Kolejną sprawą jest to, czy dysponujemy adresem IP stałym czy też dynamicznym, oraz wewnętrznym czy zewnętrznym. Stałe adresy zewnętrzne charakteryzują się tym, że kiedykolwiek się łączymy z siecią, zawsze uzyskujemy ten sam adres IP. To jest najprostszy wariant, wystarczy zarejestrować jakąś domenę do tego adresu i możemy od razu zabrać się za stawianie serwera.
Jeśli posiadamy dynamiczny adres zewnętrzny, to sprawa także jest dość prosta - wystarczy znaleźć jakiś dynamiczny DNS (np. www.no-ip.com lub www.dyndns.org) i zainstalować oprogramowanie do podtrzymywania informacji o naszym aktualnym IP. Ten przypadek dotyczy np. użytkowników neostrady.
Troszkę trudniejszą sytuację mają użytkownicy bez zewnętrznego adresu IP. Wtedy, przed postawieniem serwera www, należy skontaktować się z dostawcą internetu i poprosić o udostępnienie usługi virtualhost lub jeśli jest taka możliwość, ustawić przekierowanie portu 80 z routera na nasz docelowy komputer. Jest to dość obszerny temat, dlatego po więcej informacji odsyłam na www.google.pl
Jeśli nie znasz wszystkich w/w parametrów swojego połączenia, skontaktuj się z dostawcą internetu -powinien udzielić Ci takich informacji.
Ja łączę się z internetem za pomocą neostrady, jednak używam modemu, który jest routerem (rozdziela sygnał na 4 komputery), stąd mam stały wewnętrzny adres IP. Zacząłem więc od przekierowania portu 80 na swój komputer. Potem zarejestrowałem domenę na www.dyndns.org i zabrałem się do instalacji serwera www.
1) Instalacja
Aby uruchomić przyzwoity serwer www, będziemy musieli zainstalować trzy paczki:
apache
php
mysql
Apache, to najpopularniejszy darmowy serwer www, bez niego nic nie udostępnimy.
php, to rozszerzenie do serwera apache, które dodaje obsługę języka skryptowego php. Na dzień dzisiejszy nie ma chyba strony internetowej, która by z tego nie korzystała.
mysql, to serwer baz danych - nie jest konieczny, ale czasem może się przydać, zwłaszcza przy bardziej rozbudowanych stronach, czy popularnych dziś CMS-ach (content menagement system).
w/w paczki możemy uzyskać na kilka sposobów, np:
$ swaret --install nazwa_paczki
lub po prostu wchodząc na stronę www.slackware.com/pb wyszukujemy po nazwie paczki, ściągamy na dysk (np do /tmp) i wystarczy już tylko:
$ installpkg nazwa_paczki
W momencie pisania tego FAQ, dostępne były paczki w wersjach:
apache-1.3.33-i486-1
php-4.3.10-i486-1
mysql-4.0.23a-i486-1
I to na nich oparłem to FAQ.
2) Konfiguracja
Zakładam, że w/w paczki są już zainstalowane, pora na trudniejszą cześć zabawy, czyli konfigurację
Swoim ulubionym edytorem tekstowym (ja używam vim) edytujemy (jako root):
$ vim /etc/apache/httpd.conf
W którym nanosimy następujące poprawki:
a) w linii nr 180, gdzie wyhashowane (# na początku linii) jest polecenie Listen poniżej wpisujemy:
Listen $IP
Gdzie $IP zamieniamy na nasz wewnętrzny adres IP. Jeśli mamy wyłącznie zewnętrzny, to wpisujemy tylko ten. To polecenie definiuje adres na jakim nasz serwer będzie nasłuchiwał wywołań.
b) przejeżdżamy do linii nr 313, jeśli jest wyhashowana, to odhaszujmy ją. Powinna wyglądać tak:
Port 80
Jeśli port jest ustawiony na inny niż 80, to powinniśmy to zmienić albo zadbać o odpowiednie przekierowania. Z kolei to polecenie definiuje port, na którym apache będzie nasłuchiwał.
c) w linii 335 definiujemy adres email administratora (nasz)
d) przeskakujemy do linii 354 i tu ustawiamy nazwę domeny, której będziemy używać (np franek.isageek.net)
e) kolejnej modyfikacji dokonujemy w linii nr 441 - na końcu tej linii dopisujemy (po odstępie):
index.html.var index.php
To sprawi, ze nasz serwer będzie domyślnie podawał kolejno: index.html index.html.var index.php, ten na który trafi pierwszy zostanie wyświetlony. Kolejność tych plików można zmieniać dowolnie, w zależności od preferencji.
f) ostatnią sprawą będzie odhashowanie linii 1040, co sprawi że apache domyślnie będzie się spodziewał istnienia rozszerzenia php.
Zanim przejdziemy do włączenia serwera www, trzeba jeszcze zmodyfikować ustawienia reguł firewall. W tym celu przechodzimy do katalogu /etc/rc.d i swoim ulubionym edytorem tekstu modyfikujemy plik rc.firewall . W nim, najlepiej na końcu, musimy dopisać jedną linijkę:
Kod: Zaznacz cały
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Kod: Zaznacz cały
httpd: ALL: ALLOW
Gdy już wykonamy w/w instrukcje, przechodzimy do katalogu /etc/rc.d i tam jako root wydajemy polecenie:
$ chmod +x rc.httpd
To sprawi że przy każdym starcie systemu, serwer apache zostanie uruchomiony automatycznie.
$ ./rc.httpd start&
lub alternatywnie:
$ apachectl start
Serwer apache powinien pięknie się uruchomić. Po wpisaniu naszego adresu IP w przeglądarkę, powinna się nam wyświetlić strona testowa apache. Strony www są przechowywane w katalogu /var/www/htdocs . Pora sprawdzić czy działa nasze php. W tym celu przechodzimy do /var/www/htdocs i tam zakładamy plik phpinfo.php o następującej treści:
Kod: Zaznacz cały
<? phpinfo() ?>
3) MySQL
Przyszła kolej na serwer mysql - Ci, którzy nie potrzebują baz danych mogą swobodnie opuścić ten krok.
Jako root wydajemy następujące polecenia:
$ mysql_install_db
tu instalujemy domyślne bazy danych
$ chown -R mysql:mysql /var/lib/mysql/mysql
nadajemy odpowiednia prawa katalogowi, w którym przechowywane są bazy
$ chmod +x /etc/rc.d/rc.mysqld
nadajemy bit wykonywalności skryptowi odpowiedzialnemu za automatycznie włączenie serwera mysql wraz ze startem systemu.
$ /etc/rc.d/rc.mysqld start&
włączamy serwer mysql
$ ps -A |grep sql[/i]
Po wydaniu ostatniego polecenia, powinniśmy uzyskać mniej więcej coś takiego:
Kod: Zaznacz cały
961 ? 00:00:00 mysqld_safe
980 ? 00:00:07 mysqld
981 ? 00:00:00 mysqld
982 ? 00:00:00 mysqld
983 ? 00:00:00 mysqld
984 ? 00:00:00 mysqld
985 ? 00:00:00 mysqld
986 ? 00:00:00 mysqld
987 ? 00:00:00 mysqld
988 ? 00:00:00 mysqld
989 ? 00:00:00 mysqld
mysqladmin -u root password hasło
Gdzie hasło zastępujemy hasłem do bazy danych. Jeśli będziemy trzymali w niej jakieś poufne dane (np osobowe) to powinniśmy założyć względnie mocne hasło (min 8 znaków, składające się z małych i wielkich liter oraz cyfr, bez wyrazów słownikowych). Teraz pora na test naszego serwera mysql, w tym celu wydajemy polecenie(jako root):
mysql -p
Wpisujemy hasło i powinniśmy dostać coś takiego:
Kod: Zaznacz cały
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.0.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
4) phpMyAdmin
Jest to menedżer, który umożliwia łatwe i wygodne zarządzanie bazami danych poprzez www. Można go pobrać za darmo ze strony http://www.phpmyadmin.net . W chwili pisania tego FAQ, dostępna była wersja phpMyAdmin-2.6.1-pl3.tar.bz2 .
Ściągamy paczkę do katalogu np /tmp . Tam wydajemy polecenia:
tar -xvjf phpMyAdmin-wersja.tar.bz2
tym sposobem właśnie rozpakowaliśmy archiwum
mv phpMyAdmin-wersja phpmyadmin
zmiana nazwy
mv phpmyadmin /var/www/htdocs/
przenosimy katalog w miejsce, w którym przechowywane są strony www.
Następnym krokiem będzie edycja pliku /var/www/htdocs/phpmyadmin/config.inc.php , używamy do tego, tradycyjnie, swojego ulubionego edytora i wprowadzamy następujące zmiany:
a) w linii 39 powinniśmy mieć coś takiego:
Kod: Zaznacz cały
$cfg['PmaAbsoluteUri'] = 'http://nasz.adres.ip/phpmyadmin/';
b) w linii 65 powinniśmy mieć coś takiego:
Kod: Zaznacz cały
$i = 1;
c) w liniach 125-149 znajduje się właściwa konfiguracja, ten obszar powinien przypominać coś takiego:
Kod: Zaznacz cały
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['only_db'] = '';
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['pmadb'] = ''; // 'phpmyadmin' - see scripts/create_tables.sql
$cfg['Servers'][$i]['bookmarktable'] = ''; // 'PMA_bookmark'
$cfg['Servers'][$i]['relation'] = ''; // 'PMA_relation'
$cfg['Servers'][$i]['table_info'] = ''; // 'PMA_table_info'
$cfg['Servers'][$i]['table_coords'] = ''; // 'PMA_table_coords'
$cfg['Servers'][$i]['pdf_pages'] = ''; // 'PMA_pdf_pages'
$cfg['Servers'][$i]['column_info'] = ''; // 'PMA_column_info'
$cfg['Servers'][$i]['history'] = ''; // 'PMA_history'
$cfg['Servers'][$i]['verbose_check'] = TRUE;
$cfg['Servers'][$i]['AllowDeny']['order']
= '';
$cfg['Servers'][$i]['AllowDeny']['rules']
= array();
Uwagi:
Kilka procedur w tym FAQ można było skrócić, jednak chciałem aby ten tekst był jak najprostszy dla początkujących, a także chciałem pokazać jak działają niektóre komendy.
Ponadto, należy pamiętać, że to co opisałem powyżej to absolutne minimum wymagane do uruchomienia serwera. Tym, którzy chcą mieć większą kontrolę nad swoim komputerem polecam dokładne przestudiowanie pliku /etc/apache/httpd.conf a także pozostałych plików z katalogu /etc/apache.
Autorzy: dame
Osoby, które użyczyły mi swojej wiedzy na ten temat: Sad, tomekk i inni