как работать с php на windows
Настройка среды разработки для PHP веб-разработчика в Windows
Первые два года своей профессиональной деятельности в создании сайтов я работал под Linux. Но при всей гибкости и мощности этой системы она, всё же, неудобна в мелочах. Однажды, эти мелочи перевесили все прочие плюсы и я решился пересесть на Windows. Сейчас я совершенно не жалею о потраченном времени на настройку среды разработки, а моим рабочим ноутбуком, который по совместительству является и домашним, стало гораздо удобнее пользоваться.
Этот пост может сэкономить время тем, кто так же как и я собирается перейти на Windows и тем, кто только ещё начинает работать PHP-программистом или веб-разработчиком. Для полноценной веб-разработки понадобятся: виртуальная среда, система контроля версий, менеджеры зависимостей, система сборки приложений, система развёртки приложений и, конечно, хороший редактор кода. Я не буду рассказывать зачем нужен каждый из компонентов, а лишь дам инструкцию по его установке в Windows. Я использую Vagrant, Composer, NPM, Bower, Git, Gulp, Capistrano и PHPStorm, дальше пойдёт речь именно об этих технологиях. Инструкции даны для Windows 10.
Начнём с установки PHP
Для разработки я использую PHP 7, чтобы мой код был совместим с ним, когда я соберусь переезжать. На боевых серверах у меня пока что PHP 5.6. Для того, чтобы случайно не написать код, который не будет работать в продакшене в моём PHPStorm указан уровень языка 5.6.
Для работы в Windows у PHP есть специальная версия языка, которую можно скачать с сайта PHP. Для того, чтобы установить PHP 7 в операционной системе Windows понадобится программа Visual C++ Redistributable for Visual Studio 2015, которую можно скачать с официального сайта Майкрософта. Установка этой программы не содержит никаких трудностей, нужно просто нажимать кнопку «Далее».
После установки Visual C++ Redistributable скачиваем архив PHP 7 для Windows (VC14 Non Thread Safe x64 или x86 в зависимости от разрядности системы) c официального сайта PHP. В архиве нет инсталлятора, его просто нужно распаковать в папку где-нибудь на диске. В пути к этой папке не должно быть пробелов и русских букв, у меня это C:\php.
После распаковки нужно добавить PHP в системный PATH для того, чтобы можно было запускать PHP из любого каталога:
Система контроля версий
Установить Git на Windows проще простого. В качестве приятного бонуса вместе с Git поставляется консоль Git bash. Работать с этой консолью гораздо удобнее, чем со стандартной CMD в Windows. Кроме того, она понимает некоторые полезные линуксовские команды, такие как find, ls и прочие.
При установке Git под Windows вам нужно будет прописать git.exe в PATH вашей системы, чтобы Git можно было запускать из любого места в командной строке. А также указать Git’у, чтобы при получении кода он не менял символы окончания строк в файлах (эти символы отличаются на системах с Linux и Windows). Всё это делается парой кликов мышкой через инсталятор Git.
Вот скриншоты важных страниц установки Git:
Откройте Git Bush и запустите две команды:
На этом первоначальная настройка Git закончена.
Менеджеры зависимостей NPM, Bower и Composer
Для того, чтобы получить NPM нужно установить NodeJS.
У NodeJS есть официальный установщик для Windows, поэтому установка будет проще простого:
Если команды выдали версии, например: «v6.2.0» и «3.8.8», то это значит, что всё успешно установлено и можно работать.
После установки NPM можно приступить к установке Bower
Здесь всё просто, введите в командной строке:
Composer
У пакетного менеджера Composer есть специальный установщик для Windows. Скачать его можно с официального сайта. Сама установка элементарна и займёт не больше 5 минут, но есть две особенности.
Во первых, перед установкой Composer нужно установить PHP. О том как это сделать написано в начале поста. Во вторых, после установки Composer нужно передать ему специальный GitHub Tokken для того, чтобы обойти ограничени GitHub’а на количество обращений по API.
Но начнём с установки. После скачивания и запуска установщика он попросит указать путь к PHP. Если вы добавили PHP в PATH, как указано у меня в инструкци, то Composer сам определит этоть путь. Если нет, то вам нужно указать этот путь самостоятельно.
После этого нужно ещё несколько раз нажать Next и Composer будет установлен в систему и доступен через командную строку из любого каталога.
В процессе работы с Composer программа в какой-то момент сама предложит вам ввести GitHub Tokken и даст ссылку на его создание. Но можно не ждать этого и сделать всё самому. Создать токен можно на специальной странице GitHub’а. Для того, что передать токен Composer’у нужно ввести в командной строке команду
Всё, на этом Composer установлен и готов к использованию.
Система сборки проекта Gulp
Так как он часть экосистемы NPM, то тут всё просто:
Виртуальная среда Vagrant
Для установки Vagrant в Windows предварительно понадобится установить один из провайдеров виртуальной среды. Я использую VirtualBox от Oracle. Установка обеих программ не составляет абсолютно никакого труда и требует только вовремя нажимать кнопку Next.
Ссылки на страницы откуда можно скачать установщики:
Система развёртывания Capistrano
Для того, чтобы установить Capistrano на Windows в первую очередь нужно установить язык программирования Ruby. В этом нет ничего сложного, для установки языка в Windows существует специальный проект rubyinstaller.org. Нужно лишь скачать установщик и несколько раз нажать кнопку Next. Не забудьте только поставить галочку напротив пункта о добавлении Ruby в PATH Windows.
Это позволит запускать Capistrano из любого каталога, что очень удобно.
После установки Ruby настало время установить Capistrano. Откройте командную строку (если она была открыта, до установки Ruby, то закройте и откройте её снова, чтобы обновить данные из PATH) и введите команду:
Эта команда установит Capistrano в систему и в дальнейшем его можно будет запускать командой:
Как видите, всё элементарно.
Сразу после установки PHPStorm на Windows нужно сделать две важные настройки:
Обе настройки находятся в разделе Editor. Попасть в настройки можно с главного экрана PHPStorm.
На этом всё. На установку всех компонентов понадобится примерно час времени.
Установка в системах Windows
Содержание
Установка PHP в современных операционных системах Microsoft Windows и рекомендуемая конфигурация под распространённые веб-серверы.
Официальные релизы PHP для Windows рекомендованы для использования в промышленной эксплуатации. Однако, вы также можете собрать PHP из исходных кодов. Вам потребуется окружение Visual Studio. Обратитесь к разделу » Пошаговое руководство по сборке для получения более полной информации.
Установка PHP на Azure App Services (он же Microsoft Azure, Windows Azure, или (Windows) Azure Web Apps).
User Contributed Notes 12 notes
If you make changes to your PHP.ini file, consider the following.
(I’m running IIS5 on W2K server. I don’t know about 2K3)
PHP will not «take» the changes until the webserver is restarted, and that doesn’t mean through the MMC. Usually folks just reboot. But you can also use the following commands, for a much faster «turnaround». At a command line prompt, type:
and that will stop the webserver service. Then type:
and that will start the webserver service again. MUCH faster than a reboot, and you can check your changes faster as a result with the old:
in your page somewhere.
I wish I could remember where I read this tip; it isn’t anything I came up with.
You can have multiple versions of PHP running on the same Apache server. I have seen many different solutions pointing at achieving this, but most of them required installing additional instances of Apache, redirecting ports/hosts, etc., which was not satisfying for me.
Finally, I have come up with the simplest solution I’ve seen so far, limited to reconfiguring Apache’s httpd.conf.
Here it is (Apache’s httpd.conf contents):
—————————
# replace with your PHP4 directory
ScriptAlias /php4/ «c:/usr/php4/»
# replace with your PHP5 directory
ScriptAlias /php5/ «c:/usr/php5/»
# populate this for every directory with PHP4 code
Action application/x-httpd-php «/php4/php.exe»
# directory where your PHP4 php.ini file is located at
SetEnv PHPRC «c:/usr/php4»
# remember to put this section below the above
# directory where your PHP5 php.ini file is located at
SetEnv PHPRC «c:/usr/php5»
—————————
This solution is not limited to having only two parallel versions of PHP. You can play with httpd.conf contents to have as many PHP versions configured as you want.
You can also use multiple php.ini configuration files for the same PHP version (but for different DocumentRoot subfolders), which might be useful in some cases.
Remember to put your php.ini files in directories specified in lines «SetEnv PHPRC. «, and make sure that there’s no php.ini files in other directories (such as c:\windows in Windows).
Hope this helps someone.
If you are installing PHP on Vista just go to David Wang’s blog. http://blogs.msdn.com/david.wang/
archive/2006/06/21/HOWTO-Install-and-Run-PHP-on-IIS7-Part-2.aspx
I made the mistake of setting a ‘wildcard application map’ for PHP on a Windows 2003 / IIS 6.0 / PHP ISAPI installation.
This resulted in «No input file specified» errors whenever I tried to load the default page in my site’s directories. I don’t know why this broke things, but it did.
If anyone has the same problem, this may be the cause.
IIS setup: 403 forbidden error.
Despite this, php version 5.1.4 was being loaded. We renamed 5.1.4’s folder and then PHP was not loading at all.
There were no visible references to 5.1.4 in the IIS configuration, but in the file \webConfig.xml, there was a reference to 5.1.4’s isapi under IISFilters.
To fix this problem, we added version 5.2.5’s php5isapi.dll to the ISAPI Filter category for the web site, in the IIS control panel.
I installed by Microsoft Installer, manually, whatever I always received de same error from IIS7.
The IIS7 interface is quite diferent and are not all together like IIS6
The 5.3 version have not any of those files: php5stdll, php5isapi.dll. etc.
The installer puts others files in handlers and I decided to use them as substitutes. Nothing done!
After that, I discovered that installer do not install these files within the sites, but in the root default site configuration of IIS7.
So, I copied the root configuration to my site and them it worked (all others procedures were done e.g. copy php.ini to windows folder)
If you get 404 page not found on Windows/IIS5, have a look at C:\SYSTEM32\INETSRV\URLSCAN
Here’s how to run dual PHP instances with PHP 5.2 and any previous PHP on Windows 2003:
1. Right-click My Computer, go to Advanced tab, and click on Environment Variables.
Add the two installations and their EXT directories to the Path variable. For example, add:
c:\php;c:\php\ext;c:\TMAS\php;c:\tmas\php\ext;
Then, add the newer PHP version’s directory as a variable called PHPRC. For example:
Variable:PHPRC
Value: C:\PHP
Click OK to close the Environment Variables window, and click OK to close System Properties.
2. In registry, under HKEY_LOCAL_MACHINE>SOFTWARE>PHP, add a REG_SZ key called iniFilePath and give it a value
of the directory where the older PHP is installed. For example:
C:\TMAS\PHP
3. In IIS, go to the Web Service Extensions. Add both versions’ ISAPI module separately to the extensions
list, and allow both.
Testing Date: 05.15.09
Background:
For several days now I, as a newbie, have been unsure if I had installed PHP correctly, or not. No matter what I did phpinfo( ) reported «Configuratin File Path» as: “C:\WINDOWS”. I was left to wonder what was wrong.
To help resolve the phpinfo() “issue”, I conducted a series of tests using two scripts:
The first is “test-php-ini-loaded.php”; it is stored in c:\inetpub\wwwroot, and has the following code:
Apache NetBeans 12.5
В данном учебном курсе рассматриваются два способа настройки среды разработки PHP в операционной системе Windows. Первый и наиболее удобный способ состоит в установке и настройке пакета AMP (*A*pache, *М*ySQL, *P*HP). В данном учебном курсе приводится процедура установки пакета XAMPP. Второй способ состоит в установке и настройке каждого компонента по отдельности.
Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
Пакет загрузки PHP
Версия 5. Содержится в XAMPP Windows.
Рекомендуется использовать сервер HTTP Apache версии 2.2. Содержится в XAMPP для Windows.
Сервер базы данных
Рекомендуется использовать сервер MySQL 5.0. Содержится в XAMPP для Windows.
Отладчик PHP (не обязательно)
Как правило, разработка и отладка выполняются на локальном веб-сервере, в то время как производственная среда размещена на удаленном веб-сервере. Настройка удаленного веб-сервера описана в разделе + Развертывание приложения PHP на удаленном веб-сервере с помощью IDE NetBeans+. Этот учебный курс содержит информацию, необходимую для настройки локального веб-сервера. Поддержка PHP может добавляться к целому ряду локальных веб-серверов (IIS, Xitami и т.д.), но обычно используется сервер HTTP Apache. Сервер HTTP Apache включен в пакет AMP XAMPP, используемый в этом учебном курсе. Сведения относительно установки и настройки автономного сервера HTTP Apache приведены здесь.
Требуемое программное обеспечение
Для создания, выполнения и отладки проектов PHP необходимо следующее программное обеспечение:
IDE NetBeans для PHP. Загрузку можно осуществить отсюда.
Веб-сервер. Как правило, разработка и отладка выполняются на локальном веб-сервере, в то время как производственная среда размещена на удаленном веб-сервере. Текущая версия позволяет использовать локальный сервер. Последующие версии будут поддерживать использование удаленного сервера с доступом по протоколу FTP. Поддержка PHP может добавляться к целому ряду веб-серверов (IIS, Xitami и т.д.), но обычно используется сервер HTTP Apache. Сведения относительно установки и настройки Apache 2.2 приведены здесь.
Механизм PHP. Поддерживается версия PHP5. Загрузку можно осуществить отсюда.
Отладчик PHP. IDE NetBeans для PHP позволяет использовать XDebug, но использование отладчика не является обзательным. Из соображений совместимости с PHP5 рекомендуется использовать версию XDebug 2.0 или выше.
Сервер базы данных. Существует возможность использования различных серверов базы данных, однако самым популярным из них является сервер MySQL. Загрузку можно осуществить отсюда. NOTE: Рекомендуемая версия продукта: MySQL Server 5.0. В предоставленных документах описывается работа с этой версией.
По завершении установки необходимо выполнить настройку среды в целях обеспечения правильной совместной работы всех программных компонентов.
Можно использовать пакет, содержащий требуемое программное обеспечение, или установить каждый компонент по отдельности.
Использование пакета AMP
В целях автоматической установки всех параметров настройки для механизма PHP, сервера HTTP Apache и сервера базы данных MySQL воспользуйтесь пакетом AMP. В данном учебном курсе приведены указания только для пакета XAMPP-Windows. Справочные сведения по пакету WAMP или другим пакетам приведены в разделе NetBeans XDebug Wiki.
Установка и настройка пакета XAMPP
В этом разделе приведено описание процедур загрузки, установки и настройки пакета XAMPP.
Предупреждение! НЕ используйте XAMPP 1.7.0. В этой версии имеются значительные проблемы с XDebug. Используйте версию 1.7.1 или выше, где эти неполадки устранены.
Начиная с XAMPP 1.7.2, XAMPP поставляется с PHP 5.3а не с PHP 5.2.x. IDE NetBeans для PHP версии 6.7.x не поддерживает новые функции PHP 5.3. IDE NetBeans для PHP 6.8, которая в настоящее время доступна как сборка разработки, полностью поддерживает PHP 5.3. Также обратите внимание, что установка Xdebug различается для PHP 5.2.x и PHP 5.3. |
Загрузите пакет программы установки +XAMPP +. В состав XAMPP Lite не входит XDebug.
В Microsoft Vista функция контроля учетных записей пользователей (UAC) блокирует обновление установщиком PHP настройки службы httpd Apache. На время установки XAMPP следует отключить UAC. Для получения дополнительных сведений обратитесь к разделу Поддержка Майкрософт.
Можно установить сервер Apache и сервер базы данных MySQL как веб-службы. Если Apache Server и MySQL установлены как службы, то нет необходимости запускать их вручную с помощью «XAMP Control Panel». Следует учитывать, что установить и удалить эти службы можно с помощью панели управления XAMPP.
При использовании самораспаковывающегося архива после его распаковки запустите файл setup-xampp.bat для настройки компонентов пакета. Программа установки XAMPP запускает этот файл автоматически.
После настройки откройте панель управления XAMP. Эту панель можно открыть посредством запуска файла XAMPP_HOME/xampp-control.exe или с помощью значка панель управления XAMPP, автоматически размещаемого на рабочем столе. При открытии панели управления XAMPP следует учитывать, что модули, установленные как службы, уже выполняются.
Флажки «Svc» указывают на то, что модуль устанавливается как служба Windows и автоматически выполняется при запуске системы. Службы Windows устанавливаются и удаляются при установке и снятии флажка «Svc». При удалении службы Windows сам модуль не удаляется, однако необходимо запускать его вручную. Панель управления XAMPP включает в себя кнопки запуска и остановки модулей, а также открытия их консолей администратора.
Проверка установки XAMPP
Установка и включение отладчика XDebug
Для использования отладчика XDebug необходимо настроить стек PHP. Процесс отличается, если используется XAMPP 1.7.1, который включает в себя PHP 5.2.6, или XAMPP 1.7.2, который включает в себя PHP 5.3.
Многие пользователи испытывают трудности при настройке работы XDebug в своих системах. Справочные сведения приведены на вики-страницеи на форуме пользователей редактора NetBeans PHP Editor.
XDebug на XAMPP 1.7.1 (PHP 5.2)
Поскольку оптимизатор Zend блокирует XDebug, оптимизатор требуется отключить. В активном файле php.ini найдите следующие строки и удалите или отметьте их как комментарии (для надежности выполните поиск и закомментируйте все свойства, связанные с Zend):
Для присоединения XDebug к механизму PHP раскомментируйте следующие строки в файлах php.ini (добавьте эти строки непосредственно в разделе [Zend]), если они отсутствуют. Добавлены дополнительные примечания.
Установите свойство xdebug.remote_enable в значение 1, а не в значение «true» или другое значение.
Убедитесь в том, что указанные пути соответствуют расположению соответствующих файлов, как это определено при установке. |
Запустите панель управления XAMPP и перезапустите сервер Apache. Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.
Xdebug на XAMPP 1.7.2 (PHP 5.3)
Найдите и откройте файл XAMPP_HOME\php\php.ini для редактирования. В XAMPP 1.7.2 используется только файл php.ini
Найдите строку zend_extension = «XAMPP_HOME\php\ext\php_xdebug.dll» и удалите символ комментария.
Найдите строку xdebug.remote_enable = 0 и удалите символ комментария. Измените 0 на 1.
Найдите строку xdebug.remote_handler = «dbgp» и удалите символ комментария.
Найдите строку xdebug.remote_port = 9000 и удалите символ комментария.
Запустите панель управления XAMPP и перезапустите сервер Apache.
Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.
Установка и настройка веб-сервера IIS + PHP + MySQL
Чаще всего, PHP и MySQL устанавливается на серверы с Linux. Однако, при необходимости, можно настроить запуск и обработку PHP скриптов на Windows. Версии последней могут быть разные, например, Server 2008/2012/2016/2019 или не серверные системы, такие как, 7/8/10. Данная инструкция подойдет как для чайника, так и опытного специалиста (в качестве шпаргалки).
Установка IIS
Если откроется окно с приветствием, нажимаем Далее:
При выборе типа установки выбираем Установка ролей или компонентов:
При выборе целевого сервера оставляем локальный сервер (или выбираем удаленный, если установка выполняется из удаленной консоли):
Также среди ролей в подразделе «Разработка приложений» ставим галочку для установки CGI — этот компонент нам нужен для работы PHP:
Выбор служб ролей — нажимаем далее или, при необходимости, выбираем FTP-сервер:
В следующем окне ставим галочку Автоматический перезапуск конечного сервера, если требуется и кликаем по Установить:
Дожидаемся окончания процесса установки.
Сразу после установки IIS запускается автоматически. Но, если что, его можно запустить с помощью команды iisreset:
* если выполнить данную команду без опций, то она перезапустить веб-сервер.
Также мы можем открыть диспетчер служб (команда services.msc) и перезапустить Службу веб-публикаций:
Открываем браузер и вводим адрес http://localhost — должен открыться стартовый портал:
Развертывание отдельного сайта
Мы можем пропустить данный пункт, если хотим использовать сайт по умолчанию. Однако, в данной инструкции мы разберем пример, когда для сайта на PHP будет создана отдельная настройка.
Заполняем данные для нового сайта:
После заходим в каталог с сайтом (в нашем примере, это C:\inetpub\wwwroot\php) и создадим в нем файл index.html со следующим содержимым:
Hello from PHP site
Открываем браузер и переходим на созданный сайт, например, как в нашей инструкции — http://php.dmosk.ru. Мы должны увидеть страницу с написанным нами текстом:
Тестовый сайт создан.
Установка PHP
Откроется страница с несколькими версиями пакета — там как мы ставим PHP как FastCGI, нам нужна версия «Non Thread Safe» (не потокобезопасная), так как она будет работать быстрее. И так, скачиваем zip-архив на сервер:
Для установка PHP на Windows достаточно просто распаковать содержимое архива в любой каталог, например, C:\Program Files\PHP:
Делаем копию файла php.ini-production и переименовываем его в php.ini:
Открываем на редактирование данный файл и правим следующее:
open_basedir = C:\inetpub\wwwroot
.
cgi.force_redirect = 0
.
short_open_tag = On
* где open_basedir — директория, в которой будут разрешены PHP-скрипты; cgi.force_redirect — указывает будет ли скрипты обрабатываться при прямом запросе или только при запросе от веб-сервера. В IIS запросы контролируются самим веб-сервером, поэтому опция может оказать обратный эффект; short_open_tag — позволяет использовать короткий вид открывающих тегов для PHP.
cd «C:\Program Files\PHP»
Мы должны получить список подключенных модулей:
[PHP Modules]
bcmath
calendar
Core
ctype
.
Но если мы получим ошибку, связанную с отсутствием файла VCRUNTIME140.dll:
. необходимо установить Microsoft Visual C++ Redistributable. Переходим на страницу https://www.microsoft.com/ru-RU/download/details.aspx?id=52685 и скачиваем компонент:
После загрузки, устанавливаем его на сервер, после чего, снова пробуем вывести на экран модули php:
Настройка сайта на IIS для работы с PHP
В меню справа кликаем по Добавить сопоставление модуля:
Нажимаем OK и подтверждаем действие. Сопоставление создано.
Теперь заходим в Документ по умолчанию:
. и добавляем новый документ:
* в данном примете мы указываем, что по умолчанию сервер будет искать файл index.php, если таковой не указан явно в запросе.
Открываем в проводнике папку, в которой находятся файлы сайта (в нашем примере, C:\inetpub\wwwroot\php). Создаем файл index.php с содержимым:
Открываем браузер и снова переходим на наш сайт — мы должны увидеть страницу с информацией о php:
PHP Manager в IIS
Для того, чтобы упростить настройку PHP мы можем установить диспетчер PHP для IIS. Для этого переходим по ссылке https://www.iis.net/downloads/community/category/manage и переходим по ссылке для скачивания стабильной версии php-менеджера:
Выполняем установку на сервере, запустив загруженный файл. Открываем диспетчер управления IIS — мы должны увидеть PHP Manager:
Установка MySQL
На следующей странице выбираем для скачивания mysql-installer-community:
В открывшемся окне кликаем по No thanks, just start my download:
В следующем окне кликаем по Execute:
. и дожидаемся установки СУБД:
Откроется окно конфигурации MySQL — нажимаем Next:
Выбираем установку одиночного сервера MySQL:
Оставляем все значения по умолчанию для настроек сети:
Требуем сложные пароли:
Вводим дважды пароль для пользователя root:
* также, на данном этапе мы можем сразу добавить новых пользователей.
Устанавливаем СУБД как сервис и стартуем его:
Настройки готовы для применения — нажимаем Execute:
Дожидаемся применения настроек и кликаем по Next:
Установка завершена — нажимаем Finish.
Сервер баз данных готов к использованию.
По умолчанию, PHP поддерживаем mysql — в этом можно убедиться на странице phpinfo, найдя раздел mysqlnd: