Microsoft Windows üzerinde PHP Komut Satırı

Bu bölüm, PHP'nin Windows üzerinde komut satırından çalıştırılmasına özgü bilgiler ve ipuçları içerir.

Bilginize:

Lütfen önce elle kurulum adımlarını okuyun!

PHP'nin komut satırından çalıştırılması, Windows'ta herhangi bir değişiklik yapılmadan gerçekleştirilebilir.

C:\php\php.exe -f "C:\PHP Betikler\betik.php" -- -dğş1 -dğş2 -dğş3

Ancak bunu daha basit hale getirmek için izlenebilecek bazı kolay adımlar var. Bu adımlardan bazıları daha önce atılmış olmalıdır, ancak tam bir adım adım sıralama sağlayabilmek için bunlar burada tekrarlanmıştır.

    Bilginize:

    PATH ve PATHEXT, Windows'ta önceden tanımlanmış önemli sistem değişkenleridir ve bunlara ekleme yaparken mevcut değerlerin geçersiz kılınmamasına dikkat edilmelidir.

  • PHP çalıştırılabilirinin (PHP sürümünüze ve görüntüleme tercihlerinize bağlı olarak php.exe, php-win.exe veya php-cli.exe) konumunu PATH ortam değişkenine ekleyin. İlgili SSS girdisine bakıp PHP dizininizi PATH ortam değişkenine nasıl ekleyeceğinizi öğrenebilirsiniz.

  • .PHP uzantısını PATHEXT ortam değişkenine ekleyin. Bu, PATH ortam değişkenine ekleme yapılırken yapılabilir. SSS bölümünde açıklanan adımları izleyin ancak PATH ortam değişkeni yerine PATHEXT ortam değişkenini değiştirin.

    Bilginize:

    .PHP uzantısını yerleştirdiğiniz konum, dosya adlarının eşleşmesi durumunda hangi betiğin veya programın önce yürütüleceğini belirleyecektir. Örneğin, .PHP'yi .BAT'nin önüne yerleştirmek, aynı ada sahip bir betik dosyası varsa, php betiğinizin bat betiğinin yerine çalıştırılmasına neden olur.

  • .PHP uzantısının bir dosya türü ile ilişkilendirilmesi, aşağıdaki komut çalıştırılarak yapılır:

    assoc .php=phpfile
    

  • phpfile dosya türünün uygun PHP çalıştırılabiliri ile ilişkilendirilmesi aşağıdaki komut çalıştırılarak yapılır:

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

Aşağıdaki adımlar takip edilerek, PHP çalıştırılabilir dosyasının veya .PHP uzantısının yazılmasına gerek kalmadan PHP komut dosyaları herhangi bir dizinden çalıştırılabilir ve tüm bağımsız değişkenler işlenmek üzere betik dosyasına aktarılabilir.

Aşağıdaki örnek, elle yapılabilecek bazı kayıt defteri değişikliklerinin ayrıntılarını vermektedir.

Örnek 1 Kayıt Defteri değişiklikleri

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"

Bu değişikliklerle aynı komut şu şekilde yazılabilir:

"C:\PHP Betikler\betik" dğş1 -dğş2 -dğş3
veya "C:\PHP Betikler" yolu PATH ortam değişkeninde mevcutsa:
betik dğş1 -dğş2 -dğş3

Bilginize:

Bu tekniği kullanmayı ve PHP betiklerinizi aşağıdaki örnekte olduğu gibi bir komut satırı süzgeci olarak kullanmayı düşünüyorsanız küçük bir sorun var demektir:

dir | "C:\PHP Betikler\betik" dğş1 -dğş2 -dğş3
veya
dir | betik dğş1 -dğş2 -dğş3
Betiğinizin basitçe askıda kaldığını ve hiçbir şey çıkmadığını görebilirsiniz. Bunu çalışır hale getirmek için başka bir kayıt defteri değişikliği yapmanız gerekir.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Bu sorunla ilgili daha fazla bilgiyi bu » Microsoft Bilgi Bankası Makalesi : 321788'de bulabilirsiniz. Windows 10'dan itibaren, bu ayar tersine çevrilmiş gibi görünür ve öntanımlı Windows 10 kurulumu devralınan konsol işlemlerinin otomatik olarak yapılmasını desteklemektedir. Bu » Microsoft forum gönderisinde bir açıklama bulunmaktadır.

add a note add a note

User Contributed Notes 4 notes

up
3
vechenjivot at gmail dot com
8 years ago
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
up
2
pimroes at gmail dot com
13 years ago
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
up
1
rudigerw at hotmail dot com
8 years ago
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".
up
0
elhadjouattara at gmail dot thrcom
9 years ago
On Windows 8, with php 5.6.8 win32 VC11 in command line, need to indicate path with / rather than backslash \
Hence C:\Users\toshiba\Documents\php\test.php shall be C:/Users/toshiba/Documents/php/test.php
To Top