Устанавливаем php. Пошаговая инструкция по настройке PHP на хостинге. Как узнать версию PHP. Динамически загружаемые расширения

От автора: один знакомый (еще тот «кривых дел мастер») решил самостоятельно собрать шкаф. В результате после нескольких часов мучений у него получился только стол. Вот такая метаморфоза случилась. Чтобы не оказаться в подобной ситуации, рассмотрим, как установить PHP правильно.

Без чего не будет работать 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

Заходим на 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, и сервер, и СУБД. Понятно, что речь идет о Денвере. Благодаря ему никакой «шкаф» не сможет превратиться под «умелыми» руками спеца в какой-нибудь «стол» или «тумбочку» .

Местонахождение файла php.ini зависит от операционной системы, на которой работает сервер хостинг-провайдера. Чтобы узнать где он находится выполняем 4 простых шага:

  1. Создаем php-файл (имя может быть любое, но мы берем для примера myphpinfo.php), и добавляем в него следующие строки:
  2. Загружаем этот файл на сервер, где расположен ваш сайт (в корневую папку).
  3. Запускаем через браузер (вводим URL https://yoursitename.com/myphpinfo.php).
  4. В появившемся окне ищем путь к php.ini (для начала смотрим "Loaded Configuration File", если там написано "None", то смотрим "Configuration File (php.ini) Path").

Как настроить php.ini?

Файл php.ini имеет такие правила синтаксиса "директива = значение". Если вы хотите добавлять комментарии (например, в которых указываете на что влияет данная настройка), то делайте после точки с запятой (все, что идет после этого знака не учитывается как команда). Вот пример:

max_execution_time = 40 ; Максимальное кол-во секунд исполнения скрипта

Общие настройки

PHPengine = On ; Работа PHP-скриптов включена.

Short_open_tag = On ; Разрешает упрощенно обрамлять PHP-код тагами

Asp_tags = On ; Включает возможность выделять PHP-код, как это делается в ASP - <% %>

Precision = 12 ; Указывает сколько цифр будет после запятой, у чисел с плавающей точкой.

Output_buffering = 4096 ; Автоматически будет включена буферизация вывода, с размером буфера указанным после "равно".

Safe_mode = On ; Безопасный режим.

Safe_mode_allowed_env_vars = PHP_ ; Разрешает пользователю работать только с переменными окружения, которые начинаются с PHP_. Если эта директива будет пустой (не будет иметь значения), то пользователи смогут изменять любые переменные окружения. Это может очень плохо сказаться на защите сценариев.

Safe_mode_protected_env_vars = LD_LIBRARY_PATH ; Запрещает изменять переменные, которые перечисляются через запятую.

Disable_functions = ; После знака "равно" нужно через запятую записать функции, которые вы хотите отключить (обычно это делается для безопасности)

Disable_classes = ; После знака "равно" нужно через запятую записать классы, вызов которых вы хотите запретить (обычно это делается для безопасности)

Ограничение ресурсов

max_execution_time = 40 ; Максимальное время на выполнение скрипта (в секундах)

Max_input_time = 40 ; Максимальное время в секундах, которое дается скрипту может на обработку данных, которые загружаются.

Memory_limit = 16M ; Максимум памяти, которые выделяется для работы одного скрипта

Обработка ошибок и журналы

error_reporting = E_ALL | E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE ; Указывает перечень ошибок, которые можно выводить.

Display_errors = On; Разрешает выводить ошибки прямо в браузер (часто используют для удобства отладки).

Display_startup_errors = On ; Ошибки появляющиеся при страрте PHP разрешено показывать.

Log_errors = On ; Ошибки разрешено записывать в файл журнала.

Log_errors_max_len = 1024 ; Максимальное число символов, которое может составлять длинна журнала.

Track_errors = On ; Последние сообщение об ошибки сохранится в переменную $php_errormsg

Html_errors = On ; Разрешен вывод сообщений об ошибках в HTML.

Error_log = filename ; Задается имя журнала ошибок.

Обработка данных

variables_order = "EGPCS" ; Устанавливает порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Если убрать любую из букв, то работа соответствующих переменных будет блокироваться.

Register_globals = On ; Включает возможность для обращения к переменным, которые поступают через GET/POST/Cookie/сессии, как к обычным переменным (например "$имяпеременной").

Register_argc_argv = On ; Разрешено создавать переменные $argv и $argc на основе информации из GET-метода.

Post_max_size = 8M ; Устанавливает максимальный объём данных, который может быть принят.

Magic_quotes_gpc = On ; Включает автоматическую обработку кавычек, которые поступают через POST/GET/Cookie.

Auto_prepend_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ДО выполнения сценария
auto_append_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ПОСЛЕ выполнения сценария.

Default_mimetype = "text/html" ; Задает кодировку для Content-type. По умолчанию будет использовано text/html без указания кодировки

Doc_root = ; Задается корневая папка для PHP-сценариев.

Extension_dir = "./" ; Задается папка, в которой будут хранится динамически загружаемые расширения.

Загрузка файлов

file_uploads = On ; Загрузка файлов на сервер разрешена.

Upload_tmp_dir = ; Временная директория для файлов, которые загружаются.

Upload_max_filesize = 2M ; Устанавливает максимальный размер файла, который можно загрузить.

Работа с сокетами

user_agent="PHP" ; Задается переменная USER_AGENT, когда происходит подключение через сокет.

Default_socket_timeout = 30 ; Максимальное время на прослушивание сокета (секунды).

Сессии

session.save_handler = files ; Уазывает, что информацию о сессиях нужно хранить в файлах

session.save_path = /tmp ; После знака "равно" нужно указать путь к папке в которой будет храниться информация о сессиях (важно чтобы она папка уже существовала)

session.use_cookies = 1 ; Разрешает использование cookie в сессиях

session.name = PHPSESSID ; Указывает на исользование в качестве имени сессии и сессионной cookie - ID сессии

session.cookie_lifetime = 0 ; Время жизни сессии ("0" - значит, что сессия живет, пока окно браузера не будет закрыто)

session.use_trans_sid = 1 ; Если пользователь отключил cookie, то во всех ссылках будет добавлен ID сессии

Динамические расширения

extension=modulename.extension ; Можно использовать чтобы загружать внешние модули. Для Windows-систем, обычно пишут - extension=msql.dll, а для
UNIX - extension=msql.so

Работа с модулями MySQL

mysql.allow_persistent = On ; Разрешает устойчивые MySQL-соединения.

Mysql.max_persistent = -1 ; Задает сколько максимум может быть устойчивых MySQL-соединений. Если указать -1, то это будет значить, что ограничений нет.

Mysql.max_links = -1 ; Задает сколько максимум может быть устойчивых MySQL-соединений, и неустойчивых ODBC-соединений. Если указать -1, то это будет значить, что ограничений нет.

Mysql.default_port = ; Порт для функции mysql_connect.

Mysql.default_socket = ; Имя сокета для локальных соединений MySQL.

Mysql.default_host = ; Имя хоста для функции mysql_connect.

Mysql.default_user = ; Имя пользователя.

Mysql.default_password = ; Пароль.

Если вы создали собственный файл php.ini и поместили его в папке сайта

В таком случае, в целях безопасности нужно заблокировать доступ к нему для всех, кроме вас. Для этого необходимо в файле.htaccess прописать такой код:


order allow,deny
deny from all

Но будьте внимательны, т.к. при данных настройках, все директивы (php_value, php_flag и т.д.) касающиеся настроек php через файл.htaccess перестанут работать (будет выдаваться ошибка 500 Internal Server Error).

Важно! Если вы создаете собственный файл php.ini, то он будет действовать только на директорию в которой он находится.

А сегодня мы поговорим об установке PHP . Как и в случае с Apache здесь нет ничего сложного. Если вы первый раз занимаетестьустановкой и настройкой PHP на локальной машине, то вам будет полезно прочитать это руководство с картинками. Если вы уже матерый зубр в этих делах, то можете смело пропустить эту заметку.

Итак, если вы читаете этот пост, то либо вы первый раз устанавливаете PHP, либо у вас возникли вопросы/проблемы в процессе установки или настройки PHP. Я постараюсь как можно подробнее описать этот процесс.

Для начала нам нужен дистрибутив с самой свежей версией PHP. Его можно скачать с официального сайта – www.php.net (9.5 Mb).

Скачиваем дистрибутив на компьютер, выбирая зеркало, которое географически наиболее ближе к вам находиться

Извлекаем содержимое архива в папку C:/php5 . Опять же, если вы первый раз устанавливаете связку Apache -PHP- MySQL рекомендую устанавливать по указанным мной путям.

Итак, в C:/php5 у вас должно находиться следующее:

Установка PHP завершена, теперь займемся его настройкой.

Переименуйте файл php.ini-recommended в php.ini :

  • выбираем файл
  • нажимаем F2
  • удаляем -recommended
  • нажимаем Enter.

Теперь откроем файл в блокноте и займемся настройкой PHP . Файл содержит в себе довольно большое количество настроек PHP, но нам они сейчас не нужны. Мы займемся лишь базовой настройкой, которая позволит нам запустить PHP на локальной машине.

Немного о формате описания в файле настроек

Символ ‘;’ означает, что строки закоментированы (они не будут учитываться). Например:

; ignore_user_abort = On

Как вы могли заметить настройки поделены на группы, для удобства поиска по файлу. Например, настройки управления ограничением ресурсов:

;;;;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds (Максимальное время выполнения скрипта).
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) (Максимальное количество выделяемой для скрипта памяти).

Формат описания параметров и их значений:

имя_переменной = ее_значение

Настройка модулей PHP.

Найдите секцию Dynamic Extensions (динамические расширения). Там представлен довольно большой список модулей для PHP:

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll

;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll

;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll

;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll

При подключении каждого модуля, он занимает определенное количество операционной памяти. Для работы мы подключим только те модули, которые нам точно понадобятся, а остальные, можно будет подключить по мере необходимости.

Для того чтобы подключить модуль нужно удалить перед строкой символ ‘;’. Тем самым мы раскомментируем строку и модуль будет использоваться.

Давайте подключим расширение PHP для работы с графикой – php_gd2.dll (оно нам понадобиться в будущем).

Для того, чтобы PHP смог найти, где лежат расширения, укажем путь к ним. Добавьте следующую строку до или после подключения расширений. В итоге у вас должно получиться следующее:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; … or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.

extension_dir=”C:/php5/ext”

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

Сохраняем сделанные нами изменения. Чтобы сделанные нами настройки применились необходимо перезагрузить Apache .

Установка и настройка PHP завершена!

Как видите – ничего сложного. Если в процессе работы вам понадобятся другие расширения, просто раскомментируйте строку, с нужным вам расширением (аналогично с php_gd2.dll ) и перезагрузите Apache .

В следующем посте, я расскажу как заставить работать PHP и Apache в связке.

Настройка PHP , как оказалось, не очень сложное занятие. Ознакомиться с настройками PHP 5.3 можно в файле «php.ini «, находящемуся в директории WINDOWS (путь к конфигурационному файлу выглядит примерно так: «%WINDOWS%\php.ini». К нему, безусловно, предполагается backup, находящийся в директории «PHP\BACKUP». Файл настроек PHP можно по-разному редактировать, удалять из него комментарии и пояснения (кстати, такие же операции можно проводить и с файлом «httpd.conf». Синтаксис файла php.ini: «директива = значение». Выглядит это примерно вот так:

Директива = значение; пояснение директива = ;директива = значение;директива =

и тому подобное.

В конфигурационном файле PHP есть специализированный знак комментария — «;». Все, что находится после этого знака, не воспринимается.

Общие настройки

Для осуществления настроек PHP Apache нам необходимо провести правку конфигурационного файла php.ini.
Директива, дающая право заключать код php в короткие тэги:

Short_open_tag = On

Включив эту директиву, вы сможете заключать код в такие теги «», вместо таких ««.

Для облегчения отладок сценария можно включить вывод ошибок непосредственно в ваш браузер:

Display_errors = On

Показывать все ошибки, кроме замечаний:

Error_reporting = E_ALL & ~E_NOTICE

Запись ошибок в файл журнала, которую, однако, лучше отключить для локального использования:

Log_errors = Off

Порядок, в котором PHP будет регистрировать перменные (E — встроенные переменные, G — GET переменные, P — POST переменные, C — Cookies, S — сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными, поэтому необходимо задать следующий порядок:

Variables_order = "EGPCS"

Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, «$переменная»), так как обращаться к этим переменным можно было только через суперглобальные массивы. Включать рекомендуется только в специфичных случаях (например, «$_POST[‘переменная’]):

Register_globals = On

Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie:

Magic_quotes_gpc = Off

Настройки загрузки файлов

Директива, разрешающая загрузку файлов:

File_uploads = On

Upload_tmp_dir = C:\Temp\uploadtemp

Максимальный размер файла, загружаемого вами:

Upload_max_filesize = 3M

Динамически загружаемые расширения

Путь к папке с расширениями :

Extension_dir = extensions

или абсолютный:

Extension_dir = C:\Server\PHP\extensions

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

Extension=php_gd2.dll

Настройка SMTP-сервера

Используемый SMTP-сервер:

SMTP = localhost

Smtp_port = 25

Адрес, который будет указываться в поле «From» в :

Sendmail_from = [email protected]

Настройка MySQL

Все мы работаем с разными версиями PHP, поэтому и настраивать их надо по-разному. В более поздних версиях PHP есть поддержка встроенной в ядро БД MySQL, а в более ранних — нету. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки «php_mysql.dll», то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить:

Extension=php_mysql.dll

Указание порта:

Mysql.default_port = 3306

и хоста MySQL по умолчанию

Mysql.default_host = localhost

Настройка сессий

Хранить данные сессий в файлах:

Session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

Session.save_path = C:/Temp/session

Использовать cookie в сессиях:

Session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:

Session.name = PHPSESSID

Запрет на инициализацию сессии при начале соединения:

Session.auto_start = 0

Время жизни сессионных cookie («0» — до закрытия окна браузера):

Session.cookie_lifetime = 0

Session.use_trans_sid = 1

Настройка PHP завершена. Вам необходимо перезапустить Apache для того, чтобы изменения вступили в силу.
Были использованы материалы с тематического сайта codenet.ru.

В htmlAcademy и я работаю на нем наставником. Студентам в рамках интенсива предстоит поднять рабочее окружение и это заметка нацелена упростить эту нелегкую для новичка задачу. Есть разные способы поднятия полноценного LAMP стека, но мы пойдем классическим путем. Настроим все компоненты по отдельности (без применения готовых комбайнов) и начнем с PHP (обязательно будет заметка с рассмотрением готовых сборок LAMP). Поскольку я планирую работать наставникам на интесивах по PHP и дальше, я собираюсь написать подобные инструкции для повторения в других ОС (Linux, macOS). Как говорится, лучше один раз попотеть, но потом всем станет проще. Итак, приступаем.

Загружаем PHP для Windows

Заходим на официальный сайт и загружаем актуальную версию PHP. На момент написания заметки это – 7.1.4 . На странице доступно несколько вариантов дистрибутивов. У меня Windows 7 x64, соответственно я выбираю zip архив с VC14 x64 Thread Safe.

Обратите внимание, для загрузки доступна два варианта дистрибутива: Thread-Safe (TS) и Non-Thread-Safe (NTS) . Выбор зависит от того как вы планируете применять интерпретатор. TS рекомендуется использовать для одного процесса веб-служб (например, настраивая через модуль mod_php для Apache). NTS рекомендуется для применения IIS (Internet Information Service) и альтернативных FastCGI веб-сервером (например, Apache с модулем FastCGI) и командной строки.

Устанавливаем PHP 7.1

Начнем готовить PHP для комфортной работе из командной строки. В предыдущем шаге вы загрузили архив с дистрибутивом PHP. В отличие от большинства программ, PHP поставляется в простом архиве, а не как инсталляционный пакет. Поэтому вам придется самостоятельно извлечь файлы в любую удобную для вас директорию. Я предпочитаю хранить подобные вещи в корне системного диска. Создайте в корне диска «C:» (или любом другом месте) директорию «php» и извлеките в нее содержимое загруженного архива.

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

  • go-pear.bat – сценарий для установки PEAR. Подробности о PEAR можно почитать в официальной документации .
  • php.exe – позволяет выполнять PHP сценарии из консоли;
  • php-win.exe - позволяет выполнять PHP сценарии без применения консоли;
  • php-cgi.exe – необходим для выполнения PHP кода в режиме FastCGI;
  • php7apache2_4.dll – модуль интеграции с веб-сервером Apache 2.4.X;
  • phpdbg.exe – отладчик;
  • php.ini-development – пример конфигурационного файла PHP для окружения разработчика (development)
  • php.ini-production – пример конфигурационного файла PHP для рабочего окружения (production)

Подключаем конфигурационный файл

Распакованный дистрибутив у нас есть, подключим для него конфигурационный файл. Мы собираемся ставить эксперименты, поэтому в качестве образца возьмем php.ini-development . Сделайте копию этого файла в директорию php (C:\php ) с именем php.ini . ВАЖНО! Делайте именно копию, не простое переименование. За время разработки вам может потребоваться изменять конфигурационный файл и есть все шансы совершить ошибку, которую трудно будет обнаружить.

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

Тестируем PHP из командной строки

На этом шаге, так называемая «установка» завершена. Откройте консоль (cmd.exe , ярлык доступен в меню «Стандартные») и введите команду:

C:\php\php.exe --version

Результат будет примерно таким:

PHP 7.1.4 (cli) (built: Apr 11 2017 19:54:37) (ZTS MSVC14 (Visual C++ 2015) x64) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

Результат подтверждает, что PHP работает. Попробуйте для примера создать новый файл-сценарий (я создал файл “test.php” прямо в корне диска “C:”) и поместить в него текст:

Теперь попробуйте выполнить этот файл и посмотрите результат:

C:\php\php.exe –f test.php

Функция phpinfo() выводит информацию по конфигурации PHP в удобном виде. Об этой функции мы еще поговорим.

Упрощаем обращение к php.exe

PHP готов к работе, но согласитесь, каждый раз вбивать в консоле путь к php интерпретатору довольно неудобно. Чтобы упростить себе жизнь, внесем небольшие изменения в переменные среды. Запустим в панели управления аплет «Система» (или просто нажмем горячую клавишу «Windows + Pause Break» . Затем нажмем на кнопку «Изменить параметры» . В появившемся окне «Свойства системы» , перейдем на закладку «Дополнительно» . Найдите и нажмите на ней кнопку «Переменные среды» .

Находим в списке переменную «PATH» и нажимаем кнопку «Изменить» , появится окно редактирования переменной. В поле «Значение переменной» нам необходимо дописать путь к директории с PHP. Перейдите в самый конец строки и через точку с запятой укажите путь к директории с PHP: C:\php;

Все, нажимайте «Ok». Теперь перезагрузите систему (увы, придется). После перезагрузки Windows, обращаться к PHP можно будет просто: php.Например, чтобы вывести название версии достаточно написать:

Php –version

А чтобы интерпретировать файл test.php, расположенный в корне диска «C:»:

Php –f C:\test.php

Или вовсе запустить встроенный веб-сервер:

Php -t C:\ -S 127.0.0.1:8888 Listening on http://127.0.0.1:8888 Document root is C:\ Press Ctrl-C to quit.

Для тестирования откройте web-браузер попробуйте обратиться на http://127.0.0.1:8888/test.php . Обратите внимание, после параметра –t мы указываем путь к директории, которая станет корневой директорией веб-сервера. Все сценарии, расположенные в этой папке будут доступны для запроса с клиента. У меня на диске «C:» есть один файлик 1.php и именно его я и запрашиваю.

Assoc .php=phpfile ftype phpfile="C:\php\php.ee" -f "%1" -- %~2

Еще немного о переменных окружения

Теперь давайте поговорим о том как PHP будет искать файл настроек конфигурации (вспоминаем, о php.ini ). В документации приведена полная цепочка поиска. Во избежание лишних сложностей, рекомендую сразу добавить в переменные окружения новую – «PHPRC» и в качестве значения указать путь к директории с конфигурационным файлом. У меня конфиг располагается в тоже же директории, что и основные файлы php, следовательно в качестве значения переменной указываю –

«C:\php». После внесения изменения потребуется перезагрузка.

На этом у меня все. Первый часть мануала для новичков готова.

Loading...Loading...