Установка и конфигурация веб сервера Apache с поддержкой PHP, JSP и MySQL на Windows XP
Обзор
В ходе данной инструкции мы подробно рассмотрим установку веб сервера 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 80 port, 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 следующего содержания:
"?php
phpinfo();
?"
Сохраняем. Открываем в браузере 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)
"^.ht">
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
# Если выводится содержимое какой-либо папки, cчитываются файлы описания:
ReadmeName README.html
HeaderName HEADER.html
# Файлы для игнорирования, при выводе листинга директории
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
# Наша кодировка
AddDefaultCharset WINDOWS-1251
# "C:/Server/Apache2/cgi-bin" директория CGI-скриптов
"C:/Server/Apache2/cgi-bin">
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 следующего содержания:
# Адрес нашего MySQL сервера
$mysql_host = "localhost";
# Пользователь, который осуществляет соединение
$mysql_user = "root";
# Пароль для доступа к MySQL базе
$mysql_password = "password";
# Соединяемся с MySQL сервером
$mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password);
if ($mysql)
{
echo "Hello World!!!";
}
# Закрываем соединение
mysql_close($mysql);
?>
Сохраняем.
Открываем в браузере 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.5commonlib.
Ну теперь надо попробовать подключиться к MySQL серверу из JSP. Давайте в папочке C:ServerTomcat 5.5webappsjsp-examples создадим файл test.jsp:
<HTML>
<HEAD>
<TITLE> Доступные БД TITLE>
HEAD>
<BODY>
<h3>Доступные БДh3>
<%
//Загружаем драйвер
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 ();
}
%>
BODY>
HTML>
Открываем браузер 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/
И наблюдаем в случае положительного результата:
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
Одного яйца два раза не высидишь. К. Прутков |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.