Budowa, utrzymanie i rozwój portalu Szerokopasmowa Specyfikacja konfiguracji systemów Urząd Komunikacji Elektronicznej ul. M. Kasprzaka 18/20, 01-211 Warszawa Przygotowano dla: tel. (+48 22) 53 49 190 fax (+48 22) 53 49 162 http://www.uke.gov.pl Budowa, utrzymanie i rozwój portalu Nazwa Projektu: Szerokopasmowa Wersja: 1.03 Ostatnio 2011-12-15 zmodyfikowano: Autor: Bartosz Rochowski, Adam Boguszewski Net P.C. Firma: ul. Na Stoku 48 Liczba stron: 12 strona 1/12
Spis treści Specyfikacja konfiguracji Systemu... 3 Wymagania sprzętowe i OS... 3 Serwer chatu... 3 Serwer CMS... 4 Konfiguracja Systemu CMS... 5 Przygotowanie środowiska systemowego... 5 PHP... 5 Serwer http... 6 Baza danych... 8 Konfiguracja serwera WWW... 9 Utworzenie bazy danych... 9 Procedura aktywacji i dezaktywacji modułów wchodzących w skład systemu... 9 Konfiguracja środowiska bazy danych... 9 Obsługa podstawowych funkcji bazy danych...11 Procedura reagowania w typowych sytuacjach awaryjnych...11 strona 2/12
Specyfikacja konfiguracji Systemu Wymagania sprzętowe i OS 2x Intel Xeon X5640 lub zgodne min 12GB ram Min Dyski 3xHDD 146GB SAS RAID 5 Systemy operacyjne w architekturze x64 Serwer chatu - MySQL - Zawartość WWW - Openfire Dyski / macierz SAS: o Patrycja MySQL minimalnie 2G (zależnie od przyrostu danych z możliwością rozszerzenia) o /var/log minimalnie 2G (zależnie od przyrostu danych oraz okresu przechowywania logów z możliwością rozszerzenia) o Openfire + zawartość WWW minimalnie 2G (z możliwością rozszerzenia zależnie od przyrostu danych) Przydział pamięci RAM minimalnie 6G - z możliwością rozszerzenia w przypadku przyrostu ilości użytkowników Pozostałe partycje zgodnie z preferencjami administratora systemu. OS Linux np. RedHat Enterprise 6.1 / CentOS 6.0 lub dowolna zgodna dystrybucja. - Lighttpd z modułami: "mod_access", strona 3/12
"mod_redirect", "mod_rewrite", - Java 1.6.0 ( openjdk ) - MySQL java connector - MySQL server 5.1 z proponowaną wstępną konfiguracją : my.cnf : max_connection=1000 thread_concurrency = 8 tmp_table_size = 256M open-files-limit = 20000 connect_timeout = 10 wait_timeout = 10 key_buffer_size = 400M innodb_buffer_pool_size = 200M bulk_insert_buffer_size = 24M read_buffer_size = 128K read_rnd_buffer_size = 128K sort_buffer_size = 256K max_allowed_packet = 128M thread_stack = 256K thread_cache_size = 8 concurrent_insert = 2 join_buffer_size = 256K - Openfire 3.7.1 ze wstępnym limitem połączeń 5000 Instalacja OpenFire z pluginami Raptor oraz Content Filter Serwer CMS Dyski / macierz SAS: o Patrycja MySQL minimalnie 2G (zależnie od przyrostu danych z możliwością rozszerzenia) o /var/log minimalnie 2G (zależnie od przyrostu danych oraz okresu przechowywania logów z możliwością rozszerzenia) strona 4/12
o zawartość WWW minimalnie 10G (z możliwością rozszerzenia zależnie od przyrostu danych) o Pozostałe partycje zgodnie z preferencjami administratora systemu. Przydział pamięci RAM minimalnie 6G - z możliwością rozszerzenia w przypadku przyrostu ilości użytkowników OS Linux np. RedHat Enterprise 6.1 / CentOS 6.0 lub dowolna zgodna dystrybucja. o jądro w najnowszej stabilnej wersji Inne o konwerter ffmpeg o parser logów serwera WWW awstats Konfiguracja Systemu CMS Kolejne kroki opisują sposób instalacji i uruchomienia systemu CMS w architekturze LAMP (Linux, Apache, MySQL, PHP). Procedura nie opisuje sposobu zabezpieczenia aplikacji systemu operacyjnego. Procedury zabezpieczeń zależne są od środowiska systemu operacyjnego oraz polityki bezpieczeństwa danej organizacji. Przygotowanie środowiska systemowego W systemie Linux/UNIX należy zainstalować i skonfigurować następujące elementy: PHP PHP 5.2 (lub wyższa stabilna) Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies oraz moduły : bz2 calendar ctype strona 5/12
curl date dbase exif ftp Gd Gettext Gmp Hash Iconv Imap Json Ldap Libxml Mbstring mime_magic MySql Openssl Pcntl Acre PDO Pdo_mysql PDO_ODBC Serwer http Preferowanym serwerem WWW dla CMS jest Apache w wersji 2.x lub nowszej. W pliku konfiguracyjnym serwera (httpd.conf) należy włączyć następujące moduły: core_module (static) wewnętrzne, zawsze dostępne procedury serwera Apache mpm_prefork_module (static) implementacja jednowątkowego pre-forkowego serwera http_module (static) dostępność protokołu HTTP so_module (static) możliwość ładowania modułów strona 6/12
auth_basic_module (shared) moduł autentykacji auth_digest_module (shared) moduł autentykacji authn_file_module (shared) moduł autentykacji authn_alias_module (shared) moduł autentykacji authn_anon_module (shared) moduł autentykacji authn_dbm_module (shared) moduł autentykacji authn_default_module (shared) moduł autentykacji authz_host_module (shared) moduł autentykacji authz_user_module (shared) moduł autentykacji authz_owner_module (shared) moduł autentykacji authz_groupfile_module (shared) moduł autentykacji authz_dbm_module (shared) moduł autentykacji authz_default_module (shared) moduł autentykacji include_module (shared) możliwość używania Server side includes log_config_module (shared) logowanie requestów logio_module (shared) logowanie bajtów wejściowych i wyjściowych każdego żądania env_module (shared) modyfikacje środowiska udostępnianego skryptom po stronie serwera ext_filter_module (shared) możliwość filtrowania odpowiedzi serwera przed zaserwowaniem jej przeglądarce mime_magic_module (shared) możliwość ustalania typu pliku po analizie początku jego zawartości expires_module (shared) tworzenie nagłówków Expires i Cache-Control deflate_module (shared) kompresja zawartości odpowiedzi serwera headers_module (shared) kustomizacja nagłówków żądań i odpowiedzi usertrack_module (shared) - logowanie clickstreamu setenvif_module (shared) możliwość użycia różnych dyrektyw setenv w zależności od zawartości żądania. mime_module (shared) możliwość używania plików MIME dav_module (shared) funkcjonalność WebDAV strona 7/12
status_module (shared) dostarcza informacji o wydajności serwera autoindex_module (shared) automatyczne indeksowanie katalogów info_module (shared) informacje o konfiguracji dav_fs_module (shared) funkcjonalność WebDAV vhost_alias_module (shared) dynamicznie konfigurowane hosty wirtulane negotiation_module (shared) umożliwia negocjację zawartości dir_module (shared) actions_module (shared) możliwość uruchamiania skryptów po stronie serwera na podstawie typów plików albo zawartości żądania speling_module (shared) auto-poprawianie żądania URL userdir_module (shared) katalogi użytkowników systemu alias_module (shared) możliwość używania aliasów rewrite_module (shared) nadpisywanie reguł.htaccess w locie cache_module (shared) cache owanie suexec_module (shared) wykonywanie poleceń powłoki disk_cache_module (shared) cache owanie file_cache_module (shared) cache owanie mem_cache_module (shared) cache owanie cgi_module (shared) uruchamianie skryptów po stronie serwera version_module (shared) konfiguracja w zależności od wersji mysql_auth_module (shared) autentykacja połaczenia z MySQL perl_module (shared) włączenie PERL a php5_module (shared) włączenie PHP5 python_module (shared) włączenie Pythona ssl_module (shared) właczenie SSL server_status (shared) Baza danych Do uruchomienia systemu CMS niezbędny jest silnik bazy danych. Preferowanym silnikiem jest MySQL w wersji 5.2 lub wyższej stabilne. strona 8/12
Dodatkowo niezbędne jest zainstalowanie modułów pozwalających na ustanawianie połączeń z bazą danych: MySQL connector odbc wersja 3.51 lub wyższa MySQL libdbi dbd wersja 0.8.1a lub wyższa Konfiguracja serwera WWW Następnym krokiem do uruchomienia systemu jest odpowiednia konfiguracja serwera Apache w tym między innymi wskazania domeny przydzielonej dla aplikacji, oraz wskazanie katalogu głównego dla kodu systemu CMS: Ważnym elementem jest również skonfigurowanie parsowania wybranych niestandardowych (.html) rozszerzeń plików wytwarzanych przez system CMS interpretatorem PHP. Po skonfigurowania podstawowego środowiska możemy przystąpić do wgrania plików zawierających system CMS na docelowy serwer do katalogu wskazanego wcześniej w konfiguracji serwera Apache (DocumentRoot) Utworzenie bazy danych Osoba instalująca powinna mieć uprawnienia administratora MySQL. Instalator uruchamia skrypt instalacyjny bazy danych: mysql u [nazwa_użytkownika] p < [nazwa_pliku_eksportu_bazy_danych.sql] Procedura aktywacji i dezaktywacji modułów wchodzących w skład systemu Procedura zarządzania modułami systemu opisana została w instrukcji Administracji systemem CMS. Konfiguracja środowiska bazy danych Serwer bazy danych MySql wersja 5.2 lub wyższej. Listing parametrów serwera BD: Variables (--variable-name=value) and boolean options { TRUE} Value (after reading options) strona 9/12
--------------------------------- ----------------------------- auto-rehash TRUE character-sets-dir column-type-info comments compress debug-check debug-info database default-character-set latin1 delimiter ; vertical force named-commands ignore-spaces local-infile no-beep host html xml line-numbers TRUE unbuffered column-names TRUE sigint-ignore port 0 prompt mysql> quick raw reconnect TRUE socket ssl ssl-ca strona 10/12
ssl-capath ssl-cert ssl-cipher ssl-key ssl-verify-server-cert table user safe-updates i-am-a-dummy connect_timeout 0 max_allowed_packet 16777216 net_buffer_length 16384 select_limit 1000 max_join_size 1000000 secure-auth show-warnings Obsługa podstawowych funkcji bazy danych Poniższe komendy wykonywane powinny być z linii poleceń systemu operacyjnego. Restart bazy danych.: #/etc/rc.d/init.d/mysqld restart Weryfikacja ilości procesów obsługiwanych przez bazę danych: #mysql u nazwa_uzytkownika nazwa_bazy p logowanie do mysql #show processlist; Wykonanie kopii bezpieczeństwa: #mysqldump nazwa_bazy_danych u nazwa_uzytkownika p > nazwa_pliku_kopii_zaspasowej Procedura reagowania w typowych sytuacjach awaryjnych 1. Brak odpowiedzi systemu. strona 11/12
W przypadku awarii należy zweryfikować poprawność działania podstawowych elementów systemu operacyjnego tj. baza danych, serwer Apache. W celu natychmiastowego uruchomienia usługi należy przeprowadzić restart serwera Apache oraz bazy danych. Następnym krokiem jest przeanalizowanie logów serwera Apache i MySQL. W przypadku błędów związanych z oprogramowaniem CMS należy przesłać opis awarii wraz z logami do Wykonawcy systemu celem naprawy gwarancyjnej. 2. Komunikaty błędów w logach systemu. W przypadku spostrzeżenia błędów w logach systemu należy przesłać do Wykonawcy systemu celem naprawy gwarancyjnej. 3. Komunikaty błędów generowane przez system. W przypadku otrzymania informacji z systemu o błędach w funkcjonowaniu należy zweryfikować czy błędy nie są związane z awarią sprzętową lub systemem operacyjnym serwera. Jeżeli błędy generowane są przez aplikację należy przesłać raport do Wykonawcy systemu celem wykonania naprawy gwarancyjnej. 4. Brak aktualizacji podstron W przypadku, gdy po wprowadzaniu zmian w serwisie są one nie widoczne dla docelowych użytkowników, należy usunąć pliki wygenerowanych tymczasowych szablonów oraz sesji z katalogu plików sesji i szablonów zdefiniowanych w pliku konfiguracyjnym aplikacji. strona 12/12