PHP - один из наиболее популярных языков программирования, применяющихся для создания Web-сайтов.
Скачайте с официального сайта PHP http://www.php.net дистрибутив (у меня - php 5.1.6 ). Распакуйте архив в каталог C:\Program Files\php . Найдите конфигурационный файл php.ini , содержащий настройки интерпретатора PHP , и внесите в него следующие изменения:
Директива register_globals в php 5.1.6 по умолчанию включена (рекомендуется ):
register_globals = on
Установите максимальный объем данных, отправляемых методом POST , равным 16М :
post_max_size = 16M
Найдите строку:
;include_path = ".;c:\php\includes"
раскомментируйте ее (для чего удалите символ точки с запятой ; в начале строки ) и исправьте на:
include_path = ".;C:\Program Files\PHP\PEAR"
Необходимо установить параметр extension_dir равным той директории, в которой находится дистрибутив PHP :
Extension_dir = "C:/Program Files/php/ext"
Установите максимальный размер закачиваемых файлов равным 16М :
upload_max_filesize = 16M
Параметру doc_root надо передать значение директивы DocumentRoot Web-сервера:
doc_root = "d:/main/html"
Если необходимо использование расширений PHP , уберите комментарий (символ точки с запятой ; ) у строк:
; extension = php*.dll
.
.
.
; extension = php*.dll
Следующих расширений достаточно для полноценной работы PHP :
Php_mbstring.dll – библиотека предназначена для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский ), Юникод (UTF-8 ) и др.
php_bz2.dll – расширение служит для создания и распаковывания архивов в формате bzip2 .
Php_curl.dll – позволяет соединяться и работать с серверами с помощью различных интернет-протоколов.
Php_gd2.dll – расширение позволяет работать с графикой.
Php_mysql.dll – библиотека необходима для работы с сервером MySQL .
Php_mysqli.dll – библиотека является расширением php_mysql.dll . Она содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.
Параметр
error_reporting = E_ALL & ~E_NOTICE
позволяет выводить все ошибки, за исключением замечаний. Это значение установлено по умолчанию, его и оставляем.
Но PHP 5 (в отличие от предыдущих версий ) не выводит ряд ошибок в окно браузера (в связи с требованиями безопасности ).
Просмотреть всю информацию об ошибках можно в log-файлах. Для ее размещения в них необходимо, чтобы параметр log_errors имел значение On :
log_errors = On
Для отладки Web-приложений с выводом сообщений об ошибках в окно браузера, следует установить параметр display_errors:
display_errors = On
Присвоение параметрам display_errors и log_errors значения off позволяет запретить вывод сообщений об ошибках в окно браузера и log-файл соответственно.
Директива
e r r o r _l o g = syslog
позволяет регистрировать ошибки в системном журнале Windows.
Найдите строку:
session.save_path = "F:/main/tmp"
и укажите путь к папке для хранения временных файлов. У меня это папка Temp на диске C :
session.save_path = "C:/Temp"
Для хранения временных файлов сессий можно создать отдельную папку Temp в каталоге php . Тогда:
session.save_path = "C:/Program Files/php/Temp"
В конфигурационном файле Web-сервера Apache httpd.conf перед блоком описания виртуальных хостов необходимо добавить следующие строки:
AddType application/x-httpd-php phtml php
Options ExecCGI
Action application/x-httpd-php "/php_dir/php-cgi.exe"
Теперь необходимо перезапустить сервер Apache и проверить работу PHP .
Для этого в директории d:/main/html следует создать файл test.php . Для создания PHP-файла можно воспользоваться текстовым редактором Блокнот , в котором следует написать любой небольшой скрипт, например:
e c h o (" H e l l o , РНР!");
?>
Если при наборе в адресной строке браузера запроса http://localhost/test.php появится строка
Hello, PHP!
То установка прошла успешно!
На PHP написано много хороших приложений. Даже нет,
очень много и некоторые из них очень хорошие, так почему бы не использовать эти
приложения на Windows? Особенно, если внутренний портал работает на Windows, а
на Unix машине крутиться внешний сайт компании - тогда
можно сэкономить на инфраструктуре и разместить на Windows
сервере еще и внешний сайт. Либо, если есть желание стандартизировать
инфраструктуру и размещать сайты на Windows
платформе, поскольку разработчики и пользователи работают на
Windows платформе.
На сайте www.iis.net
можно найти
список
популярных PHP приложений
с инструкциями по установке на IIS. Для их запуска
на IIS не требуется изменения
PHP кода.
После этого необходимо установить фичу в IIS: Internet Information Services
-> World Wide Web Services -> Application Development Features -> CGI. При этом
будет установлена поддержка и CGI и FastCGI.
На Windows Server 2008 процесс аналогичен: Server Manager -> Roles -> Add
Role Services -> Web Server -> Application Development -> CGI.
Собственно все, что требуется для включения модуля FastCGI.
Шаг 2. Конфигурация IIS7
1. Открыть IIS Manager, выбрать узел (сервер) для которого нужно настроить
поддержку PHP. И далее выбрать Handler Mappings.
2. Выбираем на странице Handler Mappings ссылку Add Module Mapping и
заполняем окно следующими значениями:
Request path: *.php (обработка всех файлов с расширением.php)
Module: FastCgiModule (модуль FastCGI)
Executable: C:\Web\PHP\php-cgi.exe (путь к PHP)
Name: PHP (имя для удобства)
После добавления этой настройки появится окно с вопросом о регистрации
FastCGI приложения для этого обработчика. Подтверждаем.
Описанные выше действия привели к созданию в директории PhpSites следующего
web.config файла:
xml version =«1.0» encoding =«UTF-8» ?>
< configuration >
< system.webServer >
< handlers >
< add name =«PHP» path ="*.php" verb ="*"
modules =«FastCgiModule» scriptProcessor ="C:\Web\PHP\php-cgi.exe "
resourceType =«Unspecified» />
handlers >
system.webServer >
configuration >
Теперь можно переходить к проверке работоспособности PHP.
Шаг 3. Проверяем корректность настройки
В директории узла для которого мы сконфигурировали PHP создаем файл
index.php:
phpinfo();
?>
И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
наша карма не испорчена, запрос будет корректно обработан:
Поскольку при использовании PHP на
IIS7 с использованием FastCGI
модуля, сам модуль FastCGI берет на себя
управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
процессов (recycling) в PHP
не будет мешать FastCGI. Это легко сделать, если
настроить FastCGI так, чтобы он всегда перезапускал
процессы раньше, чем это сделает PHP.
В настройках FastCGI существует настройка
instanceMaxRequests, определяющая после обработки какого количества запросов,
процесс будет перезапущен. В PHP аналогичный параметр
задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
возможность FastCGI рулить процессом, достаточно
установить instanceMaxRequests <= PHP_FCGI_MAX_REQUEST.
Это удобно сделать, отредактировав файл
applicationHost.config (прячется в директории C:\windows\system32\inetsrv\config\).
В конфигурации должна быть следующая информация:
< fastCgi >
< application fullPath ="C:\inetpub\php\php-cgi.exe "
maxInstances =«4» instanceMaxRequests =«10000» >
< environmentVariables >
< environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >
environmentVariables >
application >
fastCgi >
< fastCgi >А уже для каждого из сайтов конфигурируется модуль, использующий ту или иную
< application fullPath =«C:\inetpub\php\php-cgi.exe» >
...
application >
< application fullPath =«C:\inetpub\php4\php4.exe» >
...
application >
< application fullPath =«C:\inetpub\php41\php41.exe» >
...
application >
fastCgi >
* This source code was highlighted with .
< handlers >
< add name =«PHP4» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php41.exe "
resourceType =«Unspecified» />
handlers >
* This source code was highlighted with .
< fastCgi >
< application fullPath ="C:\inetpub\php\php-cgi.exe "
arguments ="-d my.website=wordpress" >
< environmentVariables >
< environmentVariable name =«PHPRC» value =«C:\inetpub\wordpress» />
environmentVariables >
application >
< application fullPath ="C:\inetpub\php\php-cgi.exe "
arguments ="-d my.website=phpsite" >
< environmentVariables >
< environmentVariable name =«PHPRC» value =«C:\inetpub\phpsite» />
environmentVariables >
application >
fastCgi >
* This source code was highlighted with .
< system.webServer >
< handlers accessPolicy =«Read, Script» >
< add name =«PHP» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php-cgi.exe|-d my.website=wordpress "
resourceType =«Unspecified» requireAccess =«Script» />
handlers >
system.webServer >
* This source code was highlighted with .
Max_execution_time=30 ; ограничение
времени выполнения скриптов
max_input_time=60
memory_limit=16M ;
ограничение на размер используемой памяти
upload_max_filesize=2M
post_max_size=8M
max_input_nesting_levels=64
display_errors=Off
; отключение сообщений об ошибках
log_errors=On
error_log=«C:\error.log»
expose_php=Off
; скрыть присутствие PHP
Теги: Добавить метки
Здравствуйте, мои дорогие читатели! Очень надеюсь, что сегодняшняя статья будет полезной не только неопытным пользователям сети, но и бывалым юзерам, которые запутались в особенностях различных хостинговых систем.
Хочу рассказать, как настроить php на . В целом процесс настройки представляет собой корректировку данных в системном файле php.ini.
Рhp.ini – файловый документ, в котором находятся директивы (конфигурация и настройки), которые определяют поведение PHP (в частности конкретного сайта).
Интерпретатор – программа, которая построчно читает и выполняет программный код. Сначала ищет настройки в рhp.ini. А потом переходит в саму директорию, указанную в текстовой переменой PHP RС.
После ручного редактирования любого php-файла важно не забыть оставить его название неизменным, иначе интерпретатор не сможет его найти!
Данная информация сугубо обобщённая, на практике должно быть понятнее.
Вариант №1 для тех, кто использует в качестве административной панели сРаnel.
Ищите в меню раздел «Конфигурация», в котором опубликованы параметры РНР для хостинга.
Здесь даже можно изменить версию РНР. Есть провайдеры, которые дают практически неограниченные возможности пользователям для самостоятельной наладки, но есть и такие, которые очень строго контролируют любые изменения, и без их ведома нельзя действовать.
Если ваш хостинг позволяет осуществлять наладку php, тогда вы – счастливчик. Если нет, тогда переходим к варианту №2 – обратиться за помощью в службу технической поддержки.
Находим оригинальный файл настроек.htaccess и прописываем в него следующие данные:
chmod 755 php5.fcgi
Ну вот и все, пользуемся.
К данной пошаговой инструкции имеются некоторые уточнения. При создании файла php5.fcgi следует применять текущие настройки unix (разрыв строки), то есть прописывать в файле информацию с тегом /n. И в случае возникновения ошибки 500 следует проверить файл php-error.log, в котором скорее всего и найдете проблему.
disable_functions – позволяет блокировать вызов нескольких функций в рамках безопасного режима.
Примечание ! Список таких функций пользователь указывает самостоятельно через запятую;
memory_limit – позволяет осуществить настройку параметров максимального объема памяти, нужного для выполнения скриптов.
Ну и напоследок добавлю: для того чтобы посмотреть настройки и узнать версию PHP, нужно создать php-файл (название не имеет значения), в котором следует прописать следующий код:
Вот и все, дерзайте! Не забудьте рассказать друзьям в соц. сетях о новом, прочтенном вами материале, и подписаться на рассылку уведомлений о редакции следующей статьи. До встречи!
C уважением! Абдуллин Руслан
Дальше мы установим PHP и настроим веб-сервер на его использование. Распаковываем zip-архив (php-5.2.9-Win32.zip ) в удобную для вас папку (лучше всего в C:\php 5; я буду следовать в статье тому, что распаковка была именно сюда, поэтому, если у вас PHP в другом месте, то, соответственно, далее используйте ваш каталог). Заходите в эту папку и переименуйте файл php.ini-dist в php.ini . Открывайте это файл блокнотом или любым текстовым редактором. Я считаю, что стандартные настройки достаточно хороши, надо только исправить несколько директив. Сначала надо выбрать место на диске где будут храниться документы сервера, то есть HTML-, PHP-файлы и т.д. В предыдущей статье, об установке Apache , мы выбрали каталог C:\www\htdocs . Тогда нам необходимо в файле php.ini исправить директиву
Doc_root =
Doc_root = "C:\www\htdocs"
Также обязательно исправить extension_dir с
Extension_dir = "./"
;extension=php_mysql.dll ;extension=php_mysqli.dll
Если вы планируете использовать ещё какие-то модули, то раскомментируйте и их тоже. Вот список основных модулей:
;extension=php_bz2.dll — для работы с bz2-архивами (распаковка/упаковка средствами скриптов) ;extension=php_curl.dll — это curl-расширение; с помощью него можно, например, из скрипта послать POST-запрос к другому скрипту;extension=php_exif.dll — для работы с дополнительной информацией в файлах фотографий;extension=php_gd2.dll — графическая библиотека для генерации рисунков скриптами;extension=php_mbstring.dll — это библиотека для работы с многобайтовыми (в кодировке Unicode) строками, настоятельно советую подключить, иначе некоторые CMS могут не работать;extension=php_msql.dll — для работы с БД mSQL ;extension=php_mssql.dll — для работы с Microsoft SQL Server ;extension=php_mysql.dll — стандартная библиотека MySQL; для версий MySQL 5 и старше лучше использовать модуль mysqli ;extension=php_mysqli.dll — улучшенная (MySQL Improved) библиотека для работы с MySQL. Для работы с MySQL5 лучше использовать именно её ;extension=php_pdo.dll — этот модуль, а также все модули PDO обеспечивают унифицированный интерфейс ко многим базам данных. Но в частности это полезно тем, что это (насколько я знаю, по крайней мере из стандартных) единственный способ работать с базами SQLite 3 ;extension=php_pgsql.dll — для работы с СУБД PostgreSQL ;extension=php_sockets.dll — модуль для работы с сокетами из скриптов;extension=php_sqlite.dll — для работы с бессерверной БД SQLite. В этом модуле поддерживается только 2 версия файлов баз данных;extension=php_zip.dll — для работы с zip-архивами (то же самое что и для bz2)
Можно сразу раскомментировать еще несколько часто используемых модулей.
Extension=php_gd2.dll extension=php_mbstring.dll
На этом редактирование php.ini завершаем (не забудьте сохранить изменения!). Теперь из каталога C:\php5 в каталог C:\WINNT\System32 скопируйте файл libmysql.dll. Он нужен для работы PHP с MySQL . Или добавте через точку с запятой путь C:\php5 в переменную path - Свойства системы -> Дополнительно -> Переменные среды -> Path . Чтобы изменения, в этом случае, вступили в силу - нужно перегрузить компьютер.
Переходите в каталог C:\Program files\Apache2.2\conf и открывайте в текстовом редакторе файл httpd.conf.
Раскомментируем добавленные в предыдущей статье строки:
LoadModule php5_module "c:/php/php5apache2_2.dll" PHPIniDir "C:/WINNT"
Всё, веб-сервер и PHP сконфигурированы для работы вместе. Обязательно перезагрузите веб-сервер , чтобы PHP заработал! Для этого используйте Монитор Apache (значок пера с зелёной стрелкой в системном трее)
Скорее всего при работе со скриптами вам потребуется изменить следующие настройки в php.ini:
1. При установке скрипта иногда появляется такая ошибка:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\блаблабла\файл.php on line 360
Исправить это можно изменив max_execution_time в php.ini
Max_execution_time = 60 ; Maximum execution time of each script, in seconds
на большее значение
Max_execution_time = 180
2. Если через скрипт будут загружаться большие файлы, к примеру, аудио и видео файлы, то нужно увеличить значение параметра upload_max_filesize до планируемого вами размера файлов
; Maximum allowed size for uploaded files. upload_max_filesize = 100M
От автора: один знакомый (еще тот «кривых дел мастер») решил самостоятельно собрать шкаф. В результате после нескольких часов мучений у него получился только стол. Вот такая метаморфоза случилась. Чтобы не оказаться в подобной ситуации, рассмотрим, как установить PHP правильно.
– не обычный язык, а серверный. Из-за этого простой установки интерпретатора языка будет мало. Чтобы вы смогли выполнять код на своем персональном компьютере, понадобится локальный сервер.
Подобного добра во всемирной паутине хватает. Перечислением достоинств и недостатков каждого из серверов мы заниматься не будем. Вместо этого опишем процесс установки проверенного временем варианта — Apache , который уже давно ассоциируется у всех с разработкой на PHP.
История данного продукта подробно описана в Википедии. Так как надежность Apache подтверждена многими годами «безжалостного» использования, то не будет на доказательство это растрачивать свое драгоценное время. Попытаемся самостоятельно установить PHP сервер на ПК под Винду.
Рассмотрим поэтапную установку сервера из индейского племени Apache:
Заходим на Apache.org, в меню справа жмем на «Download». После этого в предоставленном списке зеркал выбираем любое и скачиваем инсталяху с расширением.msi (родной формат под Windows) и версией не ниже 2.2
Поскольку проект является open source, то сейчас «развелось» множество сборок этого сервера. Если не можете найти указанную, перейдите по этому адресу . Здесь на зеркале доступны для скачивания родные версии Apache.
После загрузки запускаем инсталляционный пакет на выполнение. Процедура установки стандартная: соглашаемся с условиями использования, указываем имя домена и сервера, «мыло» администратора. Затем «Next».
Указываем директорию, куда следует установить PHP сервер Apache.
И ждем, пока пройдет процесс инсталляции ПО. Переходим в директорию, куда установили Apache. В папке конфигураций находим httpd.conf и открываем его. Находим строчку «Deny from all» и комментируем эту директиву. Таким образом мы снимаем встроенную защиту сервера, которая не нужна для локального использования Apache. То есть открываем доступ ко всем папкам, в том числе и к виртуальным. Если этого не сделать, то программа при попытке доступа к любой из директорий выдаст «403» ошибку.
Сохраните все изменения и перезапустите сервер.
Заходим на php.net и скачиваем одну из «86» версий дистрибутива (лучше защищенную). Затем распаковываем ее в отдельной папке на том же диске, где и сервер. Я не буду полностью описывать все параметры языка, которые можно изменить. Более подробно об этом можно прочитать в сопутствующей технической документации.
Хотелось бы отметить, что все настройки PHP задаются в файле php.ini. Он открывается с помощью любого редактора (в том числе и Блокнотом). Приведу описание нескольких часто используемых параметров, которые задаются через этот файл:
post_max_size – устанавливает максимальный объем данных, которые можно за раз обработать с помощью метода POST.
upload_max_filesize – максимальный размер файлов, которые можно загрузить.
default_charset – с помощью данного параметра можно в PHP установить по умолчанию кодировку utf 8.
Теперь для полного счастья осталось прописать несколько строк в httpd.conf. С их помощью мы подключим PHP к локальному серверу, чтобы он работал в качестве модуля Apache. Этого вполне хватает для написания и тестирования кода в «домашних» условиях. Указанные строки следует разместить в середине файла:
LoadModule php5_module путь к инсталляции PHP/ php5apache2_2.dll – подключает библиотеку, с помощью которой дистрибутив будет использоваться в качестве модуля.
PHPIniDir «путь к файлу php.ini/» (например, PHPIniDir «F:/php-5.3.5/») – понятно без слов.
AddType application/x-httpd-php phtml php – настраивает соответствие между файлами PHP и mime-типом (application/x-httpd-php).
Ну как? Настройка требует времени, внимания и умения. А вы никогда не задумывались, что легче всего уже собранный «шкаф». Хотя в нашем случае под шкафом подразумевается уже готовый пакет ПО, в который входят и PHP, и сервер, и СУБД. Понятно, что речь идет о Денвере. Благодаря ему никакой «шкаф» не сможет превратиться под «умелыми» руками спеца в какой-нибудь «стол» или «тумбочку» .