Огляд
В ході даної інструкції ми докладно розглянемо установку веб сервера Apache, PHP, Tomcat (для підтримки JSP) та їх прив’язку для спільної роботи. Розглянемо приблизний файл конфігурації Apache. Потім ми зробимо установку MySQL сервера і розглянемо приклади доступу до нього з PHP і JSP. Встановимо PHPMyAdmin для роботи з MySQL.
Необхідні компоненти
Мною були використані наступні версії, по можливості самі останні.
Apache 2.0.52
PHP 4.3.9
Tomcat 5.5.4
mod_jk 1.2.6
J2SDK 1.5.0
MySQL 4.1.7
Connector/J 3.1.6
PHPMyAdmin 2.6.0
Де взяти необхідні компоненти?
Apache Web Server
http://httpd.apache.org/
PHP
http://www.php.net/
JSP
* Tomcat
http://jakarta.apache.org
* mod_jk
http://www.javaportal.ru/downloads/downloads.html
* Java
http://java.sun.com/
MySQL
* MySQL Database
http://dev.mysql.com/downloads/
* Connector/J
http://dev.mysql.com/downloads/
* PHPMyAdmin
http://www.phpmyadmin.net/
Установка Apache
Для початку давайте створимо на диску С папку Server, куди ми будемо встановлювати все нам необхідне. Попередньо закачаємо все необхідне нам програмне забезпечення, ті ж версії, що я використовував, а можна і вище.
Запускаємо apache_2.0.52-win32-x86-no_ssl і бачимо вікно привітання:
Тиснемо «Next».
З’являється віконце, де нам пропонують ознайомитися з ліцензією на використання цього продукту, вибираємо «I accept….» і тиснемо «Next».
Трохи історії, і знову «Next».
У віконце інформації про сервер вводимо дані, як показано вище на картинці:
Network Domain: localhost
Server name: localhost
Administrator’s Email Address: localhost»@localhost
Так само виберемо «For All Users, on port 80, as a Service — Recommended». І далі «Next»
Вибираємо Custom для вибору всіх компонентів для установки.
Вибираємо все для повної установки, міняємо шлях інсталяції на C:ServerApache2
Знову тиснемо «Next».
Спостерігаємо хід встановлення.
Установка завершена. У правому нижньому куті з’явився заначок?
Якщо так то наш веб-сервер встановився. Клацаємо на значку лівою кнопкою миші відкриваємо панель управління:
Тут ми можемо стартувати, зупинити, або перезапустити наш сервер.
Тепер протестуємо наш сервер. Відкриваємо браузер і в рядку адреси, вводимо http://localhost. Якщо ви побачите наступній результат:
Значить сервер встановлено вдало.
Встановлення PHP
Витягаємо вміст php-4.3.9-Win32.zip в папку C:Server і перейменовуємо получившеюся папку «php-4.3.9-Win32» в «php4».
Тепер нам треба дати зрозуміти серверу що у нас є інтерпретатор PHP.
Додаємо в кінець конфігураційного файлу нашого сервера C:ServerApache2confhttpd.conf таку запис:
# Даємо знати серверу що у нас є інтерпретатор PHP
ScriptAlias /php4/ «C:/Server/php4/»
Action application/x-httpd-php4 «/php4/php.exe»
# Встановлюємо розширення для PHP скриптів
AddType application/x-httpd-php4 .php .php3 .php4 .phtm .phtml
Зберігаємо файл. Перезапускаємо наш сервер (кнопочка restart в панелі керування сервером), ще не забули як?
Тепер нам треба перевірити чи працює ця зв’язка. В папці C:ServerApache2htdocs (ця папка за промовчанням вартість кореневої, доступною з http://localhost) створюємо файл phpinfo.php наступного змісту:
Зберігаємо. Відкриваємо в браузері http://localhost/phpinfo.php якщо все пройшло вдало повинні побачити наступні:
Встановлюємо підтримку JSP
Для цього нам необхідно встановити версії JDK 1.5, так як ми будемо встановлювати Tomcat 5, а він на версії не нижче 1.5 не працює.
Запускаємо jdk-1_5_0-windows-i586.exe
Погоджуємося з ліцензійною угодою.
Залишаємо все як є
Хід встановлення.
Далі починається установка середовища виконання
Також залишаємо все як є.
Вискакує діалог вибору установки плагінів до наявних браузерам, як бачите у мене тільки один.
JDK встановлений!!!
Приступаємо до установки Tomcat 5.
Запускаємо jakarta-tomcat-5.5.4
Приймаємо вітання і ліцензійна угода
Вибираємо повну установку, позначаючи всі компоненти галочками.
Встановлюємо все тугіше папочку «Server»
Конфігурацію залишаємо за замовчуванням.
Перевіряємо шлях до JRE.
Хід інсталяції
Ок. все готово. Але поки Tomcat працює сам по собі і не пов’язаний з Apache.
Перевіряємо працездатність Tomcat. Відкриваємо в браузері http://localhost:8080/, так як Tomcat за замовчуванням слухає порт 8080. При позитивному результаті ми повинні побачити наступне:
Тепер наша задача полягає в тому щоб прикрутити Tomcat на localhost:
Для цього нам необхідно скопіювати коннектор mod_jk.dll в папку C:ServerApache2modules і в конфігураційному файлі httpd.conf Apache2 додати запис:
###########################################################
## JSP Support
## Copied from Tomcat auto-configuration file
## + added JkMount /*.jsp ajp13
## + removed Virtual Host
IfModule !mod_jk.c>
LoadModule jk_module C:/Server/Apache2/modules/mod_jk.dll
JkWorkersFile «C:/Server/Tomcat 5.5/conf/workers.properties»
JkLogFile «C:/Server/Tomcat 5.5/logs/mod_jk.log»
JkLogLevel info
JkMount /manager ajp13
JkMount /manager/ * ajp13
JkMount /servlets-examples ajp13
JkMount /servlets-examples/ * ajp13
JkMount /jsp-examples ajp13
JkMount /jsp-examples/ * ajp13
JkMount /tomcat-docs ajp13
JkMount /tomcat-docs/ * ajp13
JkMount /webdav ajp13
JkMount /webdav/ * ajp13
JkMount / ajp13
JkMount / *. jsp ajp13
Після чого необхідно перезавантажити сервер Apache2.
Тепер Давайте перевіримо, чи працює? Відкриваємо в браузері http://localhost/jsp-examples/. І якщо бачимо наступне, то все працює!
Конфігурація сервера
Тепер нам необхідно привести в порядок наш сервер, налаштуємо його під себе. Відкриваємо файл httpd.conf, все звідти видаляємо і вставляємо туди текст:
# Папка куди встановлено наш сервер
ServerRoot «C:/Server/Apache2»
# Порт, який слухає наш сервер
Listen 80
# Встановлюємо SSI, для файлів з розширенням shtm, shtml html
AddType text/html .shtm .shtml .html
AddOutputFilter INCLUDES .shtm .shtml .html
# E-mail адресу адміна веб сервера (поміняйте на свій)
ServerAdmin localhost@localhost
# Наш сервер:порт
ServerName localhost:80
UseCanonicalName Off
# Індексні файли, через пробіл
DirectoryIndex index.htm index.html index.shtm index.shtml
index.php index.php3 index.php4 index.jsp
# Ім’я вбудованого конфігураційного файлу
AccessFileName .htaccess
# Даємо знати веб сервера, що у нас є інтерпретатор PHP
ScriptAlias /php4/ «C:/Server/php4/»
Action application/x-httpd-php4 «/php4/php.exe»
# Встановлюємо розширення для PHP скриптів
AddType application/x-httpd-php4 .php .php3 .php4 .phtm .phtml
# Папка куди будемо складати всі наші html і інші файли.
DocumentRoot «C:/Server/www»
PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
HostnameLookups Off
# Модулі
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
# Закриваємо доступ до файлів конфігурації (.htaccess) і паролів.htpasswd)
Order allow,deny
Deny from all
# База з типами файлів
TypesConfig conf/mime.types
# Тип всіх документів — текстовий
DefaultType text/plain
MIMEMagicFile conf/magic
# Файл звіту з помилками
ErrorLog logs/error.log
# Що записувати у файл звіту, може приймати наступні значення:
# debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
# Шаблон запису рядка у файл звіту
LogFormat «%h %l %u %t «%r» %>s %b «%{Referer}i» «%{User-Agent}i»» combined
LogFormat «%h %l %u %t «%r» %>s %b» common
LogFormat «%{Referer}i> %U» referer
LogFormat «%{User-agent}i» agent
# Файл звіту зі списком всіх доступів до веб сервера
CustomLog logs/access.log common
ServerTokens Full
# Підпис веб сервера (On — включено, Off — вимкнено,
# EMail — показувати e-mail адміна сервера)
ServerSignature On
# Віртуальні папки
# Наприклад:
# Alias /icons/ «C:/Server/Apache2/icons/»
# Зайшовши на http://localhost/icons/
# ми побачимо вміст папки C:/Server/Apache2/icons/
Alias /icons/ «C:/Server/Apache2/icons/»
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/ *
AddIconByType (IMG,/icons/image2.gif) image/ *
AddIconByType (SND,/icons/sound2.gif) audio/ *
AddIconByType (VID,/icons/movie.gif) video/ *
# Вибираємо іконки для різних форматів
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Іконка для невідомих форматів
DefaultIcon /icons/unknown.gif
# Якщо виводиться вміст папки, зчитуються файли опису:
ReadmeName README.html
HeaderName HEADER.html
# Файли для ігнорування, при виведенні лістингу директорії
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-Z compress
AddEncoding x-gzip gz tgz
# Наша кодування
AddDefaultCharset WINDOWS-1251
# «C:/Server/Apache2/cgi-bin» директорія CGI-скриптів
AllowOverride None
Options None
Order allow,deny
Allow from all
###########################################################
## JSP Support
## Copied from Tomcat auto-configuration file
## + added JkMount / *.jsp ajp13
## + removed Virtual Host
LoadModule jk_module C:/Server/Apache2/modules/mod_jk.dll
JkWorkersFile «C:/Server/Tomcat 5.5/conf/workers.properties»
JkLogFile «C:/Server/Tomcat 5.5/logs/mod_jk.log»
JkLogLevel info
JkMount /manager ajp13
JkMount /manager/ * ajp13
JkMount /servlets-examples ajp13
JkMount /servlets-examples/ * ajp13
JkMount /jsp-examples ajp13
JkMount /jsp-examples/ * ajp13
JkMount /tomcat-docs ajp13
JkMount /tomcat-docs/ * ajp13
JkMount /webdav ajp13
JkMount /webdav/ * ajp13
JkMount / ajp13
JkMount / *.jsp ajp13
Зберігаємо. Перезавантажуємо сервер.
Встановлюємо MySQL сервер
Розпаковуємо файл mysql-4.1.7-win.zip і запускаємо файл Setup.exe
Привітання, тиснемо Next
Тут вибираємо Custom, так як нам необхідно встановити повністю всі компоненти і вказати шлях інсталяції.
Вибираємо всі компоненти для установки, і вказуємо шлях для інсталяції C:ServerMySQL Server 4.1. Йдемо далі.
Готові до початку процесу інсталяції? Тиснемо Install.
Спостерігаємо процес інсталяції.
Пропускаємо крок реєстрації на MySQL.com.
Ставимо галочку на опції «Конфігурувати MySQL сервер». І завершуємо процес установки приступаючи до конфігурації.
Знову привітання.
Вибираємо стандартну конфігурацію, що б зовсім не забивати собі мізки, потім при бажанні можна спробувати полазити в настройках.
Зазначаємо, що MySQL сервер буде запускатися як служба Windows.
Вказуємо пароль для адміністратора, припустимо це буде «password».
Execute і все готово! Після чого ми спостерігаємо наступну картинку в нижньому правому куті:
Тепер тестуємо наш MySQL сервер. Створимо в папці www файл index.php наступного змісту:
Зберігаємо.
Відкриваємо в браузері http://localhost/index.php і….
Не тут то було! Вилізе помилка «Client does not support authentication protocol requested by server; consider upgrading MySQL-client»
Ну що ж це невелика не сумісність. . . В MySQL 4.1 застосовується новий спосіб зберігання паролів і з-за цього вилазить несумісність всіх старих клієнтів з MySQL. Що ж робити?
Запускаємо C:ServerMySQL Server 4.1binmysql.exe і набираємо наступну команду як показано на малюнку:
Набираємо set password for тиснемо Enter
Набираємо root@localhost = old_password(‘password’)
Тиснемо Enter. Набираємо q тиснемо Enter, віконце закривається.
Ну тепер має заробити, відкриваємо в браузері http://localhost/index.php і….
Працює!!!
Тепер нам необхідно прикрутити коннектор для підключення до MySQL сервера JSP.
Розпаковуємо mysql-connector-java-3.1.6.zip. Папочку mysql-connector-java-3.1.6. перейменовуємо в jconnector (C:Serverjconnector). Беремо з цієї течки файл mysql-connector-java-3.1.6-bin.jar і копіюємо його в папку C:ServerTomcat 5.5 commonlib.
Ну тепер треба спробувати підключитися до MySQL сервера JSP. Давайте в папці C:ServerTomcat 5.5 webappsjsp-examples створимо файл test.jsp:
Доступні БД
Доступні БД
<%
//Завантажуємо драйвер
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
//Підключаємося до бд
Connection conn =
DriverManager.getConnection(»
jdbc:mysql://localhost/test?user=root&password=password»);
Statement stmt = null;
ResultSet rs = null;
stmt = conn.createStatement();
//Запит на наявні БД
rs = stmt.executeQuery(«SHOW DATABASES»);
boolean more = rs.next ();
while (more)
{
// Отримує значення першої колонки
out.print(rs.getString(1));
out.print(«
«);
// Пересуваємося на наступний рядок набору даних
more = rs.next ();
}
%>
Відкриваємо браузер http://localhost/jsp-examples/test.jsp
Ок все працює!
Ну і заключний момент встановлення PHPMyAdmin
Для цього разархивируем phpMyAdmin-2.6.0-pl3.zip в папку C:Serverwww і перейменуємо в phpmyadmin.
Відкриємо файл config.inc.php
Замінимо
$cfg[‘PmaAbsoluteUri’] = «;
на
$cfg[‘PmaAbsoluteUri’] = ‘http://localhost/phpmyadmin/’;
І аналогічно поступаємо з наступними рядками файлу:
$cfg[‘Servers’][$i][‘controluser’] = ‘ root ‘;
$cfg[‘Servers’][$i][‘controlpass’] = ‘password’;
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ‘password’;
Зберігаємо. Відкриваємо в браузері http://localhost/phpmyadmin/
І спостерігаємо у випадку позитивного результату: