Bu sayfa topluluk tarafından çevrilmiştir ve güncel olmayabilir. Referans versiyonuna (İngilizce) bakın.
Bu sayfa topluluk tarafından çevrilmiştir ve güncel olmayabilir. Referans versiyonuna (İngilizce) bakın.
Bu sayfa topluluk tarafından çevrilmiştir ve güncel olmayabilir. Referans versiyonuna (İngilizce) bakın.
# Konfigürasyon
FrankenPHP, Caddy’nin yanı sıra Mercure ve Vulcain modülleri Caddy tarafından desteklenen formatlar kullanılarak yapılandırılabilir.
Docker imajlarında] (docker.md), Caddyfile
/etc/frankenphp/Caddyfile
adresinde bulunur.
Statik ikili, başlatıldığı dizinde Caddyfile
dosyasını arayacaktır.
PHP’nin kendisi bir php.ini
dosyası kullanılarak yapılandırılabilir.
PHP yorumlayıcısı aşağıdaki konumlarda arama yapacaktır:
Docker:
/usr/local/etc/php/php.ini
Varsayılan olarak php.ini sağlanmaz./usr/local/etc/php/conf.d/*.ini
/usr/local/lib/php/extensions/no-debug-zts-<YYYYMMDD>/
FROM dunglas/frankenphp
# Developement:
RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
# Veya production:
RUN cp $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini
FrankenPHP kurulumu (.rpm veya .deb):
/etc/frankenphp/php.ini
Varsayılan olarak üretim ön ayarlarına sahip bir php.ini dosyası sağlanır./etc/frankenphp/php.d/*.ini
/usr/lib/frankenphp/modules/
Statik ikili:
frankenphp run
veya frankenphp php-server
komutunun çalıştırıldığı dizin, ardından /etc/frankenphp/php.ini
/etc/frankenphp/php.d/*.ini
php.ini-production
veya php.ini-development
dosyalarından birini kopyalayın.PHP uygulamanızı sunmak için site blokları içinde php_server
veya php
HTTP yönergeleri kullanılabilir.
Minimal örnek:
localhost {
# Sıkıştırmayı etkinleştir (isteğe bağlı)
encode zstd br gzip
# Geçerli dizindeki PHP dosyalarını çalıştırın ve varlıkları sunun
php_server
}
FrankenPHP’yi global seçenek kullanarak açıkça yapılandırabilirsiniz:
frankenphp
global seçenek FrankenPHP’yi yapılandırmak için kullanılabilir.
{
frankenphp {
num_threads <num_threads> # Başlatılacak PHP iş parçacığı sayısını ayarlar. Varsayılan: Mevcut CPU çekirdek sayısının 2 katı.
worker {
file <path> # Çalışan komut dosyasının yolunu ayarlar.
num <num> # Başlatılacak PHP iş parçacığı sayısını ayarlar, varsayılan değer mevcut CPU çekirdek sayısının 2 katıdır.
env <key> <value> # Ek bir ortam değişkenini verilen değere ayarlar. Birden fazla ortam değişkeni için birden fazla kez belirtilebilir.
}
}
}
# ...
Alternatif olarak, worker
seçeneğinin tek satırlık kısa formunu kullanabilirsiniz:
{
frankenphp {
worker <file> <num>
}
}
# ...
Aynı sunucuda birden fazla uygulamaya hizmet veriyorsanız birden fazla işçi de tanımlayabilirsiniz:
app.example.com {
php_server {
root /path/to/app/public
worker index.php <num>
}
}
other.example.com {
php_server {
root /path/to/other/public
worker index.php <num>
}
}
# ...
Genellikle ihtiyacınız olan şey php_server
yönergesini kullanmaktır,
ancak tam kontrole ihtiyacınız varsa, daha düşük seviyeli php
yönergesini kullanabilirsiniz:
php_server` yönergesini kullanmak bu yapılandırmay ile aynıdır:
route {
# Dizin istekleri için sondaki eğik çizgiyi, diğer adıyla taksim işaretini ekleyin
@canonicalPath {
file {path}/index.php
not path */
}
redir @canonicalPath {path}/ 308
# İstenen dosya mevcut değilse, dizin dosyalarını deneyin
@indexFiles file {
try_files {path} {path}/index.php index.php
split_path .php
}
rewrite @indexFiles {http.matchers.file.relative}
# FrankenPHP!
@phpFiles path *.php
php @phpFiles
file_server
}
php_serverve
php` yönergeleri aşağıdaki seçeneklere sahiptir:
php_server [<matcher>] {
root <directory> # Sitenin kök klasörünü ayarlar. Öntanımlı: `root` yönergesi.
split_path <delim...> # URI'yi iki parçaya bölmek için alt dizgeleri ayarlar. İlk eşleşen alt dizge "yol bilgisini" yoldan ayırmak için kullanılır. İlk parça eşleşen alt dizeyle sonlandırılır ve gerçek kaynak (CGI betiği) adı olarak kabul edilir. İkinci parça betiğin kullanması için PATH_INFO olarak ayarlanacaktır. Varsayılan: `.php`
resolve_root_symlink false # Varsa, sembolik bir bağlantıyı değerlendirerek `root` dizininin gerçek değerine çözümlenmesini devre dışı bırakır (varsayılan olarak etkindir).
env <key> <value> # Ek bir ortam değişkenini verilen değere ayarlar. Birden fazla ortam değişkeni için birden fazla kez belirtilebilir.
file_server off # Yerleşik file_server yönergesini devre dışı bırakır.
worker { # Bu sunucuya özgü bir worker oluşturur. Birden fazla worker için birden fazla kez belirtilebilir.
file <path> # Worker betiğinin yolunu ayarlar, php_server köküne göre göreceli olabilir
num <num> # Başlatılacak PHP iş parçacığı sayısını ayarlar, varsayılan değer mevcut CPU çekirdek sayısının 2 katıdır
name <name> # Worker için günlüklerde ve metriklerde kullanılan bir ad ayarlar. Varsayılan: worker dosyasının mutlak yolu. Bir php_server bloğunda tanımlandığında her zaman m# ile başlar.
watch <path> # Dosya değişikliklerini izlemek için yolu ayarlar. Birden fazla yol için birden fazla kez belirtilebilir.
env <key> <value> # Ek bir ortam değişkenini verilen değere ayarlar. Birden fazla ortam değişkeni için birden fazla kez belirtilebilir. Bu worker için ortam değişkenleri ayrıca php_server üst öğesinden devralınır, ancak burada geçersiz kılınabilir.
}
worker <other_file> <num> # Global frankenphp bloğundaki gibi kısa formu da kullanabilirsiniz.
}
Aşağıdaki ortam değişkenleri Caddyfile
içinde değişiklik yapmadan Caddy yönergelerini entegre etmek için kullanılabilir:
SERVER_NAME
: değiştirin dinlenecek adresleri, sağlanan ana bilgisayar adları oluşturulan TLS sertifikası için de kullanılacaktırCADDY_GLOBAL_OPTIONS
: entegre edin global seçeneklerFRANKENPHP_CONFIG
: frankenphp
yönergesi altına yapılandırma entegre edinFPM ve CLI SAPI’lerinde olduğu gibi, ortam değişkenleri varsayılan olarak $_SERVER
süper globalinde gösterilir.
variables_order
‘a ait PHP yönergesinin S
değeri bu yönergede E
‘nin başka bir yere yerleştirilmesinden bağımsız olarak her zaman ES
ile eş değerdir.
Ek olarak PHP yapılandırma dosyalarını yüklemek için
PHP_INI_SCAN_DIR
ortam değişkeni kullanılabilir.
Ayarlandığında, PHP verilen dizinlerde bulunan .ini
uzantılı tüm dosyaları yükleyecektir.
Docker imajını kullanırken, hata ayıklama modunu etkinleştirmek için CADDY_GLOBAL_OPTIONS
ortam değişkenini debug
olarak ayarlayın:
docker run -v $PWD:/app/public \
-e CADDY_GLOBAL_OPTIONS=debug \
-p 80:80 -p 443:443 -p 443:443/udp \
dunglas/frankenphp