Komut satırı seçenekleri

PHP çalıştırılabiliri tarafından desteklenen komut satırı seçenekleri listesi istenirse PHP -h seçeneği ile çalıştırılarak sorgulanabilir:

Kullanım: php [seçenekler] [-f] <dosya> [--] [bağımsız değişkenler...]
  php [seçenekler] -r <kod> [--] [bağımsız değişkenler...]
  php [seçenekler] [-B <başlangıç_kodu>] -R <kod> [-E <bitiş_kodu>] [--] [bağımsız değişkenler...]
  php [seçenekler] [-B <başlangıç_kodu>] -F <dosya> [-E <bitiş_kodu>] [--] [bağımsız değişkenler...]
  php [seçenekler] -- [bağımsız değişkenler...]
  php [seçenekler] -a

  -a               Etkileşimli çalışır
  -c <yol>|<dosya> php.ini dosyası bu dizinde aranır
  -n               Hiçbir php.ini dosyası kullanılmayacak
  -d foo[=bar]     'bar' değerli bir foo INI girdisi tanımlar
  -e               Hata ayıklayıcı/profilci için genişletilmiş bilgi üretir
  -f <dosya>       <dosya>'yı çözümler ve çalıştırır
  -h               Bu yardım iletisini gösterir
  -i               PHP bilgisi
  -l               Sadece söz dizimi denetimi (lint)
  -m               Modül olarak derlenenleri gösterir
  -r <kod>         PHP <kod>unu <?..?> betik etiketleri olmadan çalıştırır
  -B <başlangıç_kodu>  PHP <başlangıç_kodu>nu girdi satırlarından önce
                   çalıştırır
  -R <kod>         PHP <kod>unu her girdi satırı için çalıştırır
  -F <dosya>       Her girdi satırı için <dosya>yı çözümler ve çalıştırır
  -E <bitiş_kodu>  PHP <bitiş_kodu>nu bütün girdi satırlarını işledikten
                   sonra çalıştırır
  -H               Harici araçlardan aktarılan bütün bağımsız değişkenleri gizler
  -S <addr>:<port> Yerleşik HTTP sunucusu ile çalıştırır
  -t <belgekök>     Yerleşik HTTP sunucusu için belge kök dizini belirtilir
  -s               Kaynağı renklendirilmiş söz dizimi ile çıktılar
  -v               Sürüm bilgilerini gösterir
  -w               Kaynağı boşluklar ve yorumlardan arındırılmış olarak
                   çıktılar
  -z <dosya>       <dosya> Zend eklentisini yükler

  bağımsız değişkenler... Betiğe aktarılan bağımsız değişkenler. Eğer betik stdin'den
                   okunuyorsa veya ilk bağımsız değişken - ile başlıyorsa
                   -- bağımsız değişkenler kullanın

  --ini            Yapılandırma dosyası isimlerini gösterir

  --rf <isim>      <isim> işlevi hakkında bilgi gösterir
  --rc <isim>      <isim> sınıfı hakkında bilgi gösterir
  --re <isim>      <isim> eklentisi hakkında bilgi gösterir
  --rz <isim>      <isim> Zend eklentisi hakkında bilgi gösterir
  --ri <isim>      <isim> eklentisi için yapılandırmayı gösterir

Komut satırı seçenekleri
Seçenek Uzun Seçenek Açıklama
-a --interactive

PHP'yi etkileşimli çalıştırır.Daha ayrıntılı bilgi için Etkileşimli kabuk konusuna bakınız.

-b --bindpath

Harici FASTCGI Sunucusu kipi için dizin yolu (sadece CGI için).

-C --no-chdir

Betiğin bulunduğu dizine chdir yapılmaz (sadece CGI için).

-q --no-header

Sessiz kip. HTTP başlığının çıktılanmasını engeller (sadece CGI için).

-T --timing

Betiğin çalışma süresini sayı kere ölçer (sadece CGI için).

-c --php-ini

Bu seçenek php.ini dosyasının aranacağı dizini veya özel bir INI dosyasını (adı php.ini olmak zorunda değildir) belirtebilir. Örneğin:

$ php -c /ozel/dizin/ ornek_betik.php

$ php -c /ozel/dizin/ozel-dosya.ini ornek_betik.php

Eğer bu seçeneği belirtmezseniz, php.ini öntanımlı dizinlerde aranır.

-n --no-php-ini

php.iniyi tamamen görmezden gel.

-d --define

php.inide izin verilen yapılandırma yönergelerinden herhangi birine özel değer atamanıza imkan verir. Söz dizimi:

-d ayar_yönergesi[=değer]

# Değer kısmını atlamak yapılandırma yönergesini "1" yapar
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Boş değer aktarınca yapılandırma yönergesinine "" atanır
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# Yapılandırma yönergesine '=' karakterinden sonra aktarılan değer atanır
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=herhangi_bir_sey
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "herhangi_bir_sey"

-e --profile-info

Hata ayıklayıcı/profilci için kullanılmak üzere genişletilmiş bilgi kipini etkinleştirir.

-f --file

Belirtilen dosya adını çözümler ve çalıştırır. -f seçeneği isteğe bağlıdır; verilmese de olur. Sadece çalıştırılacak dosya adını belirtmek yeterlidir.

-h ve -? --help ve --usage Komut satırı seçenekleri tek satırlık açıklamalarıyla listelenir.
-i --info phpinfo() işlevini çağırır ve sonuçları yazdırır. Eğer PHP doğru çalışmıyorsa, php -i komutunu kullanmanız ve bilgi tablolarından önce herhangi bir hata iletisi yazdırılmış mı diye bakmanız tavsiye edilir. CGI kipini kullanırken çıktının HTML biçiminde olacağını ve bu nedenle çok büyük ve karmaşık olacağını dikkate alınız.
-l --syntax-check

Bu seçenek verilen PHP kodunun sadece söz dizimini denetlemek için uygun bir yol sağlar. Başarı halinde, No syntax errors detected in <filename> metni standart çıktıya yazılır ve kabuk dönüş kodu 0 olur. Başarısızlık halinde, iç çözümleyici hatasına ilaveten Errors parsing <filename> metni standart çıktıya yazılır ve kabuk dönüş kodu -1 olur.

Bu seçenek ölümcül hataları bulamaz (tanımlanmamış işlevler gibi). Ölümcül hataları da denetlemek için -f seçeneğini kullanın.

Bilginize:

Bu seçenek -r seçeneği ile birlikte kullanılamaz.

-m --modules

Örnek 1 - Yerleşik (ve yüklü) PHP ve Zend modüllerinin listelenmesi

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

PHP'nin komut satırından çalıştırılmasına izin verir. PHP başlangıç ve bitiş etiketleri (<?php ve ?>) gerekmez ve eğer bulunurlarsa çözümleme hatasına neden olurlar.

Bilginize:

PHP'nin bu şekilde kullanımı halinde kabuk tarafından yapılan komut satırı değişken değişimleri ile çakışmamak için özen göstermek gerekir.

Örnek 2 - Çift tırnak kullanımında bir çözümleme hatasının gösterilmesi

$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='

Buradaki sorun sh/bash kabuklarının çift tırnak " kullanıldığında bile değişken değişimi yapmalarından kaynaklanır. $foo değişkeni kabukta tanımlanmış olmayacağı için, PHP'ye çalıştırılmak üzere aktarılan kodda hiçbir şey olarak yorumlanacaktır:

$ php -r " = get_defined_constants();"

Doğru yol tek tırnak ' kullanımıdır. Tek tırnak içindeki değişkenler sh/bash tarafından dönüştürülmezler.

Örnek 3 - Kabuğun değişken dönüşümü yapmasını engellemek için tek tırnakların kullanımı

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

Eğer sh/bash haricinde bir kabuk kullanıyorsanız, daha farklı sorunlarla karşılaşabilirsiniz. Bu gibi durumlarda » https://github.com/php/php-src/issues adresinde hata raporu açmaktan çekinmeyiniz. Kabuk değişkenlerini kodunuza almaya çalıştığınızda veya önceleme için ters bölü kullanımında sıkıntılar yaşayabilirsiniz.

Bilginize:

-r seçeneği CLI SAPI'de bulunur, CGI SAPI'de bulunmaz.

Bilginize:

Bu seçenek çok temel kodlar için tasarlanmıştır. Bazı yapılandırma yönergeleri (örn. auto_prepend_file ve auto_append_file) bu kipte görmezden gelinir.

-B --process-begin

Standart girdi işlenmeden çalıştırılacak PHP kodudur.

-R --process-code

Her girdi satırı için işletilecek PHP kodudur.

Bu kipte iki özel değişken bulunur: $argn ve $argi. $argn PHP'nin o anda işlediği satırı içerirken, $argi satır numarasını içerir.

-F --process-file

Her girdi satırı için işletilecek PHP dosyasıdır.

-E --process-end

Girdi işlendikten sonra işletilecek PHP kodudur.

Örnek 4 - Bir projedeki satır sayısını saymak için -B, -R ve -E seçeneklerinin kullanımı

$ find projem | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Toplam Satır Sayısı: $l\n";'
Toplam Satır Sayısı: 37328

-S --server

Yerleşik HTTP sunucusunu başlatır.

-t --docroot Yerleşik HTTP sunucusuna belge kökünü belirtir.
-s --syntax-highlight ve --syntax-highlighting

Renklendirilmiş söz dizimi ile kaynak gösterimi.

Bu seçenek dosyayı çözümlemek için içsel yöntemleri kullanır ve renklendirilmiş bir HTML sürümü üreterek standart çıktıya yazar. Bütün yaptığı HTML başlıkları olmadan <code> [...] </code> HTML etiketlerinden oluşan bir blok üretmektir.

Bilginize:

Bu seçenek -r seçeneği ile birlikte çalışmaz.

-v --version

Örnek 5 - PHP ve Zend sürümleri ile SAPI ismini çıktılamak için -v kullanımı

$ php -v
PHP 5.3.0alpha3-dev (cli) (built: Nov 13 2008 18:20:00)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2008 Zend Technologies

-w --strip

Kaynağı boşluklar ve yorumlardan arındırılmış olarak gösterir.

Bilginize:

Bu seçenek -r seçeneği ile birlikte çalışmaz.

-z --zend-extension

Zend eklentisini yükler. Eğer sadece dosya ismi verilirse, PHP bu eklentiyi sisteminizde geçerli öntanımlı kütüphane yolundan yüklemeye çalışır (Linux sistemlerde genellikle /etc/ld.so.conf dosyasında belirtilir). Dosya adı tam yol bilgisi ile aktarılırsa sistem kütüphanesi arama yolu kullanılmaz. Bir dizin bilgisiyle göreceli bir dosya ismi kullanımı PHP'ye sadece geçerli dizine göreceli eklentinin yüklenmesini söyler.

  --ini

Yapılandırma dosya isimlerini ve taranan dizinleri gösterir.

Örnek 6 - --ini örneği

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

--rf --rfunction

Verilen işlev veya sınıf yöntemi hakkında bilgi gösterir (örneğin, bağımsız değişken adlarını ve sayısını).

Bu seçenek sadece PHP Reflection desteği ile derlendiyse mevcuttur.

Örnek 7 - Temel --rf kullanımı

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}

--rc --rclass

Verilen sınıf hakkında bilgi gösterir (sabitler, özellikler ve yöntemler listesi).

Bu seçenek sadece PHP Reflection desteği ile derlendiyse mevcuttur.

Örnek 8 - --rc örneği

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}

--re --rextension

Verilen eklenti hakkında bilgi gösterir (php.ini seçenekleri, tanımlı işlevler, sabitler ve sınıflar listesi).

Bu seçenek sadece PHP Reflection desteği ile derlendiyse mevcuttur.

Örnek 9 - --re örneği

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}

--rz --rzendextension

Belirtilen Zend eklentisi için yapılandırma bilgisini gösterir (bu bilgi phpinfo() ile de elde edilebilir).

--ri --rextinfo

Verilen eklenti için yapılandırma bilgisini gösterir (phpinfo() ile aynı bilgiyi döndürür). Çekirdek yapılandırma bilgisi "main" eklenti adı kullanılarak bulunabilir.

Örnek 10 - --ri örneği

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2008.20
Timezone Database => internal
Default timezone => Europe/Helsinki

Directive => Local Value => Master Value
date.timezone => no value => no value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Bilginize:

Uzun seçenekler (--no-chdir gibi) PHP 4.3.3'ten beri kullanılabilmektedir.

Bilginize:

-rBRFEH, --ini ve --r[fcezi] seçenekleri sadece CLI'de kullanılabilir.

add a note add a note

User Contributed Notes 3 notes

up
1
dch
1 year ago
If you would like to see the PHP's current configuration using the -i switch from the shell command line with php.ini specified, then the order of arguments is important. Putting -i after -c gives the intended result.

Info is printed out for the default php.ini (cli)
$ php -i --php-ini /etc/php/7.4/fpm/php.ini | grep -i "loaded conf"
Loaded Configuration File => /etc/php/7.4/cli/php.ini

Info is printed out for the desired php.ini (fpm)
$ php --php-ini /etc/php/7.4/fpm/php.ini -i | grep -i "loaded conf"
Loaded Configuration File => /etc/php/7.4/fpm/php.ini
up
-1
Ap.Muthu
10 years ago
If we start the php's built in webserver (PHP v5.4 onwards) with:
        php -S localhost:8000 -t htdocs
and have an image file picture.jpg in it
and reference it in a html page with:
         <img src="picture.jpg">
the rendered page will not show the image and the html code behind the image is:
        http://localhost:8000/index.php/picture.jpg

If however, the html code in the page is:
         <img src="/picture.jpg">
the picture displays correctly.

Hence relative addressing is broken in PHP 5.4.33 Win32 VC9 build.
up
-21
yanshinian at yeah dot net
5 years ago
get ./configure

php -i |grep configure

Configure Command =>  './configure'  '--prefix=/app/webserver/php5' '--with-config-file-path=/app/webserver/php5/etc' '--with-config-file-scan-dir=/app/webserver/php5/etc/php.d' '--enable-inline-optimization' '--disable-debug' '--disable-rpath' '--enable-shared' '--enable-opcache' '--enable-fpm' '--with-fpm-user=appuser' '--with-fpm-group=appuser' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-gettext' '--enable-mbstring' '--enable-exif' '--enable-ftp' '--enable-wddx' '--with-iconv' '--with-mcrypt' '--with-mhash' '--with-openssl' '--enable-bcmath' '--enable-soap' '--with-libxml-dir' '--enable-pcntl' '--enable-shmop' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-sockets' '--enable-gd-native-ttf' '--enable-gd-jis-conv' '--enable-calendar' '--with-curl=/app/webserver/curl' '--with-zlib' '--enable-zip' '--with-bz2' '--with-readline' '--with-gd' '--with-freetype-dir' '--with-png-dir' '--with-jpeg-dir' '--with-vpx-dir' '--with-xpm-dir' '--with-t1lib' '--disable-json'
To Top