Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
Esta seção contém notas e dicas específicas para que o PHP seja executado da linha de comando do Windows.
Nota:
Leia os passos de instalação manual primeiro!
Configurar o PHP para ser executado da linha de comando pode ser feito sem nenhuma mudança no Windows.
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Porém há alguns passos fáceis que podem ser seguidos para tornar o processo mais simples. Alguns desses passos podem já ter sido executados, mas estão repetidos aqui para fornecer uma sequência completa, passo a passo.
Nota:
PATH e PATHEXT são variáveis importantes de sistema pré-existentes no Windows, e deve-se tomar cuidado para não sobrescrever nenhuma das duas, apenas concatenar valores.
Concatene a localização do executável do PHP (php.exe, php-win.exe ou php-cli.exe dependendo da versão do PHP e preferências de visualização) à variável de ambiente PATH. Leia mais sobre como adicionar a pasta do PHP à variável PATH na entrada FAQ correspondente.
Adicione a extensão .PHP
à variável de
ambiente PATHEXT. Isto pode ser feito
ao mesmo tempo que se adiciona à variável PATH.
Siga os mesmos passos descritos no FAQ mas adicione à variável
PATHEXT no lugar da variável
PATH.
Nota:
A posição onde a extensão
.PHP
for inserida irá determinar qual script ou programa será executado quando o nome do arquivo for especificado. Por exemplo, inserir.PHP
antes de.BAT
irá fazer com que o script seja executado, em vez do arquivo de lote, se existir um arquivo de lote com o mesmo nome.
Associe a extensão .PHP
com o tipo de arquivo. Isto
pode ser feito executando o seguinte comando:
assoc .php=phpfile
Associe o tipo de arquivo phpfile
com o executável PHP
apropriado. Isto pode ser feito executando o seguinte comando:
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
Seguir estes passos irá permitir que os scripts PHP sejam executados de qualquer pasta
sem a necessidade de digitar o executável PHP ou a extensão
.PHP
e todos os parâmetros serão fornecidos ao script para processamento.
O exemplo abaixo detalha algumas das alterações de registro que podem ser realizadas manualmente.
Exemplo #1 Alterações de Registro
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:\\php\\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:\\php\\php.exe\" -f \"%1\" -- %~2"
Com estas alterações o mesmo comando pode ser escrito como:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
"C:\PHP Scripts"
estiver na
variável de ambiente PATH:
script -arg1 -arg2 -arg3
Nota:
Existe um pequeno problema se a intenção for usar esta técnica e usar os scripts PHP como um filtro de linha de comando, como o exemplo abaixo:
oudir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3Neste caso, o script poderá simplesmente travar e não produzir nenhuma saída. Para tornar esta opção operacional, deve-se fazer uma outra alteração no registro.dir | script -arg1 -arg2 -arg3Mais informações sobre este problema podem ser encontradas no artigo » Microsoft Knowledgebase Article : 321788. A partir do Windows 10, esta configuração foi invertida, fazendo com que a instalação padrão do Windows 10 suporte automaticamente esta opção. Esta postagem do » Microsoft Forum fornece a explicação.Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
On Windows 10 starting php by only typing the script name in an elevated command prompt pops up a dialog to choose an app.
It turns out Windows does that when the program associated with phpfiles through ftype cannot be executed. In this case this happens because it is trying to run php.exe in non-admin mode, even when launched from an elevated command prompt. To fix this, locate your php.exe, right-click, "Properties", "Compatibility", under Settings check "Run this program as an administrator; then also click "Change settings for all users".
On Windows 10, the above registry entries didn't work for me. In order for them to work, you need to write to
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\UserChoice
for which you don't have access, even if you run regedit as admin (probably because of the Hash key).
The solution is actually much easier - right-click a PHP file in Explorer and associate it to always open with php.exe.
And then you need to modify the PATH variable:
setx PATH "%PATH%;c:\path\to\php" /M
if you want to execute files with commands like
php file.php