Средства безопасности системного уровня
В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd).
Средства безопасности уровня приложения
В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим с многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды View Source.
|
|
Гибкость
Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).
Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных PC. Программисты, занимающиеся вспомогательными утилитами, могут запускать РНР в режиме командной строки.
Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT/Me/2000/XP.
|
|
Наконец, средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.
Стратегия Open Source наделала немало шуму в программной отрасли. Распространение исходных текстов программ в массах оказало несомненно благотворное влияние на многие проекты, в первую очередь — Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания РНР, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР.
Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы.
В следующем разделе «Рекомендации пользователей» приведены свидетельства трех видных профессионалов в области web-разработок. Из них становится ясно, почему они считают РНР такой замечательной технологией.
|
|
Рекомендации пользователей
«Мы в течение долгого времени поддерживали личные контакты с некоторыми разработчиками РНР и вели с ними обширную переписку. Когда у разработчиков РНР возникали какие-то проблемы, относящиеся к MySQL, мы всегда были готовы помочь им в поиске решения. Кроме того, мы включили в MySQL несколько новых возможностей лишь для того, чтобы улучшить его интеграцию с РНР. Результатом наших усилий стало то, что MySQL превосходно работает с РНР, — и мы позаботимся о том, чтобы это положение сохранилось и в будущем!»
Майкл «Монти» Видениус (Michael «Monty» Widenius),
разработчик MySQL
«Выбор РНР для реализации mp3.lycos.com был обусловлен несколькими причинами. Главной причиной стали сжатые сроки работы над проектом — ведь РНР ускоряет процесс разработки. Другой причиной была высокая эффективность — мы перешли от 0 к 1,4 миллиона посещений в сутки, и РНР с этим прекрасно справился. Третья причина заключалась в том, что я твердо знал: если на стадии тестирования с повышенной нагрузкой в РНР обнаружатся какие-либо ошибки, я смогу их самостоятельно исправить, поскольку РНР распространяется вместе с исходными текстами».
|
|
Стиг Баккен (Stig Bakken),
FAST Search & Transfer ASA
«Я использовал РНР с первых дней, еще с версии PHP/FI 1.x. Мне понравилось, что я могу обрабатывать формы и настраивать страницы «на ходу» при помощи такого простого языка. Вместе с потребностями моей компании развивался и РНР.
В наши дни РНР обладает исключительно богатыми возможностями. Мы используем его практически во всех создаваемых web-сайтах, включая 32bit.com и DevShed.com. Мы даже воспользовались им в Info West для реализации службы поддержки, управления учетными записями и отслеживания портов.
Эволюция РНР и признание его мировым сообществом — классический пример успешного ведения проекта с открытыми исходными текстами. Широта взглядов создателей, поддержка сообщества и хорошее сопровождение кодовой базы привели РНР к успеху, о котором многие коммерческие проекты могут лишь мечтать. Я с оптимизмом смотрю в будущее РНР и рекомендую каждому web-разработчику попробовать его в деле. Возможно, вы, как и я, уже не расстанетесь с ним».
Рэнди Косби (Randy Cosby),
президент nGenuity, Inc. DevShed
Вводный пример
Пример, приведенный в листинге 1.1, наглядно показывает, как легко РНР интегрируется с HTML-кодом.
Листинг 1.1. Создание динамической страницы РНР
<?
// Присвоить значения нескольким переменным
$site_title = "РНР Recipes";
$bg_color = "white";
$user_name = "Chef Luigi";
?>
<html>
<head>
<title><? print $site_title; ?></title>
</head>
<body bgcolor="<? print $bg color; ?>" >
<?
// Вывести приветствие с датой и именем пользователя. print "
РНР Recipes | ".dateC'F d. Y")." <br> Greetings, $user_name! <br>
";
?>
</body>
</html>
Загрузка РНР/Apache
Прежде чем следовать дальше, необходимо потратить немного времени на загрузку, установку и настройку РНР и web-сервера на вашем компьютере. Хотя РНР совместим с разными web-серверами, предполагается, что вы используете Apache — во-первых, это самый популярный web-сервер на сегодняшний день, во-вторых, он чаще всего работает с РНР. Впрочем, в целом процессы установки для разных web-серверов имеют много общего.
Поставку РНР можно загрузить с официального сайта РНР или с любого из «зеркальных» сайтов по всему миру. При загрузке РНР можно выбрать один из двух форматов:
- исполняемый формат Win32;
- исходный текст.
Исполняемый формат Win32 предназначен для пользователей Windows 95/98/ NT/2000/ХР. Хотя исходный текст можно откомпилировать и на платформе Windows, для большинства пользователей это необязательно. Впрочем, если вы настаиваете на компиляции (кстати, в книге этот процесс не рассматривается), вам понадобится компилятор Visual C++ одной из последних версий. Установка исполняемых файлов Win32 описана далее в этой главе.
Пользователям других систем придется самостоятельно откомпилировать исходный текст программы. Хотя многих новичков эта перспектива приводит в ужас, на самом деле это довольно просто. Возможно, вас интересует, распространяется ли РНР в формате RPM (RedHat Package Manager)? Да, распространяется, хотя эти пакеты не представлены на официальном сайте РНР. За инструкциями и дополнительной информацией о местонахождении различных поставок обращайтесь к материалам электронных конференций. Обобщенный процесс компиляции рассматривается далее.
На момент издания книги последней устойчиво работающей версией был РНР 5.0.4. Конечно, пакет РНР постоянно развивается, и номер версии непременно изменится. Рекомендуется загрузить самую свежую и надежную версию продукта.
Если вы еще не установили сервер Apache, вам также следует выбрать его последнюю версию. Загрузите вариант, соответствующий вашим потребностям. Подробное описание настройки РНР для всех существующих платформ и web-серверов выходит за рамки этой книги, поэтому уделяется основное внимание серверу Apache. Независимо от того, какой web-сервер вы собираетесь использовать, рекомендую прочитать дальнейшие разделы, посвященные настройке, — вы получите некоторое представление о тех общих проблемах, с которыми можете столкнуться.
Установка новых программ нередко превращается в непростое испытание для новичков. Однако разработчики РНР предприняли дополнительные усилия для того, чтобы установка РНР проходила относительно просто. В следующих разделах перечислены действия, которые необходимо выполнить для установки и настройки РНР в Win32 и на других платформах.
В дальнейших главах вы познакомитесь с сервером баз данных MySQL, и на примере этого популярного продукта будет продемонстрирован процесс интеграции web-приложений с базами данных. Чтобы поэкспериментировать с этими примерами, вам придется установить пакет MySQL. MySQL, как и РНР, существует в версиях для Windows и для других платформ. Хотя в документации MySQL приведены подробные инструкции по установке, возможно, вам стоит предварительно просмотреть начало главы 11, где приводится общая информация о сервере баз данных MySQL.
Установка и настройка
Предполагается, что к настоящему моменту вы успешно загрузили РНР и Apache. Следующий шаг — выбор способа установки. Для компьютеров, не использующих систему Windows, существует три варианта: двоичный файл CGI, статический модуль Apache и динамический модуль Apache. Скорее всего, вы не захотите строить РНР в виде двоичного файла CGI. Более того, построение РНР в виде серверного модуля имеет некоторые преимущества, поэтому уделяется внимание построению РНР в виде статического и динамического модуля. Главное различие между этими двумя вариантами заключается в том, что при любых изменениях в статическом модуле РНР придется заново компилировать и Apache и РНР, а изменения в динамическом модуле РНР потребуют компиляции только РНР без сервера.
На компьютерах с системой Windows РНР может устанавливаться в виде либо двоичного файла CGI, либо статического модуля Apache. На этот раз описывается построение двоичного файла CGI, потому что пользователи Windows обычно используют вместо Apache другие web-серверы (например, Microsoft Internet Information Server или Microsoft Personal Web Server). CGI-версия легко интегрируется с этими серверами. Хотя описанный процесс установки относится к РНР/Apache, установка для перечисленных выше web-серверов выполняется практически так же.
Как говорилось ранее, РНР5 поддерживает разнообразные web-серверы, в том числе AOL Server, Netscape Enterprise Server, Microsoft IIS, Zeus и многие другие. Впрочем, я ограничусь описанием установки для сервера Apache.
Дата добавления: 2018-06-01; просмотров: 232; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!