Бегун.Рекомендую - рекламодателю
Здесь может быть ваша реклама
|

 Установка

2 Установка

В этой главе приведены пошаговые инструкции по установке и настройке РНР на UNIX-подобных системах, в Windows и в системах MacOS. Имеются также дополнительные инструкции по установке Apache и MySQL. Кроме того, мы включили некоторые советы относительно действий в «маловероятном» случае возникновения сложностей.

РНР уже установлен

Если на вашем веб-сервере уже установлен РНР, все же следует убедиться, что в конфигурации РНР указаны все инструменты, которые понадобятся в этой книге. К счастью, есть встроенная функция РНР с именем phpinfoQ, отображающая состояние практически всего, что может быть сконфигурировано.

Если есть веб-сервер, просто создайте текстовый файл, как обычный файл HTML, но поместите в него только одну строку:

<?php

phpinfoO;

?>

Никакие теги HTML не нужны. Функция phpinfoO выведет все необходимое. Если ваш редактор HTML все-таки добавил теги <html> и <body>, от которых не удается избавиться, то большинству броузеров это не должно быть помехой.

Сохраните этот файл под именем phpinfo.php и убедитесь в правильности имени. Редактор Notepad имеет привычку добавлять к имени файла расширение . txt, даже если вам это не нужно: имя phpinfo. php. txt не годится. Edit-Plus с http://www.editplus.comрредставляетсобой хорошую альтернативу Notepad, кроме того, есть десятки других редакторов. Поместите phpinfo. php на свой веб-сервер.

Откройте в броузере страницу http://localhost/phpinfo.phjtвы получите длинный список всех функций, установленных вместе с РНР.

Образец результатов работы phpinfo() приводится далее в этой главе, но возможных исходов несколько:

Длинная страница голубых и серыхпрямоугольников, в которых показаны разные ресурсы, доступные в РНР

В броузере не отображается ничего, но выбор пункта меню View Source показывает сценарий phpinf о. php

•    Error 404: Page Missing (или аналогичное)

•     Error 500: Internal Server Error (или аналогичное)

В первом случае РНР есть, и можно просто прочитать то, что выведено. Во втором случае либо расширение имени файла не . php, либо веб-сервер не настроен на работу с РНР. В третьем либо файл помещен в неправильное место, либо его имя не phpinfo. php, либо указан неправильный URL или нечто аналогичное. Проверьте URL, имя файла и каталог. В четвертом случае РНР, возможно, установлен, но некорректно, что вызывает аварию сервера. В оставшейся части главы можно найти советы по обнаружению причины ошибки.

Если видны красивые голубые и серые прямоугольники, значит, РНР работает, но надо удостовериться, что где-то в тексте указано:

Версия РНР - 4.0.5 или выше - чем ближе к текущей версии nahttp://php.net/downloads.php, тем лучше

Версия MySQL - 3.23.хх или выше - текущая версия указана nahttp://www.mysql.com/

Ключевые слова можно поискать с помощью команды броузера Find. Если ключевое слово действительно отсутствует (проверьте орфографию), значит, соответствующая программа не установлена. Иногда можно обойтись без одной или двух этих функций, если они отсутствуют или номер версии немного меньше, чем требуется. Однако если программное обеспечение устарело или отсутствуют многие необходимые функции, потребуется выполнить обновление.

Кроме того, может оказаться проще и экономнее по времени найти интернет-провайдера, поддерживающего РНР и MySQL, чем пытаться создать вебсервер. В базе данных на http://hosts.php.netfixперечислено свыше 2000. Некоторые из них предлагают вполне разумные цены, а ваше время и силы стоят дорого.

Если вы просто веб-разработчик и хотите изучить РНР, а своего работающего веб-сервера у вас нет, то, может быть, самое разумное - найти хост с поддержкой РНР и MySQL. Возможно, вы все-таки хотите установить РНР и MySQL на своем настольном или переносном компьютере, но вы вполне можете проработать всю эту книгу, а установку выполнить позднее. Все же неплохо просмотреть эту главу и получить представление о том, как устанавливать MySQL, Apache и РНР и как они взаимодействуют между собой. Установка вашего ISP может не совпадать полностью с предлагаемой, но должна быть весьма сходна с ней.

Действия перед установкой

Прежде чем реально устанавливать РНР, посмотрите доступные пакеты сторонних разработчиков, имеющие интерфейс к РНР. Одной из сильных сторон РНР является большое количество интерфейсов для работы с РНР. На многих веб-серверах РНР играет роль фактически мостика между веб-сервером и сервером базы данных либо программным обеспечением сторонних разработчиков. Однако этот мостик РНР оказывается очень удобным и простым.

Вообще говоря, есть «базовый» РНР, который устанавливается всегда, и большое количество модулей РНР, которые могут быть установлены как интерфейсы к внешним программным пакетам типа MySQL.

Обзор всех программных пакетов сторонних разработчиков, которые имеют интерфейсы с РНР, можно взять на http://www.php.net/manual/en/intro-whatcando.php. В этом документе перечислено программное обеспечение, поддержка которого присутствует в любой инсталляции РНР. Для других необходима отдельная установка соответствующего программного обеспечения. Обычно пакеты, требующие отдельной установки, указываются в сопроводительном описании.

Иногда пакеты помечены как EXPERIMENTAL или как добавленные в недавние выпущенные версии. Обратите на них внимание и тщательно взвесьте риск установки их на работающий сервер. В некоторых случаях пометка EXPERIMENTAL означает, что риск для сервера невелик, но создаваемый для этих пакетов код может оказаться устаревшим для их следующих версий. Как и в любом бизнес-решении, следует взвесить преимущества и риск. Возможно, экспериментальные пакеты следует устанавливать только на серверах разработчиков, чтобы последние могли заранее ознакомиться с новыми технологиями.

Читая каждый обзор, сделайте заметки и оцените вероятность использования этого пакета в течение ближайшего полугода или года. Постарайтесь не увлечься сразу изучением отдельных функций этих пакетов. Многие пакеты чрезвычайно интересны, но устанавливать их только для того, чтобы потом обновлять перед началом работы, означало бы непродуктивно расходовать время. Целесообразно при каждом обновлении или установке РНР устанавливать лишь один-два пакета из числа тех, которыми вы ранее не пользовались.

В UNIX-подобных системах при установке прочих пакетов с помощью RPM следите за тем, чтобы устанавливать также пакеты для разработчиков. Чаще всего у них такое же имя, как у основного пакета, с добавлением -devel-. Обычно для правильной интеграции РНР с программным обеспечением сторонних разработчиков следует устанавливать как основное ПО, так и файлы для разработчиков.

Если надо скомпилировать или установить поддержку некоторого модуля, кроме MySQL, и нет уверенности в том, что требуется ПО сторонних разработчиков (или неизвестно, где его взять), можно также обратиться к приложению С (http://p2p.wrox.com/content/phpref/).

Итак, в завершение этого раздела посоветуем: ознакомьтесь с обзором ПО сторонних разработчиков для работы с РНР и, прежде чем продолжить, установите и протестируйте его.

Решения, принимаемые в процессе установки

Существуют различные методы установки РНР в UNIX-подобных операционных системах или в Windows: для большинства платформ есть мастеры установки, RPM и портированные версии (ports), благодаря которым не обязательно компилировать исходный код. Здесь мы рассмотрим преимущества и недостатки, а также подробные инструкции для самых распространенных вариантов выбора. Но сначала разберемся с некоторыми общими решениями, которые надо принять перед установкой РНР.

Выбор операционной системы

Обычно решение о том, какую операционную систему следует использовать, предопределено. Однако если требуется выбрать такую ОС, которая лучше всего подходит для РНР, то, скорее всего, предпочтительна UNIX-подобная операционная система. Хотя ядро РНР безупречно работает под ОС Windows, для нее нет некоторых более эзотерических и интересных программных пакетов сторонних разработчиков, либо их безопасная работа достигается только через CGI (Common Gateway Interface), а не в качестве модуля.

Установка под UNIX-подобными ОС может оказаться немного сложнее, но для большинства пользователей это обычно оправдывается набором функций и надежностью. Подробнее о разнице между установками для CGI и в виде модулей будет рассказано в следующем разделе, а пока только заметим, что единственные важные различия возникают лишь при очень высоких нагрузках. Поэтому если ваш сайт не посещают ежедневно миллионы пользователей и вы не рассчитываете на это, то выбор ОС не должен связываться с РНР, который успешно работает практически в любой выбранной операционнойсистеме.

Модуль или CGI?

Затем требуется решить, как устанавливать РНР - в виде модуля или как CGI. В качестве модуля РНР становится частью веб-сервера и при запуске последнего тоже запускается и постоянно готов к работе. При работе в качестве CGI выполнение РНР как отдельной программы происходит при каждом запросе веб-страницы. Это означает, что пользователь запрашивает URL, веб-сервер запускает РНР, чтобы получить содержание страницы, после чего РНР завершает работу.

Легко представить себе, что выполнение в качестве модуля, как правило, должно быть гораздо более эффективно, чем в качестве CGI, поскольку не надо запускать и завершать программу РНР для каждого запроса. Кроме того, тесная интеграция веб-сервера с модулями добавляет возможности, отсутствующие при запуске РНР в качестве CGI. Однако есть особые ситуации, когда выполнение в качестве CGI обеспечивает гибкость, недостижимую для модуля. Например, выполнение РНР в качестве CGI может происходить от имени пользователя с правами, расширенными или, наоборот, ограниченными по сравнению с правами при выполнении в качестве модуля веб-сервера.

Заметим, что выполнение РНР как модуля не препятствует доступу к нему как к CGI, что удобно также для работы, не связанной с Интернетом, например с планированием событий. Скажем, веб-сайт может использовать РНР в качестве модуля и в то же время применять CGI как отдельный интерпретатор для обычной работы с таблицами базы данных или для отправки электронной почты по расписанию.

В некоторых случаях решать не приходится, поскольку не с каждым вебсервером РНР может работать в виде модуля. РНР может выполняться как CGI на любом веб-сервере, поддерживающем CGI (а это практически все вебсерверы). Дополнительную поддержку выполнения РНР в качестве модуля ■осуществляют только перечисленные ниже веб-серверы.

Веб-серверы, поддерживающие модули под UNIX

•    Apache

•    thttpd

•     fhttpd

•     Zeus

•     Roxen

•   Pi3Web

Веб-серверы, поддерживающие модули под Windows

■•     Microsoft IIS 4.0, 5.0*

•    AOLServer

•    WebSphere

•    Netscape web server

iPlanet (совместное предприятие Sun и NetScape) ■• ЛюбойГЗАРЬсовместимый сервер

В период написания книги ISAPI-совместимая версия РНР все еще проходила фазу бета-тестирования, и ее не следовало устанавливать на реально эксплуатируемых веб-сайтах. Для работы РНР рекомендуется устанавливать отдельный интерпретатор CGI-PHP. В действительности ядро РНР вполне стабильно под ISAPI. Однако программные пакеты сторонних разработчиков и интерфейсы РНР для них не всегда безопасны по отношению к потокам. Можно использовать РНР в виде модуля под Windows с ISAPI, но придется тщательно протестировать DLL расширений сторонних разработчиков при высоких нагрузках, чтобы убедиться в их безопасности по отношению к потокам.

Статус поддержки ISAPI как бета-тестируемой версии не обязательно должен препятствовать установке РНР в качестве CGI на платформе Windows. Если только ваш веб-сервер под Windows не испытывает крайне высокой нагрузки, установка PHP CGI будет работать нормально. Только при очень высоком трафике модуль проявляет определенные преимущества по сравнению с CGI. Остальные проблемы, связанные с выбором CGI или модуля, несущественны и могут быть легко решены. Кроме того, установка РНР как CGI на машинах разработчиков под Windows и одновременное применение РНР в виде модуля на веб-сервере под UNIX в большинстве случаев оказываются очень плодотворными.

Какой веб-сервер выбрать?

Последний важный выбор относится к веб-серверу для работы с РНР. Он тоже может быть предопределен внешними факторами, такими как решение руководства или доступность и использование уже имеющихся веб-серверов. Если нет, то для большинства пользователей лучше всего будет, вероятно, воспользоваться Apache. Это решение не уступает другим, а возможно, и превосходит их. С технической точки зрения, он хорошо работает под Windows и UNIX-подобными операционными системами, а свободно доступные вспомогательные ресурсы значительно более многочисленны, чем при другом выборе.

Эти решения, относящиеся к самому верхнему уровню и влияющие на способ установки РНР, надо принять до начала процедуры установки. Под Windows следует придерживаться CGI либо необходимо произвести интенсивное тестирование. В UNIX-подобных системах лучше устанавливать РНР в виде модуля.

Установка MySQL, Apache и РНР

Выбрав ОС, модульную или CGI-установку и веб-сервер, надо решить, как устанавливать собственно РНР. Для Windows применение мастера установки (Install Wizard) будет, вероятно, самым быстрым и простым способом. Мы приведем пошаговые инструкции и советы по преодолению возможных трудностей, но мастер установки делает эту работу достаточно легкой.

Для установки под UNIX-подобными системами обычно предпочтительнее компиляция исходного кода Apache и РНР. Установка с помощью RPM, как правило, прекрасно действует для большинства программных пакетов, но если дело касается РНР, могут возникнуть некоторые проблемы. Пакеты RPM создаются с одним конкретным набором параметров установки, связанных с разными версиями другого установленного ПО сторонних разработчиков. Например, если у вас установлена другая версия MySQL, то RPM вряд ли сможет сработать. Поскольку различных ключей установки насчитывается 107, шансы на то, что выбранный пакет RPM окажется тем, что вам нужно, близки к нулю.

Возможно, вы возьмете RPM и справитесь с отсутствием или наличием лишних функций и даже разберетесь с номерами версий, чтобы все соответствовало. Можно даже отредактировать сам исходный код RPM, но все это окажется не легче, чем откомпилировать исходный код РНР и получить в точности то, что вам требуется. В конечном итоге компиляция исходного кода обычно оказывается самым быстрым и простым способом получить работающую систему.

Установка под Windows

Прежде чем начать реально устанавливать PHP, Apache и MySQL, потребуется установить некоторые обновления Windows:

Пользователям Windows 9х надо загрузить обновление MSI:

ftp://ftp.microsoft.com/developr/platformsdk/oct2000/msi/win95/instm-si.exe

Пользователям Windows 95 требуется загрузить обновление Windows Sockets:

http://www.microsoft.com/windows/dowriloads/bin/W95ws2setup.exe

Пользователям NT тоже надо загрузить обновление MSI:

ftp://ftp.microsoft.com/developr/platformsdk/oct2000/msi/winnt/x86/in-stmsuexe

В процессе установки мы сделаем следующее:

Сначала установим, настроим и протестируем MySQL, стороннее расширение

Затем установим, настроим и протестируем Apache, убедившись, что у нас есть работающий веб-сервер

• Наконец, установим, настроим и протестируем РНР и интегрируем его с Apache

Установка MySQL

Загрузите подходящий дистрибутив MySQL для Windows с http://mysql.com/downloads/.

Его следует разархивировать с помощью WinZip, который можно взять на http://www.winzip.com/.

После разархивирования файла в подходящее место выполните двойной щелчок по программе setup на рабочем столе или в проводнике Windows.

После стандартной вводной части и экрана ReadMe выберите каталог, в который будет устанавливаться MySQL. Если нет каких-либо веских причин для иного, выберите установку в каталог, предложенный по умолчанию. Наследующем экране выберите тип установки Typical, если только вы не испытываете крайнего недостатка свободного места на диске.

Пользователям Windows 9х/МЕ надо будет запускать программу mysqld.exe как приложение, тогда как пользователи Windows NT/2000 должны установить ее как службу.

Для быстрой проверки MySQL откройте сеанс MS DOS и посмотрите, выполняются ли следующие команды:

imysqlshow

mysqladminCREATEtest mysql test

Первая команда, mysqlshow, должна просто вывести список имеющихся баз данных. Вторая, mysqladmin CREATE test, должна создать базу данных с именем test. Последняя команда, mysql, переведет вас в клиентскую программу MySQL с командной строкой, которая позволит подавать команды SQL-серверу базы данных.

Должны быть выведены сообщения о статусе, сообщающие версию MySQL, и такое приглашение:

mysql>

Указав test в третьей команде, вы должны попасть в базу данных test. Попробуйте выполнить такие команды SQL:

CREATE TABLE foo (foo_id INT(11) AUTO_INCREMENT, comment TEXT);

DESCRIBE foo;

INSERT INTO foo (comment) VALUES ('HelloWorld'):

SELECT * FROM foo; DELETE FROM foo; DROP TABLE foo;

Если будет выведено приглашение:

mysql>

то это означает, что команда SQL не завершена. Это хорошо, потому что команды SQL могут занимать несколько строк. Можно даже попытаться ввести некоторые из приведенных команд в нескольких строках, чтобы проверить это.

Если приглашение имеет вид: ■>

то это означает, что есть открывающий апостроф ' без закрывающего. Аналогично:

">

о наличии открывающей кавычки без закрывающей. Баланс апострофов, как и кавычек, всегда должен соблюдаться.

Для того чтобы выйти из клиента MySQL, можно воспользоваться командой q.

Убедившись в работоспособности MySQL, выполните прилагаемые к MySQL инструкции, установив пароль для пользователя MySQL root и добавления других пользователей. Если этого не сделать, сервер MySQL, а в конечном счете и вся машина, останутся открытыми для атак злоумышленников. Подробнее об этом в главе 23.

Какие могут возникнуть сложности?

Помимо обычных проблем, связанных с искажением файлов при загрузке из сети, нехваткой места на жестком диске и аналогичных, возникающих с любыми программами, при установке MySQL с помощью мастера не должно возникнуть особых трудностей. Если не работает команда mysqlshow (а также прочие), возможно, надо выполнить их, перейдя в каталог MySQLbin, либо изменить переменную %РАТН в autoexec.bat, чтобы включить в нее путь к MySQL, и перезагрузиться.

Если действительно последовать инструкциям MySQL и задать пароль для root, прежде чем выполнять приведенные выше команды MySQL, потребуется указывать в командах имя пользователя и пароль, например:

mysql -u root -р test

Флаг -и позволяет задать имя пользователя MySQL, а -р приводит к выдаче MySQL приглашения для ввода пароля. Эти флаги задаются после команды и перед какими-либо другими аргументами, например именем базы данных.

Если не удается работать с MySQL как с сервисом, попробуйте запустить его как приложение из приглашения MS DOS и посмотреть, не будут ли выведены сообщения об ошибках, которые могут помочь. Журнал регистрации ошибок MySQL находится в каталоге MySQLdata. При возникновении проблем поищите там файл с расширением . егг.

Установка Apache

■Загрузите мастер установки Apache с

http://www.apache.org/dist/httpd/

Дважды щелкните по программе установки и нажмите кнопку Next в окне мастера установки, после чего должен появиться такой экран (см. рис. 2.1).

Если настраивается реальный веб-сервер, следует указать в Network Domain и Server Name действительные имена домена и сервера. Если на этом веб-сервере будут решаться задачи разработки, надо ввести в качестве Network Domain и Server Name localhost или 127.0,0.1. В любом случае в Administrator's Email Address следует указать свой реальный адрес электронной почты или тот, с которого происходит переадресация.

Для практического использования веб-сервера недостаточно настроить Apache так, чтобы он правильно выдавал страницы для указанного доменного имени. Необходимо, чтобынакаком-тосервереЬЫ!>былизаписи, связывающие ваше доменное имя с адресом IP.

Network Oomah (eg. somenet. com)

Insta! Apache HTTP Server programs and shortcuts to:

• Run as a Hi victforfiff Users - Recommended С Run when started питийу, only for me (MatttwjW" MooAl)

 2.1. Окно мастера установки

В нижней части экрана можно указать, как следует установить Apache: в виде службы или в виде приложения. Windows 9х не поддерживает службы, поэтому для Windows 9х/МЕ выбирается приложение. Пользователям Windows NT/2000 следует выбрать службу, если нет какой-то особой причины этого не делать. Служба всегда невидимо работает, независимо от того, кто зарегистрирован в системе, и даже если не зарегистрирован никто, а приложение может быть запущено только пользователем, зарегистрированным в системе. При завершении пользователем работы завершаются все запущенные им программы.

После установки под Windows 9х/МЕ можно поместить ярлык приложения Apache в каталог запуска для всех пользователей, благодаря чему каждый зарегистрировавшийся пользователь будет располагать работающим Apache. Такой ярлык автоматически запускает Apache для пользователей Windows 9х/МЕ, что близко к установке его как службы.

Следующий экран предлагает сделать полную или выборочную установку. Большинству пользователей подойдет полная установка, но если жесткий диск полон, и вы обычно подключены к Интернету, то можно остановиться на выборочной установке и сбросить флажки для Documentation и Source Code. Электронную документацию и исходный код можно взять на http://арасhe.org/. При выборочной установке следует оставить предлагаемый по умолчанию для размещения программы каталог C:Program FilesApache Group, если нет достаточных оснований изменить его. Запомните, куда вы установили Apache, потому что обращаться к этому каталогу вам, несомненно, придется.

После завершения установки, если это была не служба (по причине работы под Windows 9х/МЕ или какой-то иной), надо запустить веб-сервер Apache. Соответствующий пункт должен появиться в меню Start. Этот ярлык можно

перетащить в общий для всех пользователей каталог начального запуска либо на панель инструментов рабочего стола.

После запуска Apache в вашем броузере по адресу http:Jlocalhost/ должна •быть видна такая страница, которую показывает только что установленный веб-сервер Apache (рис. 2.2):

Ifyou can see this, it means that the installation ofthe Apache web server software on this system was successful. You may now add content to this directory and replace this page.

1                   Seeing this instead ofthe website you expected?

This page is here because the site administrator has changed the configuration ofthis web server. Please contact the ■ person responsible for maintaining this serverwith questions. The Apache Software Foundation, which wrote

the web server software this site administrator is using, has nothing to do with maintaining this site and cannot help resolve configuration issues.

The Apache documentation has been included with this distribution. I You are free to use the image below on an Apache-powered web server. Thanks for using Apache!

Рис. 2.2. Страница, отображаемая после установки веб-сервера Apache

Это сообщение отправляется пользователям, посещающим ваш веб-сайт, а за сопровождение этого сервера отвечаете вы. Можно, конечно, послать самому себе e-mail и сообщить, что сайт не закончен, но не лучше ли действительно построить его?

Можно добавить пару файлов HTML в корневой каталог документов. По умолчанию им обычно служит C:Program FilesApache GroupApachehtdocs. Там должен сейчас находиться документ index, html, содержащий HTML показанной выше страницы.

Освоившись с тем, как добавлять в веб-сервер новые файлы, можно установить в качестве корневого каталога документов любой каталог, внеся изменения в файл httpd. conf, который по умолчанию расположен в С: Prog ram Fi-lesApache GroupApacheconfhttpd. conf:

OocumeritRoot "C:/Apache/htdocs"

Перед редактированием создайте резервную копию, потому что простая опечатка в httpd.conf может привести к тому, что сервер станет посылать бро-

узерам сообщение 500 Internal Server Error. Кроме того, чтобы изменения возымели эффект, надо перезапустить Apache. Не забывайте делать это после каждого редактирования httpd.conf и убеждайтесь, что внесенные изменения действительно работают. '

Если вы установили Apache в другой каталог, то в нем и будут находиться файл httpd.conf и каталог htdocs. Учтите, что, изменив DocumentRoot в ht-tpd. conf, вы должны также соответствующим образом изменить ниже установку <Directory. . .>.

Главный каталог DocumentRoot в httpd. conf может быть задан только один. Существует возможность добавить виртуальные узлы установкой < Virtual -Host... > и для каждого из них указывать различные установки DocumentRoot, но эта тема несколько выходит за рамки нашей книги.

Может быть, проще распределить свои проекты, клиенты и прочее по разным подкаталогам внутри DocumentRoot. Таким образом можно поддерживать несколько веб-сайтов, не редактируя httpd. conf для каждого из них. Можно даже включить директиву Options с параметром Indexes, чтобы избавиться от вывода файла index, html, отображаемого Apache по умолчанию. Тогда при переходе на http://localhost]kojKHOбудет видеть список своих проектов, которые обслуживает Apache.

В httpd. conf есть массадругих очень полезных настроек, с которыми можно поэкспериментировать. Пробегите глазами по httpd.conf - какие-то директивы могут оказаться для вас полезными. Остальные можно поначалу проигнорировать, но несколько простых экспериментов по настройке веб-сервера могут сослужить вам добрую службу. Не забывайте сохранять действующую резервную копию файла httpd. conf и перезапускать Apache после каждого изменения, а также тщательно тестировать свои модификации.

Возможные проблемы

Как и в случае MySQL, мастер установки берет на себя большую часть работы. Как уже отмечалось, сделать опечатку в httpd. conf очень просто, поэтому всегда сохраняйте действующую резервную копию httpd.conf, к которой можно вернуться. Благодаря этому, даже если вам не удается получить сейчас от своего веб-сервера требуемое, вы хотя бы сохраняете его в работоспособном состоянии, пока изучаете его настройки.

Прочтите документацию по httpd.conf. К ее формату надо привыкнуть, поэтому сначала посмотрите, как описаны уже знакомые вам директивы, и только потом читайте про те, которые вам не вполне понятны. Дополнительную информацию можно найти в книге «ProfessionalApache» издательства Wrox (ISBN 1-861003-02-1).1

Для каждого запроса URL с вашего сайта Apache регистрирует запрос и статус его выполнения. Журналы хранятся в каталоге Apache logs, т. е. по

Уэйнрайт П. Apache для профессионалов. - Пер. с англ. - М: Лори, 2001 (ISBN 5-85582-137-4).

умолчанию в C:Program FilesApache GroupApachelogs. В этом каталоге есть файлы error_log и access_log. Взглянуть на последнюю строку error_log, когда возникли какие-то проблемы, бывает очень полезно. Прочтя сообщение в журнале, можно попробовать устранить неисправность.

Если в файлах еггог_1од или accesslog не обнаружено ничего относящегося к делу, и если Apache выполняется как служба или автоматически при начальном запуске системы, попробуйте остановить Apache и запустить его снова двойным щелчком непосредственно по файлу Apache, ехе. В идеале открывается окно консоли MS DOS, в котором при запуске Apache выводятся некоторые полезные сообщения, способные пролить свет на причину неисправности.

Если localhost возвращает сообщение Server not found или аналогичное, либо броузер не может найти http: / /localhost.com/кли подобные URL, попробуйте адрес http://127.0.0.1/.Если 127.0.0.1 работает, a localhost - нет, надо скопировать образец файла hosts, sam в системный каталог Windows и переименовать его в hosts (без расширения). В этом файле должна быть запись:

127.0.0.1 localhost

Она необходима, чтобы сообщить Windows, что доменное имя localhost в действительности представляет адрес 127.0.0.1 В любом подключенном к сети компьютере адрес IP 127.0.0.1 всегда указывает локальную машину. Но что такое localhost, компьютер узнает только из файла hosts.

Установка РНР

Мастер установки РНР поддерживает следующие веб-серверы:

•     Microsoft PWS под Windows 9х или ME

•     Microsoft PWS под Windows NT workstation

•     Microsoft IIS 3 и предыдущие

•    Microsoft IIS 4 и последующие Apache для Windows

Xitami для Windows

Сначала загрузите дистрибутив PHP для Windows с http://php.net/downlo-ads.php.

Затем остановите веб-сервер Apache и сервер базы данных MySQL, если они работают в данный момент. Начните установку, выполнив двойной щелчок по программе setup. После стандартного экрана представления и лицензионного соглашения запрашивается вид установки - Standard или Advanced. Рекомендуется выбрать Standard - по этому пути мы и пойдем. Опытные пользователи могут попробовать установку Advanced. В любой момент можно вернуться к предыдущему экрану, нажав кнопку Back, или даже нажать Cancel и начать все с самого начала.

Если выбран стандартный тип установки, то следующим появляется диалоговое окно, в котором предлагается задать каталог, в который требуется установить РНР. Лучше всего оставить предложенный по умолчанию С: php, если нет веских оснований выбрать другой каталог.

Затем запрашиваются настройки, необходимые РНР для отправки электронной почты с помощью встроенной почтовой функции. В этом диалоге надо задать действующий сервер SMTP и адрес From: по умолчанию. Если вы знаете, какой сервер SMTP обрабатывает исходящие сообщения, и знаете, что для авторизации отправки почты он использует только адрес From:, можно задать эти значения. Если имя сервера SMTP вам не известно или авторизация на этом сервере требует не только правильного адреса From:, но и указания имени пользователя/пароля, укажите localhost в качестве сервера SMTP и свой обычный адрес электронной почты в поле From:.

Поскольку в большинстве версий Windows сервер SMTP не устанавливается, имя localhost не будет реально работать, пока вы не установите на своей машине сервер SMTP. К счастью, эти настройки можно потом легко изменить, а для выполнения функций, которые могут потребоваться, есть бесплатно доступные инструменты.

Если два последних абзаца оставили вас в полном недоумении, просто укажите localhost в качестве сервера SMTP и обычный адрес электронной почты для параметра Email. Позднее всегда можно будет внести поправки.

Наконец, следует запрос о том, какой сервер следует настроить для работы с РНР. В данной книге предполагается, что выбран Apache.

Если вы выбрали веб-сервер, которого нет в списке, предлагаемом мастером установки, и возникли трудности при установке РНР, можно дать такой совет: ваш веб-сервер, вероятно, поставляется с инструкциями для установки Perl. Программу php. ехе можно устанавливать точно также, как Perl, заменяя соответствующие пути и указывая «php» вместо «perl».

Наконец, все решения приняты, и все готово к установке. Щелкните по последней кнопке Next, и программа установки начнетработу.

Мастер установки в настоящее время не настраивает автоматически файл httpd. conf для Apache, о чем может быть сообщено в диалоговом окне. Это не должно вас беспокоить, поскольку настройка Apache для работы с РНР будет рассмотрена в следующем разделе.

После завершения установки отображается окно, объявляющее об успешной инсталляции, с кнопкой ОК. Нажимайте ее и переходите к настройке Apache.

Настройка Apache для работы с РНР

Мы настроим Apache для использования РНР в качестве CGI под Windows, поскольку программное обеспечение сторонних разработчиков часто нестабильно работает с потоками Windows. Даже если вы планируете пойти по пути работы с модулем, лучше воспользоваться последующими указаниями и сначала выполнить настройку CGI, чтобы убедиться, что все работает. Гораздо проще перейти к использованию модуля, когда работает все остальное. Для модуля необходимо провести интенсивное тестирование, чтобы иметь уверенность в устойчивости веб-сервера.

Сначала следует убедиться, что Apache не выполняется, В каталоге PHP, а по умолчанию это C:php, должен быть файл с именем php4ts. dll. Пользователи Windows 9х/МЕ должны скопировать его в С :WindowsSystem, а пользователи Windows NT/2000 - в C:WinNTSystem32.

Найдите файл httpd.conf, по умолчанию расположенный в C:Program Fi-lesApache GroupApacheconf. Создайте его резервную копию, прежде чем приступить к редактированию.

Откройте этот файл с помощью текстового редактора, С помощью меню Find найдите секцию ScriptAlias. Обычно она располагается между <IfModule mod_alias.c> и </IfModule>. Секций ScriptAlias может быть несколько, и между строчками IfModule может быть большой объем текста. Добавьте в секцию ScriptAlias следующую строку:

ScriptAlias /php/ "С:/php/"

В результате Apache получает информацию о том, где искать различные файлы РНР, и создается псевдоним, который будет использоваться далее в httpd.conf для указания этого каталога. При установке РНР в нестандартный каталог в строке должен быть указан его путь, В файле httpd. conf следует использовать не принятый в Windows обратный слэш (), а символ /,

Если секции ScriptAlias не найдены, добавьте приведенную выше строку сразу после строки <Directory.. .>, что соответствует DocumentRoot. Дополнительные разъяснения по этому поводу есть в инструкции по установке Apache,

Затем в файле httpd. conf надо найти секцию AddType. В ней уже должна быть пара строк РНР4. х. Можно раскомментировать их (удалить начальный символ #) или ввести под этими комментариями такую строку:

AddType application/x-httpd-php .php

Для Apache это информация о том, что файлы, оканчивающиеся на. php, должны обрабатываться как MIME-тип application/x-httpd-php - так же, как файлы GIF имеют MIME-тип image/gif, а файлы JPEG имеют тип image/ jpg. Если секция AddType не обнаружена, поместите эту строку в секцию directory. .. >, как описано выше.

Наконец, найдите в httpd.conf секцию Action. Обычно в ней, для примера, есть пара строк Format:.

Добавьте в секцию Action строку:

Action application/x-httpd-php "/pnp/php.exe"

В результате Apache узнает, что файл, имеющий MIME-тип applicati о n/x-ht-tpd-php и определенный нами выше с помощью AddType, должен обрабатываться файлом с именем php.exe, который находится в каталоге, определяемом псевдонимом "/php/", установленным выше директивой ScriptAlias.

И снова, если секции Action в вашем файле httpd.conf нет, просто добавьте эту строку в секцию Directory, как указывалось выше. Проверьте, нет ли во введенных вами строках опечаток. Хотя эти строки находятся в разных местах файла littpd. conf, располагаясь по своим директивам, в совокупности эти три строки сообщают Apache, как обращаться с файлами РНР.

При желании можно изменить вторую из этих строк, чтобы через РНР проходили все файлы, оканчивающиеся на . php3 (более старые сценарии, которые могут у вас оказаться), или даже, htm и . html. Если пропускать через РНР все файлы HTML, это не приведет к заметному увеличению времени реакции. Кроме того, включение более старых расширений позволит добавить •функции РНР в любых местах уже существующих файлов HTML без изменения ссылок на ваш веб-сайт. Также можно будет вместо . php указать привычные пользователям расширения .htnin .html.

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

AddType application/x-httpd-php .php .htm .html . php3

Порядок, в котором перечисляются расширения файлов, может быть любым, и добавлять их можно в любом количестве, если это имеет смысл. Например, обычно нет смысла пропускать файлы . трЗ через РНР. На самом деле это может нарушить работу URL для МРЗ, т. к. РНР добавляет некоторые заголовки по умолчанию.

Внеся все изменения и проверив их, сохраните файл httpd. conf и перезапустите Apache.

Возможные проблемы

Если после этого Apache не запустится, проверьте, нет ли ошибок в трех добавленных строках. Кроме того, проверьте следующее:

•    В строке ScriptAlias верно указан каталог, в который установлен РНР.

•     В строке, задающей путь, его элементы разделяются символом /, а не .

•    МШЕ-тип application/x-httpd-php одинаков в строках AddType и Action. Воспользуйтесь копированием и вставкой, чтобы гарантировать совпадение.

•   php. ехе действительно находится в нужном каталоге.

Oaunphp4ts. dll скопирован в системный каталог Windows.

Если после тщательной проверки перечисленного выше останов и перезапуск Apache не приводят к его работе, прочтите раздел «Возможные проблемы» в «Установке Apache». В частности, посмотрите, нет ли ошибок в журналах и окне консоли MS DOS.

Если ничего не помогает, попробуйте скопировать php4ts. dll в тот же каталог, где находится файл php.exe. По всем законам Windows должна найти эту библиотеку в системном каталоге и загрузить, но если это не удается, то РНР, возможно, сможет ее обнаружить, если она будет в том же каталоге, гденаходитсяфайлрЬр.ехе.

Тестирование установки РНР

В файле httpd.conf есть переменная с именем DocumentRoot. Там есть также установка <Directory . . . >, в которой указывается тот же путь, что и в DocumentRoot. Если вы их не меняли и производили установку со значениями по умолчанию, это, вероятно, C:ProgramFilesApache GroupApachehtdocs.

DocumentRoot задает каталог, где находится начальная страница вашего вебсервера. Там уже находится файл index, html, который обслуживает каждый запрос к вашему сайту.

Создайте в этом каталоге текстовый файл с именем phpinfo. php и поместите в него следующий текст:

<?php

phpinfoC); ?>

Сохраните файл в каталоге DocumentRoot. Откройте в броузере страницу http:// localhost/phpinfo.php.

При правильной установке РНР должно быть показано окно с подробными сведениями о свойствах установки РНР (рис. 2.3):

c,ys!5rri

Wtt((W»'MTS.nii4ltd319S

■ (Oate

JunSrrSOOl

ServorAM .• ••;■";■

CW"';'.:

Support

enabled < •

Configuration File ftih|i.lm) P*№

CAWNNTWp.irri

ZEKO.DEBUG

■; i4 at: id

Thread Safety

•rra&ltd

1 Zartd TecrWogi ев

Рис. 2.3. Свойства установки PHP

Возможные проблемы

Если выводится сообщение об ошибке 404 Document not found или аналогичной ей, то, возможно, phpinfo. php помещен в неверный каталог, неправильно указано имя файла или неверно введен URL. Ошибка 500 Internal Server Error может быть вызвана опечаткой в httpd. conf.

Если вы изменяли DocumentRoot, то проверьте, чтобы в настройке <Directory. .. > был указан тот же самый каталог. Если они не совпадают, Apache работать не будет. Проверьте журналы ошибок Apache, о чем говорилось в разделе «Возможныепроблемы» в «Установке Apache».

Если броузер ничего не показывает, выберите в его меню пункт View Source. Если при этом виден текст <?php phpinfo(); ?>, это значит, что Apache выдает эту страницу, но из-за неверной настройки не передает ее сначала РНР. Видимо, одна из трех строк ScriptAlias/AddType/Action, добавленных в httpd. conf, неверна. Возможно также, что вы забыли остановить и перезапустить Apache. Apache читает httpd. conf только однажды, при запуске. Его надо перезапускать, чтобы изменения в httpd. conf возымели эффект.

Если в броузере ничего не видно и пункт меню View Source недоступен, проверьте журналы ошибок Apache и настройки в httpd. conf. Возможно, какие-то неверные настройки приводят к аварийному завершению Apache.

Если ничто не помогает, попробуйте закомментировать три строки, введенные в httpd. conf, поместив в их начало символ я, и перезапустите Apache. Если после этого Apache заработает, а РНР - нет, станет ясно, что ошибка кроется в этих трех строках или в самой установке РНР.

Если не видно ошибок в строках, введенных в httpd. conf, проверьте работу самого РНР без броузера:

Откройте окно консоли MS DOS и перейдите в каталог С: php или другой, в который вы установили РНР. Затем введите:

php C:Program FilesApache GroupApachehtdocsphpinfo.php

Возможно, надо указать другой путь, если ваш файл phpinfo. php находится в другом каталоге.

При этом вызывается php. ехе, поскольку ему действительно передан для работы ваш файл phpinfo. php. РНР должен выполнить код этого файла и возвратить HTML. Если РНР выводит код HTML, значит, php.exe работает нормально, и ошибка связана с тем, как Apache вызывает РНР. Еще раз проверьте настройки httpd. conf.

Если php. ехе самостоятельно работает, a Apache работает без этих трех строк для вызова РНР, но вместе они не работают, ошибка находится в этих трех строках.

Действия после установки

Во время установки РНР создается файл с именем php. ini. Ваша страница phpinfo. php должна также показать, где РНР ищет ваш файл php. ini. Создайте резервную копию этого файла и убедитесь, что phpinfo. php ищет php. ini в правильном месте.

Если файларпрлшпросто нигде нет, найдите файлрпрлп1^1з1ископируй-те его в файл php. ini в соответствующем каталоге, указанном в phpinfo.

Установка noflWindows                                                                                                        55

Откройте файл php. ini в текстовом

 
MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal