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.
Bir Yii web uygulamasını FrankenPHP ile sunmak, projeyi resmi Docker imajının /app dizinine bağlamak kadar kolaydır.
Bu komutu Yii uygulamanızın ana dizininden çalıştırın:
docker run -p 80:80 -p 443:443 -p 443:443/udp -v $PWD:/app dunglas/frankenphp
Ve tadını çıkarın!
Alternatif olarak Yii projelerinizi FrankenPHP ile yerel makinenizden çalıştırabilirsiniz:
Aşağıdaki yapılandırmayı Yii projenizin kök dizinindeki Caddyfile adlı bir dosyaya ekleyin:
{
frankenphp
}
# Sunucunuzun alan adı
localhost {
# Sıkıştırmayı etkinleştir (isteğe bağlı)
encode zstd br gzip
# public/ dizininden PHP dosyalarını çalıştırın ve varlıkları sunun
php_server {
root public/
try_files {path} index.php
}
}
FrankenPHP’yi Yii projenizin kök dizininden başlatın: frankenphp run
Yii uygulamanızı worker modunda çalıştırmak için Yii FrankenPHP runner paketini kurun:
composer require yiisoft/yii-runner-frankenphp
Ardından uygulamanızın kök dizininde worker.php adlı bir dosya oluşturun:
<?php
declare(strict_types=1);
use Yiisoft\Yii\Runner\FrankenPHP\FrankenPHPApplicationRunner;
require_once __DIR__ . '/vendor/autoload.php';
(new FrankenPHPApplicationRunner(rootPath: __DIR__))->run();
Uygulamayı worker modunda başlatmak için Caddyfile‘ınızı güncelleyin:
{
frankenphp
}
localhost {
encode zstd br gzip
php_server {
root public/
worker ./worker.php {
# Tüm istekleri worker'a gönder
match *
# PHP dosyaları değiştiğinde worker'ları yeniden yükle (yalnızca geliştirme)
watch ./**/*.php
}
}
}
Uygulamanız resmi Yii uygulama şablonuna dayanıyorsa; debug, ortam ve hata işleyici yapılandırması içeren eksiksiz bir worker.php örneği için paket readme dosyasına bakın.
Bir worker’ın yeniden başlatılmadan önce işlediği istek sayısını sınırlamak için (bellek sızıntılarını azaltmakta yararlıdır) MAX_REQUESTS ortam değişkenini ayarlayın. Varsayılan olarak worker’lar istekleri süresiz işler.
Worker modunu kullanırken durum tutan servislerin her istekten sonra sıfırlandığından emin olun. Ayrıntılar için worker modu belgelerine ve Yii DI StateResetter belgelerine bakın.