Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторна робота №1. Організація систем для хостингу та налаштування web-програми
Встановлення Apache, php, MySQL під Windows
Етапи інсталяції
1. Отримання дистрибутивів
Дистрибутиви Apache, php і MySQL можна скачати з сайтів www.apache.org, www.php.net, www.mysql.com.
2. Встановлення Apache
Запускаємо дистрибутив. Треба буде вказати, що Ви згідні з умовами ліцензії,і ввести синтаксично коректні домен, url та email -- вони будуть вертатись користувачу при помилці.
Критерій успішного встановлення: При виклику броузером адреси http://localhost/ Ви побачите напис «It works!»
Якщо Ви не бачите напис «It works!»
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
(OS 10048)+сvўэю ЁрчЁх°рхЄё юфэю шёяюы№чютрэшх рфЁхёр ёюъхЄр (яЁюЄюъюы/ёхЄхтющрфЁхё/яюЁЄ). :
make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs
Note the errors or messages above, and press the <ESC>> key to exit. 30...
спробуйте поставити директиву Win32DisableAcceptEx в файл httpd.conf
Розпакування архіва php в c:\php
Саме на це розташування орієнтовані рядки в конфігураційних файлах php. Якщо Ви вперше встановлюєте Apache/php/MySQL, Вам краще обрати саме це розташування, так як в іншому випадку Вам доведеться міняти частину параметрів в конфігураційних файлах.
4. Внесення виправлень в файл httpd.conf
Їх сенс: ми повідомляємо Апачу, що в нього є модуль, який повинен спрацювати на розширення php
В розпакованому архіві c:\php есть файл install.txt. В ньому написано англійською мовою, які зміни потрібно внести в файл httpd.conf. А саме:
В рядку 808 файла install.txt є рядок:
LoadModule php5_module "c:/php/php5apache2.dll"
Його потрібно відредагувати, виправивши версію Апача:
LoadModule php5_module "c:/php/php5apache2_2.dll"
і вставити в закінчення блока інструкцій LoadModule файла httpd.conf (127-й рядок файла httpd.conf)
Таким чином, ми вказали, що при завантаженні apache запускає інтерпретатор php як свій модуль. Теперь укажем Апачу, где он должен искать файл php.ini (параметры php)
В рядку 812 файла install.txt є рядок PHPIniDir "C:/php". Його треба поставити в файл httpd.conf (в рядок 128).
Тепер потрібно вказати, що цей модуль повинен обробляти файли з розширенням php
В рядку 809 файла install.txt є рядок:
AddType application/x-httpd-php .php
Його вставляємо в закінчення блока AddType файла httpd.conf (приблизно 383 рядок файла httpd.conf)
5. Створюєм та описуєм в httpd.conf папку для зберігання WEB-папок.
Один WEB-сервер може управляти роботою кількох сайтів (чи веб-додатків). Розрізняти їх Apache буде за доменним ім'ям, і кожному з цих імен призначить відповідну WEB-папку (в якій будуть зберігатись файли сайта).
Як ми будем завдавати ці відповідності, я розповім у наступному параграфі. А поки що створимо папку, в якій будуть зберігатись WEB-папки.
Отже, створимо папку c:\www (звичайно, могли й інакше назвати). Тепер у файл httpd.conf додаєм опис цієї папки: ми дозволимо доступ до цієї папки по протоколу http (за змовчанням цього доступу немає). Після опису загальних змовчань (починаючи десь із рядка 194) додамо наступний блок:
<Directory "C:/www">
AllowOverride All
Order deny,allow
Allow from all
</Directory>
Зверніть увагу: слеш прямий: c:/www
6. Включаємо механізм віртуальних хостів
Як я вже сказав, ми можемо завдати декілька WEB-папок для різних доменних імен на одному комп'ютері за допомогою т.зв. віртуальних хостів. В першу чергу потрібно налаштувати Windows на «впізнавання» цих доменних імен. Тобто завдати відповідності
ім'я ? IP-адреса
Для цього звернемось до файла %System32%\drivers\etc\nosts
(%System32% це звичайно C:\Windows\System32 або C:\Winnt\System32)
В ньому після пояснення ми знайдемо список відповідностей імен та IP-адрес. Додамо поки що одне нове ім'я tm. Відредагований файл буде мати вигляд:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
127.0.0.1 tm
Тепер звернімося до папки extra, яка знаходиться в тій самій папці, що й файл httpd.conf. В ній ми знайдемо файл httpd-vhosts.conf
Відкриємо його й внесемо наш новий віртуальний хост:
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup Virtual Host containers for them.
#... (для скорочення пропускаємо подальші комментарі)
# Use name-based virtual hosting.
#
NameVirtualHost *:80
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
DocumentRoot "c:/www/tm"
ServerName tm
</VirtualHost>
Зверніть увагу: слеш прямий: c:/www/tm
Тепер шукаємо в httpd.conf рядок
#Include conf/extra/httpd-vhosts.conf
(номер цього рядка приблизно 467-й)
і забираємо знак комментаря (#) з початку рядка.
Ну і тепер, щоб не «дурити» Apache, створюєм папку c:\www\tm
7. Правимо директиву DirectoryIndex
(приблизно 245-й рядок файла httpd.conf) щоб включити в список пошуку файла за змовчанням в WEB-папці файла index.php
DirectoryIndex index.html index.htm index.php
8. Створення конфігураційного файла
Перейменовуємо c:\php\php.ini-production в php.ini
9. Перезапускаємо apache
У випадку вдалої установки Апача в правій нижній частині екрана є піктограма виклику монітора Apache.
Подвійним кліком запускаємо його й натискаємо Restart. Після чего закриваємо вікно монітора Апача
В деяких останніх версіях Windows так перезапустити Apache не вдасться. До того ж можна навіть і не помітити, що Apache не перезапустився: зовні все буде виглядати як при успішному запуску. В цьому випадку доведеться перезапускати службуApache через панель управління Windows.
10. Перевірка
Створюємо файл C:\www\tm\index.php наступного змісту:
<?php phpinfo(); ?>
і запускаємо в броузері адресу http://localhost/
В випадку успіху Ви побачите таблицю параметрів php
11. Налаштування php
11.1. Редагування файла php.ini. Мета: підключити потрібні нам бібліотеки функцій.
В рядку 813 ми повинні поправити директиву extension_dir: вона повинна мати вигляд
extension_dir = "c:/php/ext" (без крапки з комою на початку!)
Розділ розширень (Dynamic Extensions) починається приблизно на 655-му рядку
В ньому ми побачимо список розширень. Знак ; на початку це комментар. Тобто, якщо ми стираємо ; на початку рядка ми тим самим включаємо відповідне розширення. А якщо ставимо ; на початку рядка відключаємо відповідне розширення.
Список розширень з коментарями Ви можете знайти за адресою:
http://www.php.net/manual/en/install.windows.extensions.php
Ми поки включимо три розширення, які будуть потрібні нам у роботі:
Зверніть увагу: є дві бібліотеки функцій для роботи с MySQL стара й нова. Документація php наполегливо рекомендує використовувати нову php_mysqli.dll. В той самий час більшість сайтів і додатків «за звичкою» використовують стару. Тому ввімкнемо обидві, тим більше, що вони не конфліктують.
11.2. Перезапускаємо apache
.
12. Встановлення й налаштування MySQL
Встановлення MySQL вкрай просте навіть до простого копіювання.
Труднощів може завдати тільки налаштування кирилиці. Цьому питанню я присвятив окрему статтю
Хоча в більшість дистрибутивів розробники включають вже скомпільовані пакети, ми все-таки розглянемо збирання Apache і PHP з вихідних кодів. Почнемо з Apache. Останню версію качаємо тут: http://httpd/apache/org.
Архів повинен мати приблизно таку назву: httpd-2.x.xx.tar.bz2. Скачуємо його та зберігаємо в каталозі /usr/local/src чи в іншому зручному для вас місці. Тепер переходимо в каталог з архівом і розпаковуємо:
# cd /usr/local/src
# bunzip2 httpd-2.x.xx.tar.bz2
Після цього зникне розширення .bz2. Далі виконуємо:
# tar xvf httpd-2.x.xx.tar
Переходимо в папку httpd-2.x.xx (сюди розпакувався архів) і починаємо компіляцію.
Для цього спершу виконуємо команду configure. До неї можна додати необхідні параметри. Наприклад, для того, щоби завантажити модуль PHP, треба встановити підтримку DSO.
Це можна зробити, додавши до команди configure параметр --enable-module=so. Опція -prefix дає змогу змінити каталог для інсталяції для цього після неї просто вводьте назву потрібної папки. Якщо хочете отримати довідку по цій команді, введіть в консолі configure --help.
# cd httpd-2.x.xx
# ./configure --enable-module=so
Після цього в терміналі будуть з'являтись різні букви J команда configure шукатиме найкращі варіанти налаштування для компіляції. По завершенні цього процесу знову стане доступним командний рядок і можна буде продовжити встановлення. Команда make запускає процес компіляції:
# make
І знову з'явиться довжелезна низка рядків.
Швидкість компіляції залежатиме від потужності комп'ютера. В кінці повинно вивестись повідомлення такого типу:
make [1]: Leaving directory '/usr/local/src/httpd-2.x.xx'
Це означає, що процес компіляції пройшов без помилок. Тепер можна і встановити зібрану програму:
# make install
От і все. Apache готовий до роботи. Запускаємо за допомогою команди apachectl start, вводимо в будь-якому браузері localhost або 127.0.0.1. Якщо не з'явилося повідомлення про помилку завантаження сторінки, то ви все зробили правильно.
Йдемо далі ставимо PHP. Свіжу версію тягнемо звідси: www.php.net/downloads.php. У компіляції продукт мало чим відрізняється від Apache. Скачаний архів також зберігаємо в /usr/local/src, і розпаковуємо:
# cd /usr/local/src
# bunzip2 php-5.x.x.tar.bz2
# tar xvf php-5.x.x.tar
# cd php-5.x.x
Детальніше зупинимось на команді configure.
Для того щоб додати підтримки MySQL, використовується опція with mysqli. Після неї вказуємо шлях до програми mysql_config. Також необхідно включити опції with-apxs для Apache або with-apxs2 для Apache 2.0 і вказати місце знаходження програми apxs.
Приклад налаштування для стандартної інсталяції Apache 2:
# ./configure with-apxs2=/usr/local/apche2/bin/apxs
Після конфігурування вводимо:
# make
Після вдалого завершення має з'явитись наступний напис:
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam)
Останній крок встановити щойно зібраний модуль PHP. Вводимо:
# make install
Потім налаштовуємо файли з розширенням .php так, щоб вони оброблялись модулем PHP. В файл httpd.conf додаємо рядок:
AddType application/x-httpd-php .php
За необхідностю можна вказати альтернативні розширення. Перезапускаємо Apache:
# apache2ctl restart
Напишемо простий скрипт, який назвемо info.php, за допомогою якого перевіримо роботу PHP:
phpinfo ();
?>
Зберігаємо його в /usr/local/apache2/htdocs/index.php або в іншому каталозі, який призначений для тестування скриптів на локальній машині, запускаємо браузер, вводимо в рядку адреси http://localhost.
Повинна з'явитись сторінка з детальним описом конфігурації PHP.
Встановлення готових пакетів
Особисто я користуюсь операційною системою Debian Linux, тому і розглянемо встановлення пакетів саме в цьому середовищі.
Для початку необхідно дізнатись, які пакети є в репозитарії:
# aptitude update
# aptitude search apache
# aptitude search php5
# aptitude search mysql
Буде видано великий список пакетів. Для установки я вибрав наступні:
# aptitude install apache2 apache2-mpm-prefork apache2-utils\
> libapache2-mod-php5 php5 \
> php5-cli php5-common php5-curl \
> php5-gd php5-imagick php5-mysql \
> php5-xmlrpc php5-xsl \
> mysql-client-5.0 mysql-server-5.0
При цьому менеджер пакетів APT автоматично перевірить залежності і доставить решту пакетів. Разом вони займуть близько 40 Мб.
В мене Apache 2, на відміну від першого, стартувати одразу не захотів. Проблема вирішилась досить швидко: потрібно було закоментувати в файлі /etc/apache2/apache2.conf рядок 189 (в цьому рядку було посилання не неіснуючий файл).
Зберігаємо зміни в файлі, запускаємо сервер командою apache2 (для цього необхідні права адміністратора) і вводимо http://localhost. Повинно запрацювати.
Тепер кладемо наш PHP-скрипт в папку /var/www/apache2-default і набираємо http://localhost/index.php. Якщо відкрилась сторінка з інформацією про модуль PHP5, то все зроблено правильно, і сервер коректно налаштований.
Для керування використовується команда apache2ctl (для першої версії просто apachectl), після команди через пробіл вводиться дія (stop, start, restart). Ця команда доступна тільки користувачу root, оскільки вона знаходиться в папці /usr/sbin. Якщо треба, щоб кожен міг запускати сервер, можна пересунути файл з /usr/sbin/apache2ctl в /usr/bin/apache2ctl, або дати доступ на виконання звичайному користувачу. Також в Debian звичайному користувачеві заборонено записувати в папку /var/www/
apache2-default, тому даємо йому такі права:
# chmod a+rw /var/www/apache2-default -R
При необхідності даємо право на виконання PHP-скриптів:
# chmod a+x /var/www/*.php
Устанавливаем Денвер
Итак, вы решили установить Денвер. Он имеет нечто вроде ядра, или «сердца» так называемый «базовый пакет.. Базовый пакет содержит большинство необходимых программ и утилит:
Подготовка к работе с сетью
Чтобы сразу расставить все точки над «ё», давайте убедимся, что ваш компьютер действительно настроен для работы с сетью. Обычно именно так и бывает по умолчанию, но все же...
Многие ассоциируют слово «сеть» с Интернетом, локальной сетью или хотя бы модемом. И совершенно напрасно. Фраза «настроим сеть» может иметь смысл даже в том случае, когда ни одного из перечисленных устройств у компьютера нет! Здесь имеется в виду лишь установка драйверов и сетевых протоколов, которые позволят Apache запуститься и работать на локальной машине.
Итак, самый простой тест: откройте Пуск Выполнить и введите там команду:
После нажатия Enter вы должны увидеть примерно следующую картину:
Процесс продолжается несколько секунд. Если вы это видите, то все в порядке, и вы можете приступать к инсталляции дистрибутива. Если же, например, окно лишь «мигнет» (откроется и тут же закроется), либо же будут выведены какие-нибудь нелицеприятные сообщения, значит, сетевые протоколы у вас не установлены, а потому читайте дальше.
Вы, наверное, уже поняли, что ваша задача сейчас добиться, чтобы адрес 127.0.0.1 «пинговался». В случае проблем:
Установка дистрибутива
Запустите скачанный инсталлятор Денвера. Вы увидите перед собой нечто вроде следующего:
Вас спросят о том, в какой каталог вы хотели бы установить комплекс (по умолчанию используется C:\WebServers, вам нужно лишь нажать Enter, чтобы согласиться с этим выбором). В указанном каталоге будут расположены абсолютно все компоненты системы, и вне его никакие файлы в дальнейшем не создаются (исключая ярлыки на Рабочем столе).
Настоятельно рекомендуем вам устанавливать комплекс в каталог первого уровня то есть, C:\WebServers, а не, например, C:\My\WebServers. Дело в том, что инсталляторы пакетов расширений ищут базовый комплект именно на первом уровне по всем дискам. И, если не находят, заставляют вас ввести имя директории вручную. Наверное, вам не нужны лишние проволочки при установке расширений?..
Далее вам предложат ввести имя виртуального диска, который будет связан с только что указанной директорией. Рекомендуем вам согласиться со значением по умолчанию (Z:). Важно, что диска с этим именем еще не должно содержаться в системе чаще всего так и происходит с диском Z:.
После этого начнется копирование файлов дистрибутива, а под конец вам будет задан вопрос, как именно вы собираетесь запускать и останавливать комплекс. У вас есть две альтернативы:
В некоторых версиях Windows 98 имеется ошибка, в результате которой диск с первого раза не отключается мои эксперименты и исследования показали, что это именно ошибка в subst, а не что-то иное.
Собственно, вот и все. Вы сможете выполнить установку комплекса, имея всего 2 клавиши на клавиатуре: Enter и Y (чтобы ввести Yes).
Первый запуск Денвера
Наконец, установка завершена. Сразу же щелкайте по созданному инсталлятором ярлыку Start Denwer на Рабочем столе, а затем, дождавшись, когда все консольные окна исчезнут, открывайте браузер и набирайте в нем адрес: http://localhost/denwer/. Выходить из Интернета при этом не обязательно.
Некоторые ОС имеют обыкновение при первом запуске Internet Explorer-а вызывать Мастер подключения. Если это произошло на вашей машине, прикажите горе-мастеру «отвалить» якобы, вы уже настроили подключение самостоятельно.
Если тестовая страница все же не загрузится, проверьте:
Денвер прошел тестирование в следующих ОС:
Работа с виртуальными хостами
Вниманию пользователей Windows NT, 2000 или XP (и старше). Прежде, чем продолжить, убедитесь, что у вас запущена служба «DNS-клиент». Это можно сделать, открыв Панель управления Администрирование Службы. В противном случае виртуальные хосты работать не будут.
Если вы занимаетесь разработкой Web-сайтов, вам наверняка хотелось бы обслуживать одним сервером сразу несколько хостов. Иными словами, введя в браузере путьhttp://localhost, вы попадете на один сайт, а, напечатав http://test1.ru, совсем на другой (но тоже на локальной машине).
Добавить новый виртуальный хост в Денвере чрезвычайно просто. Пусть это будет test1.ru. Вам нужно проделать следующее:
Это все, что нужно сделать. А где же, вы спросите, модификация httpd.conf и файла hosts?.. Ее просто нет. Файл httpd.conf вообще не меняется никогда. Чуть посложнее с файлом hosts: он модифицируется автоматически, подстраиваясь под текущую конфигурацию каталогов в /home. При этом используется весьма интеллектуальный алгоритм для распознавания, какие хосты были внесены Денвером, а какие пользователь добавил самостоятельно, вручную (если он, конечно, захочет это сделать). То есть, автоматическое изменение файла hosts еще не означает, что в нем пропадут все комментарии и вы не сможете больше никогда редактировать его «руками». И, конечно, при остановке комплекса по ярлыку Stop Denwer файл hosts восстанавливается в то состояние, которое и должно быть.
Я не говорю «в предыдущее», потому что это, вообще говоря, не так. Представьте, что комплекс запущен и пользователь открыл hosts в Блокноте и добавил в него какой-нибудь хост. Например, он назначил домену microsoft.ru тот же IP-адрес, что имеет porno.com. После останова серверов этот адрес не удалится, а будет сохранен в исходном виде, в то время как все виртуальные хосты «отключатся». Действует принцип: «вычищай только то, что нагадил сам».
Воюем с Контроллером удаленного доступа
Как только вы начнете создавать виртуальные хосты, Контроллер удаленного доступа на некоторых системах может сойти с ума. Он будет при первом открытии хоста предлагать вам альтернативу наподобие следующей:
или даже вот так:
Слава богу, это происходит не каждый раз. Видите, как он извивается, чтобы только не дать человеку поработать?.. Так вот, в этом случае вы должны быть тверды: всегда выбирайте Подключиться или Повторить.
Ни в коем случае не давайте ему ответ Автономно, слышите?..
Но если ваш Контроллер удаленного доступа закусил удила и на ответ Подключиться начинает яростно набирать номер на модеме, идите в Сервис Свойства обозревателя Подключение и в разделе Настройка удаленного доступа поставьте флажок Не использовать (или Never Dial a connection).
Воюем с прокси-сервером
Многие версии Windows поставляются со включенным по умолчанию прокси-сервером. Это может вызвать кое-какие проблемы при работе с Денвером (впрочем, легко разрешимые).