| Здесь мы научимся устанавливать и настраивать Web-сервер Apache+PHP+MySQL для маздайки (читаем "виндавз") (2к и ХП). Сразу остановимся на том, почему выбор пал на Apache в качестве Web-сервера, почему например не маздаевский ISS, на это повлияло несколько причин: 1. ISS как и все продукты мелкомякгих достаточно дрявая штука в плане безопасности, частично это конечно лечится установкой кучи различный пачей, но это лишняя головная боль. Плюсы у него конечно есть, но не значительные; 2. ресурсоемкость сервера, для многих это не показатель, но тем не менее мне приятно когда софт менее требователен к ресурсам; 3. и пожалуй наиболее важное в случае партирования своего творения на платный хостинг, чтоб его могли увидеть миллионы, это то, что Apache есть как под маздайку, так и под *никсы, и если Вы воспользуетесь средствами безопасности апача, то у вас не возникнит проблем с переездом; 4. и пожалуй последнее и тоже не маловажное это то, что Apache является бесплатным продуктом, со всеми вытекающими последстиями. Теперь о дистрибутиве... Скачать Apache можно на официальном сайте http://www.apache.org/dyn/closer.cgi При поиске следует помнить, что Apache так же может называться httpd, по имени его демона в UNIX. Чтоб не парится, можно залесть сюда http://www.sai.msu.su/apache/httpd/binaries/win32/ , если Вы не увидили своего любимого *.exe не пугайтесь *.msi делает тоже самое. Далее PHP... Его можно взять вот тут: http://www.php.net/downloads.php Ну и MySQL... http://dev.mysql.com/downloads/ В качестве замечания скажу, что альфа-версии брать не стоит однозначно, а над бэтами плотно подумать... Ладно, все что нам надо мы скачали, теперь приступим к установке... Первонаперво ставим Апача... Стоп! Маленькое отступление: Для начала мы распланируем КУДА мы ЭТО будем ставить, можно этого конечно и не делать, но так как все программы по умолчанию пытается ставится либо в "Program Files", либо вобще на "C:\" и потом оказывается разбросаным по разным углам нашей "вселенной", мы насильно все положим в одно место для удобства доступа. Создаем папку, например "Web" или "www", в корне диска, кому нравится C, кому D (если есть, у меня есть...), далее в ней мы создаем папки: "Server" - сюда будем складыват компоненты сервера, "root" - тут в последствии будут жить скрипты нашего сайта и "DB" - сюда мы поселим базы данных. Ладно, хорош отступать, будем ставиться... .: Apache :. После запуска инсталяхи, нам будет предложено согласиться с лицензионным соглашением - соглашаемся и идем далее... тут мы можем почитать про новшества и т.п. и идем далее... ну а тут приступим к настройкам сервера. Для начала заполняем доменное имя сервера (Network Domain...), имя сервера (Server Name) и адрес электронной почты администратора. Если установка происходит на локальную машину, то в поля для доменного имени и имени сервера следует ввести localhost. В нижней части окна предлагается выбрать номер порта по которому сервер будет принимать запросы (80 или 8080). Дальше будет предложен вариант установки типовой или выборочный, нам нужен выборочный, чтоб указать наш каталог "Server". После завершения установки, запускаем браузер и а строку адреса пишем http://localhost/ или http://127.0.0.1/ - должна загрузится страница сервера. Теперь надо научиться им управлять, а точнее запускать и останавливать... Сделать это можно используя ApacheMonitor, используя консоль управления сервисов Windows, используя пункты меню Пуск, из командной строки… Рассмотрим консоль управления сервисов Windows, позволяющего настроить Apache для автоматического старта при запуске системы. Для запуска консоли управления выполните команду Пуск->Настройка->Панель управления->Администрирование->Службы. В появившемся окне консоли, на приведённом ниже рисунке, следует выбрать сервис Apache2. Контекстное меню, открывающееся по нажатию на правой кнопке, позволяет осуществлять запуск, остановку и перезапуск сервиса. Службы Windows позволяют осуществлять запуск фоновых приложений при старте системы. Для этого необходимо перейти в окно Свойства, выбрав в контекстном меню сервиса пункт Свойства и в появившемся окне в выпадающем списке "Тип запуска" выбрать пункт "Авто". Настройка апача Файл конфигурации сервера у нас расположен D:\Web\Server\Apache\conf в файле httpd.conf. Про пути к файлам: В конфигурационных файлах Apache и PHP Вам часто придется указывать пути к различным директориям и папкам. В операционных системах *ниск и маздайка применяются различные разделители каталогов. В никсах используется прямая косая черта "/", например /usr/bin/perl, в маздайке обратная, например, c:\Apache\bin. Вообще, в некоторых директивах Apache и PHP работают оба вида разделителей каталогов: прямой(/) и обратный(), но так как и Apache и PHP изначально разрабатывались под никсы, то применяя их "родной" формат, Вы сможете избежать ряда проблем. Поэтому пути в настроечных файлах (httpd.conf и php.ini) рекомендуется писать через слеш в формате UNIX — "/". И так основные директивы файла httpd.conf: Port TCP порт, который используется Apache для установки соединения. По умолчанию используется 80 порт. Если будет указан другой порт, то его придется также указывать в строка адреса, например: http://localhost:8080/. ServerAdmin Мыльный адрес администратора web-сервера, который будет отображаться при ошибках работы сервера. ServerName Содержит имя компьютера для сервера. ServerRoot Code ServerRoot "d:/Web/Server/Apache" Указывает где живут файлы веб-сервера. DocumentRoot Code DocumentRoot "d:/Web/root" Указывает, где на винте живет наш веб-сайт. Контейнер <Directory /> Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри DocumentRoot. Code <Directory /> Options FollowSymLinks Includes Indexes AllowOverride All </Directory> - Директива AllowOverride установленная в значение All разрешает переопределять значения главного конфигурационного файла httpd.conf в файлах .htaccess. - Директива Options FollowSymLinks разрешает Apache следовать символическим ссылкам. - Директива Options Includes разрешает выполнение директив SSI (Server Side Includes) в коде страниц web-сайта. - Директива Options Indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл. DirectoryIndex Code DirectoryIndex index.html index.phtml index.php Содержит список индексных файлов, которые следует отображать при обращении к директории без указания имени файла (например, http://localhost/test/ ) AddDefaultCharset Code AddDefaultCharset windows-1251 Устанавливает кодировку по умолчанию, если кодировка не установлена в заголовке HTML-документа. Также Вам может потребоваться указывать значение кодировки KOI8-R. Создание витруальных хостов На одном WEB-сервере Apache можно установить несколько WEB-сайтов. Эта функция сервера называется виртуальным хостингом. Ниже рассмотрим создание виртуальных узлов на основе имен. Виртуальные узлы обычно расположены в конце файла httpd.conf. Сначала требуется указать какой IP-адрес используется для виртуальных хостов. Code NameVirtualHost 127.0.0.1:80 <VirtualHost 127.0.0.1> # Директивы виртуального хоста </VirtualHost> Далее нужно прописать директивы для контейнера <VirtualHost>, которые будут определять конфигурацию виртуального хоста. Code <VirtualHost 127.0.0.1> ServerAdmin webmaster@may_domain.ru DocumentRoot d:/web/mysite ServerName www.mysite.ru ServerAlias www.site.ru www.host2.ru ErrorLog logs/mysite-error.log CustomLog logs/mysite-access.log common </VirtualHost> Рассмотрим директивы виртуального узла: DocumentRoot указывает каталог, где расположены файлы (странички) данного виртуального узла (WEB-сайта) ServerName указывает имя виртуального узла, по которому к нему можно обратиться. В данном случае, по адресу http://www.mysite.ru/. ServerAlias содержит псевдонимы имен виртуального узла. В данном случае к виртуальному узлу можно также обратиться, используя имена: http://www.site.ru/ и http://www.host2.ru/. ErrorLog и CustomLog указывает имена логов сервера для этого виртуального хоста. Контейнеры обычно располагают один за другим в конце файла httpd.conf. Code NameVirtualHost 127.0.0.1:80 <VirtualHost 127.0.0.1> # Директивы виртуального хоста 1 </VirtualHost> <VirtualHost 127.0.0.1> # Директивы виртуального хоста 2 </VirtualHost> <VirtualHost 127.0.0.1> # Директивы виртуального хоста 3 </VirtualHost> Для того, чтобы обращаться к виртуальным узлам по именам их следует прописать в базы данных DNS-сервера. Если Вы используете Apache для тестирования файлов на локальной машине, то имена ваших виртуальных узлов следует прописать в файле hosts. Для Windows 2000 и XP он расположен в каталоге C:\WINDOWS\system32\drivers\etc. Файл hosts содержит записи вида: Code 127.0.0.1 www.mysite.ru 127.0.0.1 www.site.ru 127.0.0.1 www.host2.ru .: Установка и настройка PHP :. Для установки PHP создаем каталог D:/web/server/php и распаковываем туда содержимое архива. Затем копируем файл php.ini-dist в дкрикторию маздайки под именем php.ini. Затем надо прописать инфу о PHP в конфиге апача. Есть 2 варианта подключения PHP: как модуль Апача и как внешнее ЦГИ-приложение. Рассморим их. Установка PHP в качестве модуля Плюсы: - несколько выше быстродействие, за счет того, что интерпритатор загружается один раз при старте апача Минусы: - после внесения каких либо изменений в php.ini, необходимо перезапускать апача (за год работы сервера по этой причине перезапускался 2 раза) Для установки в качестве модуля, в файле настроек апача httpd.conf, необходимо убрать коментарии со строк и при необходимости изменить их: Code AddType application/x-httpd-php phtml php LoadModule php5_module d:/web/server/php/php5apache2.dll Установка PHP, как CGI-приложения Плюсы: - нет необходимости каждый раз перезапускать апач, при внесении изменений в натройку интерпритатора PHP, т.к. php.ini считывается каждый раз при обращении к php-скрипту Минусы: - из-за постоянных подгрузок PHP-интерпритатора снижается бытродействие; - престают работать некоторые заголовки, например, Вы не сможете организовать авторизацию пользователей средствами PHP. Авторизации можно будет реализовать только средствами самого Apache с помощью файлов .htaccess; - иногда блокируется php-скрипт просмотренный в браузере, что не позволяет вносить в него дальнейшие изменения, вполть до перезапуска апача Для подключения в таком виде, в файле настроек апача найдите строки подключения пхп и измените их следующим образом: Code AddType application/x-httpd-php phtml php <Directory "d:/web/server/php"> Options ExecCGI </Directory> ScriptAlias "/php_dir/" "d:/web/server/php" Action application/x-httpd-php "/php_dir/php-cgi.exe" Конфигурирование PHP (файл php.ini) Code error_reporting = E_ALL & ~E_NOTICE позволит отображать все сообщения об ошибках и игнорировать "замечания", что достаточно удобно при разработке. Также для необходимо проверить разрешон ли вобще вывод ошибок: Далее настроим работу с переменными: Code variables_order = "EGPCS" Наличие букв позволяет работу со следующими видами переменных: E - переменными среды G - переменными передаваемыми по методу GET (G) P - переменными передаваемыми по методу POST (P) C - Cookies S - сессии Следующая директива, котурю необходимо изменит: Code register_globals = On Необходимо установит занечение "Off". Включеная данная деректива позволяет обращаться к переменным, передаваемым методами GET, POST, через cookies и сессии можно использовать в PHP-скрипте, обращаясь к ним просто как обычным переменным $someone, в противном случае к ним можно обратиться только через суперглобальные массивы ($_POST, $_GET и т.п.). С одной стороны включеная директива облегчает програмирование, но с точки зрения безопасности неразумно, и как правило на платных хостингах она выключена. Директива Code register_long_arrays = On позволяет обращатся к суперглобальным массивам в старом ("длинном") формате, например $HTTP_GET_VARS. Далее нам необходимо подключить раширенные библиотеки. Для этого находим дириктиву extension_dir и прописываем путь ей путь Code extension_dir ="d:/web/server/php/ext" затем можно убрать коментарий со следющих строк: Code extension=php_gd2.dll extension=php_bz2.dll в подробности пока вдаватся не буду, но скажу, что пригодится. После всех манипуляций перезапускаем апача и в директории "root" создаем файл index.php, со следующим содержимым: При успешной настройке, обращение по адресу http://localhost/index.php отобразит кучу таблиц с текущими настройками PHP, которая выдаётся функцией phpinfo(). .: Подключение MySQL :. Устанавливаем MySQL в директорию d:/web/server. Открываем на редактирование php.ini, находим строку extension=php_mysql.dll и убераем коментарий. Затем в директории куда установился MySQL, нахоим файл my.ini и в нем и некоторые директивы приводим к виду: Code datadir="D:/Web/Server/DB/" этим мы указываем новое хранилище для баз данных, так же необходимо содержимое директории "data" перенести в указанную директорию затем для корректной работы с русскими буквами прописываем: Code default-character-set=cp1251 Если PHP был подключен как модуль, необходимо скопировать библиотеку libmysql.dll из каталога с установленным PHP в системный каталог C:/Windows/System32 и перезагрузить Apache. Для того чтоб проверить работоспособность SQL-сервера, в уже созданом index.php, меняем код на: Code <?php $dblocation = "127.0.0.1"; $dbname = "test"; $dbuser = "root"; $dbpasswd = "";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd); if (!$dbcnx) { echo "<p>К сожалению, не доступен сервер mySQL</p>"; exit(); } if (!@mysql_select_db($dbname,$dbcnx)) { echo "<p>К сожалению, не доступна база данных</p>"; exit(); } $ver = mysql_query("SELECT VERSION()"); if(!$ver) { echo "<p>Ошибка в запросе</p>"; exit(); } echo mysql_result($ver, 0); ?> В случае успешной установки MySQL при открытии http://localhost/index.php Вы должны увидеть версию вашего SQL-сервера Ну вот в принципе и фсё
Маленький, толстый и подлый
Сообщение отредактировал Borman - Четверг, 30-Август-2007, 16:40:25 |