Как запустить php на windows
IIS является встроенным в Windows. На сервере Windows используйте Server Manager для добавления роли IIS. Убедитесь, что функция роли CGI включена. На рабочем столе Windows используйте панель «Установка и удаление программ» для добавления IIS. В документации Microsoft есть » подробные инструкции. Для настольных веб-приложений и веб-разработки можно также использовать IIS/Express или рабочий стол PHP.
Пример #1 Командная строка для настройки IIS и PHP
@echo off REM download .ZIP file of PHP build from http://windows.php.net/downloads/ REM path to directory you decompressed PHP .ZIP file into (no trailing \) set phppath=c:\php REM Clear current PHP handlers %windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI REM The following command will generate an error message if PHP is not installed. This can be ignored. %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI'] REM Set up the PHP handler %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phppath%\php-cgi.exe'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath%\php-cgi.exe',resourceType='Unspecified'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script REM Configure FastCGI Variables %windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"
Apache
Существует несколько версий Apache2 для Windows. Мы поддерживаем ApacheLounge, но другие варианты включают XAMPP, WampServer и BitNami, которые предоставляют средства автоматической установки. Вы можете использовать mod_php или mod_fastcgi для загрузки PHP на Apache. Если вы используете mod_php, необходимо использовать TS-build Apache, Visual C той же версии и тот же процессор (x86 или x64).
Выберите сборку
Скачайте PHP-релизы с » http://windows.php.net/download/. Все сборки оптимизированы ( PGO ), а выпуски QA и GA тщательно протестированы.
- Thread-Safe(TS) — для одного процесса веб-служб, как Apache с mod_php
- Non-Thread-Safe(NTS) — для служб IIS и других FastCGI веб-серверов (Apache с mod_fastcgi) рекомендуется и для сценариев командной строки
- для x86 — для 32-разрядной версии
- для x64 — для 64-разрядной версии
Командная строка PHP в Microsoft Windows
В этом разделе содержатся заметки и советы по работе PHP, запущенного из командной строки.
PHP, запущенный из командной строки, может выполняться без каких-либо изменений в Windows.
C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Но есть несколько простых шагов, которые могут упростить задачу. Некоторые из этих шагов уже могли быть выполнены, но будут приведены здесь для того, чтобы последовательность операций не была нарушена.
Замечание:
Как PATH , так и PATHEXT являются важными системные переменными в Windows, поэтому важно не затереть их текущее значение, а только дописать нужные данные в конец.
Замечание: Позиция, в которой вы разместите .PHP, будет определять, какой скрипт или программа будут запущенны для обработки файла с соответствующим расширением. Например, разместив .PHP перед .BAT, сначала будет запущен ваш скрипт, а не пакетный файл, если есть исполняемый файл с тем же именем.
assoc .php=phpfile
ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
Выполнение этих шагов позволит PHP скриптам выполняться из любой директории без необходимости указывать исполняемый PHP файл или расширение .PHP, а все параметры будут переданы в скрипт для обработки.
В примере ниже описываются некоторые изменения реестра, которые могут быть сделаны вручную.
Пример #1 Изменения реестра
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\PHP5\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"
С этими изменениями команда может быть записана как:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
или, если ваш путь в переменной окружения «C:\PHP Scripts» PATH :
script -arg1 -arg2 -arg3
Замечание:
Возникает небольшая проблема, если вы собираетесь использовать эту технику и используете ваши PHP-скрипты как фильтры командной строки, как в примере ниже:
dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
dir | script -arg1 -arg2 -arg3
Вы можете увидеть, что ваш скрипт завис и ничего не делает. Для того чтобы оперативно получать об этом информацию, вам нужно внести в реестр еще некоторые изменений.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001
Как запустить php.exe из консоли Windows?
Как я только не пытался .bat написать, даже в простой виндовской консоли не могу сообразить как запустить php.
В линуксе все просто: в папке запускаю терминал и пишу ./php -v
все работает. В виндовсе же полный треш. Подскажите пожалуйста, как запустить php с помощью .bat файла
- Вопрос задан более года назад
- 321 просмотр
5 комментариев
Простой 5 комментариев
где ты взял php?
если брать на офф файле то php запускается без изменений в path но! при условии что не подключаются extension в php.ini, для их подключения путь придется прописать на этот каталог (когда то давно я пробовал в ini указывать полный путь — это не срабатывало)
переменную PATH можно менять прямо в bat файле, вот так:
set PATH=%PATH%;c:\tools\php

Issue @paulenot Автор вопроса
rPman, На оф сайте скачал пхп. Разместил в папку со скриптом .bat. Все это должно упаковаться и отправится клиенту. Ненужны никакие статичности, все должно быть динамично. ткнул в скрипт .bat и php запустился. все. Это возможно на Windows?
Issue, 100% да
для запуска php достаточно править только переменные окружения, которые можно установить в батнике
экспериментируй, полный путь прописывать в PATH или относительный, я достаточно давно это делал не помню точно что именно заработало
MaxKozlov @MaxKozlov Куратор тега PowerShell
Issue, Что-то мне подсказывает, что у вас или php какой-то не тот, или ему библиотек для запуска не хватает.
ls в папочке вашей сделайте, результат сюда
ещё не помешает посмотреть Application event log, нет ли там ошибок
eventvwr.msc

Дмитрий @Compolomus Куратор тега PHP
Вы пытаетесь сделать архив со скриптом упаковав в .exe? Одного файла там не достаточно. Плюс нужен бинарник, который собран статически, без подключения динамических расширений, обычно весит около 100 мб
Решения вопроса 1
судя по всему у вас сломанный php.
только что скачал и запустил:

как вариант попробуйте Bamcompile, сделает из вашего .php скрипта исполнительный файл .exe
Ответ написан более года назад

Issue @paulenot Автор вопроса
Судя по всему у меня сломанная винда. Все IDE лагают, код норм, запускается криво. Нет библиотек всяких
Ответы на вопрос 1
Антон Шаманов @SilenceOfWinter Куратор тега PHP
та еще зажигалка.
путь к php.exe нужно добавить в PATH
baтник:
@echo off @setlocal set SCRIPT_PATH=%~dp0 php.exe --f "%SCRIPT_PATH%script.php" %* @endlocal
если php.exe не указан, в PATH, то в батнике указываешь абсолютный путь к php.exe
Ответ написан более года назад
Нравится 2 7 комментариев

Issue @paulenot Автор вопроса
Мне нужен портативный скрипт. Абсолютный путь может измениться в любой момент. Как этот вопрос решить? На скрине видно, что я использовал абсолютный путь, но PHP ничего не вывел
Антон Шаманов @SilenceOfWinter Куратор тега PHP
Issue, я написал как — прописать путь к php в PATH, в мануале установка под windows расписана от и до

Issue @paulenot Автор вопроса
Антон Шаманов, Т.е. каждый, кто будет пользоваться портативным пхп с моим скриптом — должен нажать кучу кнопок и прописать опять статичный путь к пхп, который должен быть динамичным? Вы хотите сказать, что PowerShell настолько карявое г. но что с ним работать не возможно? 6 лет не лез в винду, еще бы лет 1000000 не лез.
Антон Шаманов @SilenceOfWinter Куратор тега PHP
Issue, ты объясни подробнее что ты пытаешься сделать. в данном плане windows не сильно отличается от linux — если бы ты установил php в системную папку вроде Windows, то php был бы доступен как и в linux.

Issue @paulenot Автор вопроса
Антон Шаманов,
Вот смотрите, я качаю архив пхп, под линь и винду они не сильно отличаются. те же папки, только вместо exe там пустота, он и так бинарник на линуксе, ему расширение не нужно.
Так вот. Эту папку я таскаю по всей системе, и еще человек 100 расположит эту папку там где им удобно.
В линуксе я могу обратится во вложенную папку и запустить из нее скрипт, не нужны ни какие патчи или полные пути, достаточно относительного:
./php/php ./php_script/index.php
Точка — это то место, где лежит start.sh, я на него тыкаю и все прекрасно работает.
На винде элемментарно не работает .\php.exe -v
Как мне сделать аналогию с bash скриптом. Что бы не тыкать переменные среды, не указывать полный путь (это ограничение для пользователя, у кого-то вообще может на флешке будет лежать)

Сергей delphinpro @delphinpro Куратор тега PHP
Issue, что значит «портативный php»?
Если ваш скрипт идет в комплекте в php, то достаточно перейти в папку и выполнить

В других случаях всегда придется либо указывать полный путь к исполняемому файлу (и скрипту), либо относительный из текущего местоположения, либо прописать пути в сиcтемную переменную path.
В этом плане в винде ничего не поменялось со времён MS DOS
Установка PHP — PHP: Настройка окружения
Начнем с установки PHP и знакомства с REPL.
Если на вашем компьютере пока не стоит PHP, то выполните установку по нашей инструкции .
Теперь убедимся в том, что PHP установился и работает.
Откройте терминал и наберите в нем команду php -v . Вывод должен быть примерно такой:
# Вывод может отличаться # Главное, чтобы не было ошибок php -v PHP 8.2.5 (cli) (built: Apr 19 2023 20:22:48) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.5, Copyright (c) Zend Technologies
Интерактивный запуск кода
Если все прошло удачно, то теперь самое время запустить код на PHP.
PHP поставляется со встроенным REPL (Read Eval Print Loop). REPL (Read Eval Print Loop) — это программа, которая работает как командная оболочка. Она:
- Ожидает ввод от пользователя (Read)
- Выполняет введенный код (Eval)
- Печатает на экран результат (Print)
- Затем снова входит в режим ожидания (Loop)
Чтобы запустить REPL, наберите команду php -a :
-a Interactive mode enabled php >
Теперь вы можете выполнять код на PHP и сразу же смотреть на результат его выполнения. Наберите любой корректный код на PHP — например, такой:
> echo 10 + 5; 15
REPL выводит результат выполнения операции прямо на экран и снова входит в режим ожидания ввода команд. Для выхода из REPL достаточно нажать Ctrl + C . Если вы ошиблись при вводе команды, то всегда можно выйти и зайти снова.
Такой способ помогает быстро проверять гипотезы, отлаживать код и делать простые вычисления.
REPL позволяет использовать переменные и запоминает предыдущий ввод:
> $a = 5; php > $b = 10; php > echo $a + $b; 15
Чтобы учиться эффективнее, постоянно применяйте теорию на практике. Внимательно изучайте код в курсах, набирайте все примеры вручную и запускайте их на своем компьютере. Только так вы действительно поймете, что происходит.
В тех случаях, когда REPL недостаточно, код можно и нужно запускать в виде файлов.
Для этого создайте файл с любым именем и расширением php — например, index.php. Затем запустите его:
cat index.php echo 'Hexlet one love.'; php index.php Hexlet one love.
Обратите внимание, что запускать код нужно из той же директории, в которой лежит файл index.php. Чтобы запустить код из другой директории, нужно указывать путь до файла.
Пример установки и запуска PHP на Ubuntu
Расширения
Некоторые части PHP, которые описаны в официальной документации, поставляются в язык как расширения. Они помогают работать с базами данных, с форматами (XML) и даже архиваторами. Их общий список включает в себя около сотни различных расширений.
Большая часть этих расширений не используется напрямую — но их используют библиотеки, которые мы собираемся устанавливать. Это значит, что мы должны научиться распознавать, какого расширения не хватает и как его поставить.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
