Отправляет email-рассылки с помощью сервиса Sendsay

Обучение и статьи по языку php

  Все выпуски  

Обучение и статьи по языку php


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Информационный клуб webмастеров Kwazar: http://kwazar.lgg.ru
Доброго времени суток вам!
Я рад представить вам первый выпуск моей рассылки по теме:обучение и статьи
по языку php.
Эта небольшая статья поможет Вам скачать и установить один из лучших серверов
- Apache, а также те приложения, из-за отсутствия которых народ в бешенстве
сметает все остальные сервера (например, Sambar Server) со своего многострадального
жесткого диска и устанавливает Apache для Windows 95/98. Имеются в виду, конечно
php, MySQL, также работающие под Windows. Прочитав эту статью и скачав дистрибутивы,
Вы будете вооружены всеми инструментами, которые так необходимы для профессиональной
работы в Web!
1. Введение - зачем нужен домашний виртуальный сервер?
                                "Ну к чему все это, лучше бы водки выпили"
                                                Из писем Белинского Гоголю

Если Вы читаете этот документ, а также если у Вас установлен Windows 95/98 ,
значит, Вы уже столкнулись с проблемой виртуального домашнего сервера, а точнее,
с проблемой его отсутствия! Эта небольшая статья поможет Вам скачать и установить
один из лучших серверов - Apache, а также те приложения, из-за отсутствия которых
народ в бешенстве сметает все остальные сервера (например, Sambar Server) со
своего многострадального жесткого диска и устанавливает Apache для Windows 95/98.
Имеются в виду, конечно PHP3 и MySQL, также работающие под Windows. Прочитав
эту статью и скачав дистрибутивы, Вы будете вооружены всеми инструментами, которые
так необходимы для профессиональной работы в Web!

Обращаем Ваше внимание: бытует мнение, что MySQL (а тем более для Windows 95/98)
нельзя получить бесплатно, а можно только купить. Так вот, можете вздохнуть
с облегчением: MySQL для Windows 95/98 существует, и ее установка не будет стоить
Вам и копейки!

Поговорим теперь с теми пользователями Windows 95/98, которые заглянули сюда
из простого любопытства. Часто возникает ситуация, когда необходимо проверить
полный вид html-страницы. Однако чаще всего это невозможно при работе дома -
технологии SSI и CGI, например, точно требуют сервера. Как же быть? Не стоит
впадать в апатию - нужно просто установить на Ваш домашний компьютер (пусть
даже и не подключенный к Интернет) специальную программу - Web-сервер. Вообще-то
серверов существует множество - плохие и хорошие, медленные и быстрые... Мы
же выбрали сервер, подходящий под последние две категории, - Apache. Самое главное
то, что это чуть ли не единственный сервер, который позволяет работать в Windows
95/98 с технологиями php-скриптами так же просто и непринужденно, как будто
у Вас стоит Unix.



2. От слов к делу - установка Apache
"У меня для вас две новости: плохая и хорошая. Плохая: мяса
мало, будем есть бизоний помет. И хорошая: его-то у нас много!.."
Из выступления вождя апачей

Итак, Вы решились установить на свой компьютер Apache для Windows 95/98. В таком
случае Вам следует запастись терпением и для начала скачать дистрибутив сервера
- файл с именем apache_setup.exe. Скачали? Прекрасно. Теперь самое интересное
- настройка Apache для Вашей системы.

Важно: мы попросим Вас в точности выполнять перечисленные ниже шаги, не пропуская
и не откладывая ни одного. В этом случае все заработает - это проверено.

Этап первый - установка
Определитесь с директорией, в которую Вы будите устанавливать Apache. Все дальнейшие
рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:\usr\local\apache
Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать
одно из трех:
Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например,
с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее
решение, и с точки зрения экономии памяти, и с точки зрения быстродействия.
Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как
раз и оптимизирует работу с такими файлами.
Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию,
которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали
C:\INTERNET. Далее, в начале файла c:\autoexec.bat пропишите такую строку:
subst f: C:\INTERNET
и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.
ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой
иногда subst-пути "сами по себе" преобразуются в абсолютные. То есть, например,
иногда в рассмотренном выше примере команды

f:
cd \
cd \
dir
(а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория
C:\ (а не F:\, как это должно быть). Указанная ошибка чаще всего проявляется
в неработоспособности Perl-транслятора. Так что лично мы не рекомендуем Вам
использовать subst. Вместо этого воспользуйтесь пунктом 1.
Наконец, Вы можете всего этого не делать и поставить Apache на любой другой
диск, только тогда Вам придется немного тяжелее при выполнении всех остальных
действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это
крайне неприятно. Еще раз настоятельно рекомендуем воспользоваться диском F:.
Рекомендуем все же разместить Apache в указанном в начале каталоге, так как
он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь
чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее
сможем работать.

Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes,
а затем - кнопку Next.
Теперь нажмите Browse. Вручную задайте директорию для установки: f:\usr\local\apache
и нажмите кнопку OK.
Выберите тип установки - Сustom и уберите флажок Source Code (если, конечно,
не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
Нажмите Next и подождите, пока будут копироваться файлы Apache.
На запрос о перезагрузке компьютера ответьте "Перезагрузить".
Поздравляем - Apache установлен! Теперь самое неприятное - его настройка.



Этап второй - настройка файла конфигурации Apache mime.types
Откройте директорию f:\usr\local\apache\conf. Откройте находящийся там файл
mime.types.
Найдите в нем такую строчку:
text/html      html htm
Измените ее на
text/html      html htm shtml shtm sht
Следует заметить, что если Вы по каким-то причинам не хотите портить файл mime.types,
то можно вместо этого прописать в файле httpd.conf (см. ниже) строки вида

AddType text/html html htm shtml shtm sht


Этап третий - настройка файла httpd.conf
Внимание! Это - самый ответственный момент установки. Просим соблюдать инструкции
БУКВАЛЬНО.

Откройте директорию f:\usr\local\apache\conf Откройте находящийся там файл httpd.conf.
Это - единственный файл, который Вам осталось настроить. Вам предстоит найти
и изменить в нем некоторые строки, а именно те, о которых упоминается далее.
Во избежание недоразумений не трогайте все остальное. Следует заметить, что
в нем каждый параметр сопровождается несколькими строками комментариев, разобраться
в которых с первого раза довольно тяжело. Поэтому не обращайте на них внимание.
В поле ServerAdmin укажите Ваш E-mail адрес, который будет показываться в сообщениях
об ошибке сервера. Например:
ServerAdmin my@email.com
В поле ServerName напишите любое слово - на работе это не сказывается, например:
ServerName ApacheServer
Только не забудьте раскомментировать поле ServerName, то есть убрать символ
"#" перед этим параметром (по умолчанию он закомментирован)!
В поле DocumentRoot укажите ту директорию, в которой будут храниться Ваши html-файлы,
например:
DocumentRoot f:/www
Разумеется, можете указать и любую другую директорию, если хотите. В любом случае,
не забудьте ее создать, лучше сделайте это прямо сейчас!
Найдите блок, начинающийся строкой <Directory /> и заканчивающийся </Directory>
(вообще, такие блоки обозначают установки для заданной директории и всех ее
поддиректорий). Его нужно изменить на:
<Directory />
  Options Indexes Includes
  AllowOverride All
</Directory>
Таким образом, в этом блоке будут храниться установки для всех директорий по
умолчанию (т.к. это - корневая директория).
Найдите аналогичный блок, начинающийся <Directory "f:/usr/local/apache/htdocs">
и заканчивающийся </Directory>. Там будет много комментариев, не обращайте на
них внимание. Этот блок следует заменить на:
<Directory "f:/www">
  Options Indexes Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
Это - установки для директории с Вашими html-документами. Если хотите, можете
установить другую директорию, главное, чтобы она совпадала с той, которая прописана
в параметре DocumentRoot
Идем дальше. Установите UserDir, например так:
UserDir f:/home
Это будет директория, в которой хранились бы домашние страницы пользователей,
если бы это был настоящий Web-сервер, а также корневые каталоги виртуальных
хостов (см. ниже). Не забудьте также создать этот каталог.
Установите DirectoryIndex так:
DirectoryIndex index.htm index.html
Это - так называемые файлы индекса, которые автоматически выдаются сервером
при обращении к какой-либо директории, если не указано имя html-документа. В
принципе, можно добавить сюда и другие имена, например, index.phtml, если Вы
будите работать с PHP и т.д.
Найдите и пропишите такой параметр:
ScriptAlias /cgi-bin/ "f:/cgi-bin/"
Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться
Ваши CGI-скрипты. Если хотите, можете задать другое имя, например:
ScriptAlias /mycgi/ "f:/mycgidir/"
Подобный параметр говорит Apache о том, что, если будет указан путь вида http://localhost/cgi-bin,
то на самом деле следует обратиться к директории f:/cgi-bin.
Теперь следует найти и настроить блок параметров, начинающийся с <Directory
"f:/cgi-bin"> и заканчивающийся </Directory>. Это - установки для Вашей CGI-директории
(если Вы установили для нее другое имя на предыдущем шаге, соответственно модифицируйте
путь). Там должно быть:
<Directory "f:/cgi-bin">
  AllowOverride All
  Options ExecCGI
</Directory>
Настройте следующий параметр:
AddHandler cgi-script .bat .exe
Это говорит Apache о том, что файлы с расширением .exe и .bat нужно рассматривать
как CGI-скрипты.
И последнее - установите:
AddHandler server-parsed .shtml .shtm .sht
Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI, напишите
так:
AddHandler server-parsed .shtml .shtm .sht .html .htm
Поздравляем - Вы настроили свой Apache, и он должен уже работать! Для запуска
сервера нажмите Пуск->Программы->Apache Web Server->Start Apache as console
app, при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше
не произойдет. Не закрывайте его и не трогайте до конца работы с Apache.

Несколько слов о том, как можно упростить запуск и завершение сервера. В Windows
можно назначить любому ярлыку функциональную комбинацию клавиш, нажав которые,
Вы запустите этот ярлык. Так что щелкните правой кнопкой на панели задач, в
контекстном меню выберите Свойства, затем Настройка меню и кнопку Дополнительно.
В открывшемся Проводнике назначьте ярлыку Start Apache as console app комбинацию
Ctrl+Alt+A, а ярлыку Shutdown Apache as console app - Ctrl+Alt+S

Вот шаги, которые можно проделать для проверки работоспособности сервера:

Проверка html: в директории f:/www с html-документами Apache создайте файл index.html.
Теперь запустите браузер и наберите:

http://localhost/index.html
или просто
http://localhost/
Загрузится Ваш файл.
Проверка CGI: в директории f:/cgi-bin для CGI-скриптов создайте файл test.bat
с таким содержанием:

@echo off
echo Content-type: text/html
echo.
echo.
dir
Теперь в браузере наберите:
http://localhost/cgi-bin/test.bat
В окне отобразится результат команды DOS dir.
Проверка SSI: аналогична проверке html. Используйте, например, директиву
<!--#exec cgi="/cgi-bin/test.bat"-->


3. Виртуальные хосты Apache - как это настроить?
"Виртуальные хосты - хосты, имеющие уникальный адрес
в Интернет, эмулируемые и поддерживаемые сервером"
Древнее языческое заклинание

Итак, Вы установили Apache. Получили, таким образом, директорию f:/www для хранения
документов и f:/cgi-bin для CGI. Но вот беда: в Интернете вы поддерживаете несколько
серверов, а Apache создал для вас только один. Конечно, можно структуру этих
несколькох серверов хранить на одном сервере, однако проще и удобнее было бы
создать несколько виртуальных хостов с помощью Apache, например, один с именем
serv1 и адресом 127.0.0.2, а другой - с именем serv2 и адресом 127.0.0.3. (Конечно,
вместо "serv1" и "serv2" Вам нужно будет указать желаемые имена Ваших виртуальных
хостов. Советуем назвать их так же, как и на Вашем настоящем Web-сервере - это
может многое упростить при программировании скриптов.)

Как это принято в Unix, каждый сервер будет представлен своим каталогом в директории
f:/home с именем, совпадающим с именем сервера. Например, сервер serv1 будет
храниться в директории f:/home/serv1, которую Вам необходимо создать прямо сейчас.
В этой директории будут находиться:

файл access.log с журналом доступа к виртуальному серверу.
файл errors.log с журналом ошибок сервера.
директория www, где будут храниться html-документы.
директория cgi для хранения CGI-программ.
Последние две директории (www и cgi) Вам тоже необходимо создать прямо сейчас.

Далее, для установки виртуального хоста необходимо сделать некоторые изменеия
в файле конфигурации Apache httpd.conf (см. выше), а также в некоторых файлах
Windows. Вот необходимые действия:

Откройте директорию f:\usr\local\apache\conf. Откройте находящийся там файл
httpd.conf. Перейдите в его конец, Вам предстоит добавить туда несколько строк.
Пропишите следующие строки в конце файла после всех комментариев:

#----serv1
<VirtualHost 127.0.0.2>
  ServerAdmin webmaster@serv1.ru
  ServerName serv1
  DocumentRoot "f:/home/serv1/www"
  ScriptAlias /cgi/ "f:/home/serv1/cgi/"
  ErrorLog f:/home/serv1/error.log
  CustomLog f:/home/serv1/access.log common
</VirtualHost>
При желании можно добавить и другие параметры (например, DirectoryIndex и т.д.)
Вообще, не переопределенные параметры наследуются виртуальным хостом от главного.
Теперь надо немного подправить системный файл hosts, который находится в C:\WINDOWS\hosts
(такого файла может не быть по умолчанию - в этом случае его надо создать).
hosts - обычный текстовый файл, и в нем обычно заранее прописана только одна
строка:
127.0.0.1       localhost
именно эта строка и задает соответствие имени localhost адресу 127.0.0.1. (Ради
справедливости следует сказать, что имя localhost работает и без указанной выше
строки. Ну и выдумщики же эти парни из фирмы Microsoft!) Для нашего виртуального
хоста надо добавить соответствующую строчку, чтобы файл выглядел так:
127.0.0.1       localhost
127.0.0.2       serv1
Этим Вы создадите виртуальных хост со следующими свойствами:
Имя - serv1
Доступен по адресу http://serv1 (или http://127.0.0.2).
Расположен, соответственно, в директории f:/home/serv1.
Директория для хранения документов - f:/home/serv1/www, доступная по адресу
http://serv1/.
Директория для CGI - f:/home/serv1/cgi, доступная по адресу http://serv1/cgi/
Файлы журналов хранятся в f:/home/serv1
Ну вот, мы создали один виртуальный хост! Если будет необходимо сделать второй,
нужно просто проделать аналогичные действия, заменив параметры, связанные с
расположением хоста на диске. Главное, не забудьте в этом случае указать другой
IP-адрес (лучше всего указывать их последовательно, начиная с 127.0.0.2, затем
127.0.0.3 и т.д. - в этом случае все работает корректно). Желательно также для
этих целей не указывать IP-адрус http://127.0.0.1, так как это - адрес главного
сервера.

Кстати, необходимо заметить, что главный хост (невиртуальный, тот, который мы
создали в раздулах 1 и 2) по-прежнему доступен по адресу http://127.0.0.1 или
http://localhost. Более того, его директория cgi-bin "видна" всем созданным
виртуальным хостам, так что Вы можете ее использовать.
Установка PHP
Создайте директорию f:/usr/local/php3 (если хотите другое имя, см. рассуждения
выше). Это - та директория, в которую будет установлен PHP.
Скачайте дистрибутив PHP - файл с именем (1.970.356 байт), желательно в только
что созданную директорию. Это саморазворачивающийся zip-архив, который Вы должны
будете запустить, чтобы разархивировать. По умолчанию он развернется в текущую
директорию, так что будьте внимательны.
Еще раз напоминаем: если Вы решили установить PHP в другую директорию, Вам необходимо
вручную отредактировать файл php_iis_reg.inf с целью замены в нем имен директории
на нужную (см. выше).
В файле php3.ini из дистрибутива есть закомментированные строки, выглядящие
так:
;extension=имя_модуля.dll
Если Вы хотите включить какой-нибудь модуль (по умолчанию уже включена поддержка
GD и mSQL), раскомментируйте соответствующую строку (уберите точку с запятой).
Теперь в Проводнике Windows нажмите правой кнопкой мыши на файле php_iis_reg.inf
и выберите в контекстном меню пункт Установить - этим Вы автоматически добавите
в Реестр некоторые установки, касающиеся PHP.
Скопируйте файл php3.ini в каталог с Windows (например, в c:\windows);
Настройка Apache
В файл конфигурации Apache conf/mime.types добавтьте такую строку:
application/x-httpd-php3 phtml php3
Теперь откройте файл conf/httpd.conf и добавьте в его конец (но перед блоков
виртуальных хостов, если они там есть) такие строки:
<Directory "f:/usr/local/php3">
  Options ExecCGI
</Directory>
ScriptAlias "/__php_dir__/" "f:/usr/local/php3/"
Action application/x-httpd-php3 "/__php_dir__/php.exe"
Ну вот, пожалуй, и все. Если Вы все сделали правильно, то PHP установлен. Проверьте
его работоспособность с помощью простого скрипта, например такого:
<?
echo "It works!<br>\n";
phpinfo();
?>
Напоминаем, что php-скрипты - не то же самое, что cgi-скрипты. В частности,
если cgi-скрипты обычно располагают в /cgi-bin/, то php-скрипт должен лежать
в директории с документами. Иными словами, файл в этом примере должен называеться
примерно так: f:/www/test.php3





5. Установка MySQL
Сначала определимся: зачем же вообще нужны базы данных Web-программисту? Неужели
не проще писать все самому? Ведь обычно объем данных не очень велик (если Вы
только не пишите поисковую систему). Наш личный опыт таков: оказывается, стоит
затратить какое-то время на изучение MySQL - это удивительно мощный инструмент,
который сэкономит в будущем немало часов, потраченных на отладку "взбесившегося"
скрипта.

Итак, Вы решили установить у себя на локальном Apache поддержку MySQL. Как ни
странно, это даже во многом проще, чем заставить работать Perl. Прежде чем привести
точные инструкции, хотелось бы уточнить два момента:

Эта статья не претендует ни в коей мере на то, чтобы быть учебником по MySQL.
Предполагается, что Вы уже знаете, как работать с этой базой данных. Максимум,
что здесь описывается - это то, как заставить MySQL работать под Window 95/98.
В дальнейшем будем считать, что Apache у Вас установлен именно там, где это
рекомендовалось выше.
Что ж, приступим.

Для начала запаситесь терпением и скачайте дистрибутив MySQL - mysql.zip. Как
можно заметить, он довольно большой. Затем разверните его в любую удобную Вам
директорию.
Запустите setup.exe. Он спросит, действительно ли Вы хотите установить MySQL.
После того, как Вы ответите утвердительно, файлы начнут копироваться в директорию
c:/mysql, т.е. он даже не спросит Вас, куда устанавливать MySQL. Ничего страшного.
Теперь, если Вы любите порядок, можете скопировать директорию c:/mysql в какое-нибудь
более приличное место - например, f:/usr/local/. Только после этого строго следуйте
указаниям в статье.
Создайте в директории f:/usr/ такие два .bat-файла:
server.bat:
@echo off
f:\usr\local\mysql\bin\mysqld.exe --basedir f:/usr/local/mysql
f:\usr\local\apache\Apache.exe
shutdown.bat:
@echo off
f:\usr\local\apache\Apache.exe -d f:\USR\LOCAL\APACHE -k shutdown
"f:\usr\local\mysql\bin\mysqladmin.exe" -u root shutdown
Файл server.bat Вы будете запускать, когда захотите "включить" Apache и одновременно
MySQL (ясно, что бессмысленно запускать MySQL без сервера), а shutdown.bat -
для завершения работы Apache и MySQL. Очень важно завершать работу MySQL правильно
- иначе могут быть испорчены таблицы баз данных. Собственно, для этого мы и
сделали эти два .bat-файла. (Кстати говоря, в отличие от Apache, у MySQL нет
своего окна - ее процесс можно увидеть, лишь нажав Ctrl+Alt+Del. Это еще одна
причина существования shutdown.bat).
Теперь для удобства можно создать ярлыки на Рабочем столе для этих файлов. Рекомендуем
также назначить этим ярлыкам "горячие" клавиши: например, для запуска сервера
- Ctrl+Alt+A, а для завершения работы - Ctrl+Alt+S. Кроме того, лучше поставить
у этих ярлыков параметры "Запускать свернутыми в значок". Все это сильно упростит
жизнь в дальнейшем.

Что ж, считайте, MySQL уже установлена. Осталось только создать базу данных.
Для этого следует запустить f:/usr/local/mysql/bin/mysqladmin с ключем create
имя_базы. Например, если мы хотим создать базу testbase, нужно ввести:
f:/usr/local/mysql/bin/mysqladmin create testbase
Если Вы планируете использовать MySQL в скриптах на PHP, проверьте, раскомментирована
ли в файле php3.ini (расположенном в директории с PHP и в c:\windows) следующая
строка:
extension=php3_mysql.dll
Если в ее начале стоит точка с запятой, уберите ее - иначе PHP не сможет опознавать
функции для работы с MySQL.
Поздравляем - теперь можно работать! Если хотите, можете проверить работоспособность
MySQL следующим скриптом на PHP3 (скажем, расположенном в f:/www/test.php3):
<?
Error_Reporting(1+2+4);
define("DBName","testbase");
define("HostName","localhost");
define("UserName","root");
define("Password","");

if(!mysql_connect(HostName,UserName,Password))
 { echo "Не могу соединиться с базой ".DBName."!<br>"; exit; }

// Создаем таблицу test. Если такая таблица уже есть, сообщение об ошибке будет
// подавлено, т.к. используется "@"
@mysql(DBName,"create table test(id int,a text)");

// Вставляем в таблицу 10 записей
for($i=0; $i<10; $i++)
 { $id=time();
   mysql(DBName,"insert into test(id,a) values($id,'Строка $i!')");
 }

// Выводим все записи
$r=mysql(DBName,"select * from test");
for($i=0; $i<mysql_numrows($r); $i++)
 { $f=mysql_fetch_array($r);
   echo "$f[id] -> $f[a]<br>\n";
 }

?>
Обращаем Ваше внимание на макросы DBName, HostName, UserName и Password. DBName
должен содержать имя базы данных. HostName - всегда localhost, ведь мы работаем
на локальном компьютере. В макросе UserName проще всего подставлять root, который
является собственником всех таблиц. При установке MySQL пользователю root не
назначается пароль, так что макрос Password равен пустой строке. Ну вот,на дааный
момент я расказал все что собирался.
До встречи!
Остальный рассылки автора:
Обучение и статьи по языку perl:
http://subscribe.ru/catalog/inet.webbuild.webc1/
Обучение и статьи по языку java:
http://subscribe.ru/catalog/inet.webbuild.webc3/
Обучение и статьи по языку flash:
http://subscribe.ru/catalog/inet.webbuild.webc4/

http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное