Browse Source

docs: Turkish translation (#654)

* Add Turkish translated docs files

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
Mert Simsek 1 year ago
parent
commit
6a3db9429d
10 changed files with 560 additions and 8 deletions
  1. 1 1
      README.md
  2. 1 1
      docs/cn/README.md
  3. 4 1
      docs/cn/production.md
  4. 1 1
      docs/fr/README.md
  5. 5 2
      docs/fr/production.md
  6. 5 2
      docs/production.md
  7. 203 0
      docs/tr/CONTRIBUTING.md
  8. 77 0
      docs/tr/README.md
  9. 104 0
      docs/tr/compile.md
  10. 159 0
      docs/tr/config.md

+ 1 - 1
README.md

@@ -28,7 +28,7 @@ Go to `https://localhost`, and enjoy!
 
 > [!TIP]
 >
-> Do not attempt to use `https://127.0.0.1`. Use `localhost` and accept the self-signed certificate.
+> Do not attempt to use `https://127.0.0.1`. Use `https://localhost` and accept the self-signed certificate.
 > Use the [`SERVER_NAME` environment variable](docs/config.md#environment-variables) to change the domain to use.
 
 ### Standalone Binary

+ 1 - 1
docs/cn/README.md

@@ -28,7 +28,7 @@ docker run -v $PWD:/app/public \
 
 > [!TIP]
 >
-> 不要尝试使用 `https://127.0.0.1`。使用 `localhost` 并接受自签名证书。
+> 不要尝试使用 `https://127.0.0.1`。使用 `https://localhost` 并接受自签名证书。
 > 使用 [`SERVER_NAME` 环境变量](config.md#环境变量) 更改要使用的域。
 
 ### 独立二进制

+ 4 - 1
docs/cn/production.md

@@ -55,6 +55,7 @@ volumes:
 ```
 
 > [!NOTE]
+>
 > 前面的示例适用于生产用途。
 > 在开发中,你可能希望使用挂载目录,不同的 PHP 配置和不同的 `SERVER_NAME` 环境变量值。
 >
@@ -104,7 +105,8 @@ DigitalOcean 域服务示例(“Networking” > “Domains”):
 
 ![在 DigitalOcean 上配置 DNS](../digitalocean-dns.png)
 
-> [!NOTE]  
+> [!NOTE]
+>
 > Let's Encrypt 是 FrankenPHP 默认用于自动生成 TLS 证书的服务,不支持使用裸 IP 地址。使用域名是使用 Let's Encrypt 的必要条件。
 
 ## 部署
@@ -129,6 +131,7 @@ docker compose up -d --wait
 去 `https://your-domain-name.example.com` 享受吧!
 
 > [!CAUTION]
+>
 > Docker 有一个缓存层,请确保每个部署都有正确的构建,或者使用 --no-cache 选项重新构建项目以避免缓存问题。
 
 ## 在多个节点上部署

+ 1 - 1
docs/fr/README.md

@@ -28,7 +28,7 @@ Rendez-vous sur `https://localhost`, c'est parti !
 
 > [!TIP]
 >
-> Ne tentez pas d'utiliser `https://127.0.0.1`. Utilisez localhost et acceptez le certificat auto-signé.
+> Ne tentez pas d'utiliser `https://127.0.0.1`. Utilisez `https://localhost` et acceptez le certificat auto-signé.
 > Utilisez [la variable d'environnement `SERVER_NAME`](config.md#environment-variables) pour changer le domaine à utiliser.
 
 ### Binaire autonome

+ 5 - 2
docs/fr/production.md

@@ -53,7 +53,8 @@ volumes:
   caddy_config:
 ```
 
-> [!NOTE]  
+> [!NOTE]
+>
 > Les exemples précédents sont destinés à une utilisation en production.
 > En développement, vous pourriez vouloir utiliser un volume, une configuration PHP différente et une valeur différente pour la variable d'environnement `SERVER_NAME`.
 >
@@ -103,7 +104,8 @@ Exemple avec le service DigitalOcean Domains ("Networking" > "Domains") :
 
 ![Configurer les DNS sur DigitalOcean](../digitalocean-dns.png)
 
-> [!NOTE]  
+> [!NOTE]
+>
 > Let's Encrypt, le service utilisé par défaut par FrankenPHP pour générer automatiquement un certificat TLS, ne prend pas en charge l'utilisation d'adresses IP nues. L'utilisation d'un nom de domaine est obligatoire pour utiliser Let's Encrypt.
 
 ## Déploiement
@@ -128,6 +130,7 @@ Votre serveur est opérationnel, et un certificat HTTPS a été automatiquement
 Rendez-vous sur `https://your-domain-name.example.com` !
 
 > [!CAUTION]
+>
 > Docker peut avoir une couche de cache, assurez-vous d'avoir la bonne version de build pour chaque déploiement ou reconstruisez votre projet avec l'option `--no-cache` pour éviter les problèmes de cache.
 
 ## Déploiement sur Plusieurs Nœuds

+ 5 - 2
docs/production.md

@@ -54,7 +54,8 @@ volumes:
   caddy_config:
 ```
 
-> [!NOTE]  
+> [!NOTE]
+>
 > The previous examples are intended for production usage.
 > In development, you may want to use a volume, a different PHP configuration and a different value for the `SERVER_NAME` environment variable.
 >
@@ -104,7 +105,8 @@ Example with the DigitalOcean Domains service ("Networking" > "Domains"):
 
 ![Configuring DNS on DigitalOcean](digitalocean-dns.png)
 
-> [!NOTE]  
+> [!NOTE]
+>
 > Let's Encrypt, the service used by default by FrankenPHP to automatically generate a TLS certificate doesn't support using bare IP addresses. Using a domain name is mandatory to use Let's Encrypt.
 
 ## Deploying
@@ -129,6 +131,7 @@ Your server is up and running, and a HTTPS certificate has been automatically ge
 Go to `https://your-domain-name.example.com` and enjoy!
 
 > [!CAUTION]
+>
 > Docker can have a cache layer, make sure you have the right build for each deployment or rebuild your project with `--no-cache` option to avoid cache issue.
 
 ## Deploying on Multiple Nodes

+ 203 - 0
docs/tr/CONTRIBUTING.md

@@ -0,0 +1,203 @@
+# Katkıda Bulunmak
+
+## PHP Derleme
+
+### Docker ile (Linux)
+
+Geliştirme Ortamı için Docker İmajını Oluşturun:
+
+```console
+docker build -t frankenphp-dev -f dev.Dockerfile .
+docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 8080:8080 -p 443:443 -p 443:443/udp -v $PWD:/go/src/app -it frankenphp-dev
+```
+
+İmaj genel geliştirme araçlarını (Go, GDB, Valgrind, Neovim...) içerir.
+
+Docker sürümü 23.0'dan düşükse, derleme dockerignore [pattern issue](https://github.com/moby/moby/pull/42676) tarafından başarısız olur. Dizinleri `.dockerignore` dosyasına ekleyin.
+
+```patch
+ !testdata/*.php
+ !testdata/*.txt
++!caddy
++!C-Thread-Pool
++!internal
+```
+
+### Docker olmadan (Linux ve macOS)
+
+[Kaynaklardan derlemek için talimatları izleyin](https://frankenphp.dev/docs/compile/) ve `--debug` yapılandırma seçeneğini geçirin.
+
+## Test senaryolarını çalıştırma
+
+```console
+go test -race -v ./...
+```
+
+## Caddy modülü
+
+FrankenPHP Caddy modülü ile Caddy'yi oluşturun:
+
+```console
+cd caddy/frankenphp/
+go build
+cd ../../
+```
+
+Caddy'yi FrankenPHP Caddy modülü ile çalıştırın:
+
+```console
+cd testdata/
+../caddy/frankenphp/frankenphp run
+```
+
+Sunucu `127.0.0.1:8080` adresini dinliyor:
+
+```console
+curl -vk https://localhost/phpinfo.php
+```
+
+## Minimal test sunucusu
+
+Minimal test sunucusunu oluşturun:
+
+```console
+cd internal/testserver/
+go build
+cd ../../
+```
+
+Test sunucusunu çalıştırın:
+
+```console
+cd testdata/
+../internal/testserver/testserver
+```
+
+Sunucu `127.0.0.1:8080` adresini dinliyor:
+
+```console
+curl -v http://127.0.0.1:8080/phpinfo.php
+```
+
+## Docker İmajlarını Yerel Olarak Oluşturma
+
+Bake (pişirme) planını yazdırın:
+
+```console
+docker buildx bake -f docker-bake.hcl --print
+```
+
+Yerel olarak amd64 için FrankenPHP görüntüleri oluşturun:
+
+```console
+docker buildx bake -f docker-bake.hcl --pull --load --set "*.platform=linux/amd64"
+```
+
+Yerel olarak arm64 için FrankenPHP görüntüleri oluşturun:
+
+```console
+docker buildx bake -f docker-bake.hcl --pull --load --set "*.platform=linux/arm64"
+```
+
+FrankenPHP imajlarını arm64 ve amd64 için sıfırdan oluşturun ve Docker Hub'a gönderin:
+
+```console
+docker buildx bake -f docker-bake.hcl --pull --no-cache --push
+```
+
+## Statik Derlemelerle Segmentasyon Hatalarında Hata Ayıklama
+
+1. FrankenPHP binary dosyasının hata ayıklama sürümünü GitHub'dan indirin veya hata ayıklama seçeneklerini kullanarak özel statik derlemenizi oluşturun:
+
+    ```console
+    docker buildx bake \
+        --load \
+        --set static-builder.args.DEBUG_SYMBOLS=1 \
+        --set "static-builder.platform=linux/amd64" \
+        static-builder
+    docker cp $(docker create --name static-builder dunglas/frankenphp:static-builder):/go/src/app/dist/frankenphp-linux-$(uname -m) frankenphp
+    ```
+
+2. Mevcut `frankenphp` sürümünüzü hata ayıklama FrankenPHP çalıştırılabilir dosyasıyla değiştirin
+3. FrankenPHP'yi her zamanki gibi başlatın (alternatif olarak FrankenPHP'yi doğrudan GDB ile başlatabilirsiniz: `gdb --args ./frankenphp run`)
+4. GDB ile sürece bağlanın:
+
+    ```console
+    gdb -p `pidof frankenphp`
+    ```
+
+5. Gerekirse, GDB kabuğuna `continue` yazın
+6. FrankenPHP'nin çökmesini sağlayın
+7. GDB kabuğuna `bt` yazın
+8. Çıktıyı kopyalayın
+
+## GitHub Eylemlerinde Segmentasyon Hatalarında Hata Ayıklama
+
+1. `.github/workflows/tests.yml` dosyasını açın
+2. PHP hata ayıklama seçeneklerini etkinleştirin
+
+    ```patch
+        - uses: shivammathur/setup-php@v2
+          # ...
+          env:
+            phpts: ts
+    +       debug: true
+    ```
+
+3. Konteynere bağlanmak için `tmate`i etkinleştirin
+
+    ```patch
+        -
+          name: Set CGO flags
+          run: echo "CGO_CFLAGS=$(php-config --includes)" >> "$GITHUB_ENV"
+    +   -
+    +     run: |
+    +       sudo apt install gdb
+    +       mkdir -p /home/runner/.config/gdb/
+    +       printf "set auto-load safe-path /\nhandle SIG34 nostop noprint pass" > /home/runner/.config/gdb/gdbinit
+    +   -
+    +     uses: mxschmitt/action-tmate@v3
+    ```
+
+4. Konteynere bağlanın
+5. `frankenphp.go` dosyasını açın
+6. `cgosymbolizer`'ı etkinleştirin
+
+    ```patch
+    -	//_ "github.com/ianlancetaylor/cgosymbolizer"
+    +	_ "github.com/ianlancetaylor/cgosymbolizer"
+    ```
+
+7. Modülü indirin: `go get`
+8. Konteynerde GDB ve benzerlerini kullanabilirsiniz:
+
+    ```console
+    go test -c -ldflags=-w
+    gdb --args ./frankenphp.test -test.run ^MyTest$
+    ```
+
+9. Hata düzeltildiğinde, tüm bu değişiklikleri geri alın
+
+## Misc Dev Resources
+
+* [uWSGI içine PHP gömme](https://github.com/unbit/uwsgi/blob/master/plugins/php/php_plugin.c)
+* [NGINX Unit'te PHP gömme](https://github.com/nginx/unit/blob/master/src/nxt_php_sapi.c)
+* [Go (go-php) içinde PHP gömme](https://github.com/deuill/go-php)
+* [Go'da PHP gömme (GoEmPHP)](https://github.com/mikespook/goemphp)
+* [C++'da PHP gömme](https://gist.github.com/paresy/3cbd4c6a469511ac7479aa0e7c42fea7)
+* [Sara Golemon tarafından PHP'yi Genişletme ve Yerleştirme](https://books.google.fr/books?id=zMbGvK17_tYC&pg=PA254&lpg=PA254#v=onepage&q&f=false)
+* [TSRMLS_CC de neyin nesi?](http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html)
+* [Mac'te PHP gömme](https://gist.github.com/jonnywang/61427ffc0e8dde74fff40f479d147db4)
+* [SDL bağları](https://pkg.go.dev/github.com/veandco/go-sdl2@v0.4.21/sdl#Main)
+
+## Docker ile İlgili Kaynaklar
+
+* [Pişirme (bake) dosya tanımı](https://docs.docker.com/build/customize/bake/file-definition/)
+* [docker buildx build](https://docs.docker.com/engine/reference/commandline/buildx_build/)
+
+## Faydalı Komut
+
+```console
+apk add strace util-linux gdb
+strace -e 'trace=!futex,epoll_ctl,epoll_pwait,tgkill,rt_sigreturn' -p 1
+```

+ 77 - 0
docs/tr/README.md

@@ -0,0 +1,77 @@
+# FrankenPHP: PHP için Modern Uygulama Sunucusu
+
+<h1 align="center"><a href="https://frankenphp.dev"><img src="frankenphp.png" alt="FrankenPHP" width="600"></a></h1>
+
+FrankenPHP, [Caddy](https://caddyserver.com/) web sunucusunun üzerine inşa edilmiş PHP için modern bir uygulama sunucusudur.
+
+FrankenPHP, çarpıcı özellikleri sayesinde PHP uygulamalarınıza süper güçler kazandırır: [Early Hints*](https://frankenphp.dev/docs/early-hints/), [worker modu](https://frankenphp.dev/docs/worker/), [real-time yetenekleri](https://frankenphp.dev/docs/mercure/), otomatik HTTPS, HTTP/2 ve HTTP/3 desteği...
+
+FrankenPHP herhangi bir PHP uygulaması ile çalışır ve worker modu ile resmi entegrasyonları sayesinde Laravel ve Symfony projelerinizi her zamankinden daha performanslı hale getirir.
+
+FrankenPHP, PHP'yi `net/http` kullanarak herhangi bir uygulamaya yerleştirmek için bağımsız bir Go kütüphanesi olarak da kullanılabilir.
+
+[*Frankenphp.dev*](https://frankenphp.dev) adresinden ve bu slayt üzerinden daha fazlasını öğrenin:
+
+<a href="https://dunglas.dev/2022/10/frankenphp-the-modern-php-app-server-written-in-go/"><img src="https://dunglas.dev/wp-content/uploads/2022/10/frankenphp.png" alt="Slides" width="600"></a>
+
+## Başlarken
+
+### Docker
+
+```console
+docker run -v $PWD:/app/public \
+    -p 80:80 -p 443:443 -p 443:443/udp \
+    dunglas/frankenphp
+```
+
+`https://localhost` adresine gidin ve keyfini çıkarın!
+
+> [!TIP]
+>
+> `https://127.0.0.1` kullanmaya çalışmayın. `https://localhost` kullanın ve kendinden imzalı sertifikayı kabul edin.
+> Kullanılacak alan adını değiştirmek için [`SERVER_NAME` ortam değişkenini](docs/config.md#environment-variables) kullanın.
+
+### Binary Çıktısı
+
+Docker kullanmayı tercih etmiyorsanız, Linux ve macOS için bağımsız FrankenPHP binary dosyası sağlıyoruz
+[PHP 8.3](https://www.php.net/releases/8.3/en.php) ve en popüler PHP eklentilerini de içermekte: [FrankenPHP](https://github.com/dunglas/frankenphp/releases) indirin
+
+Geçerli dizinin içeriğini başlatmak için çalıştırın:
+
+```console
+./frankenphp php-server
+```
+
+Ayrıca aşağıdaki tek komut satırı ile de çalıştırabilirsiniz:
+
+```console
+./frankenphp php-cli /path/to/your/script.php
+```
+
+## Docs
+
+* [Worker modu](https://frankenphp.dev/docs/worker/)
+* [Early Hints desteği (103 HTTP durum kodu)](https://frankenphp.dev/docs/early-hints/)
+* [Real-time](https://frankenphp.dev/docs/mercure/)
+* [Konfigürasyon](https://frankenphp.dev/docs/config/)
+* [Docker imajları](https://frankenphp.dev/docs/docker/)
+* [Production'a dağıtım](docs/production.md)
+* [**Bağımsız** kendiliğinden çalıştırılabilir PHP uygulamaları oluşturma](https://frankenphp.dev/docs/embed/)
+* [Statik binary'leri oluşturma](https://frankenphp.dev/docs/static/)
+* [Kaynak dosyalarından derleme](https://frankenphp.dev/docs/compile/)
+* [Laravel entegrasyonu](https://frankenphp.dev/docs/laravel/)
+* [Bilinen sorunlar](https://frankenphp.dev/docs/known-issues/)
+* [Demo uygulama (Symfony) ve kıyaslamalar](https://github.com/dunglas/frankenphp-demo)
+* [Go kütüphane dokümantasonu](https://pkg.go.dev/github.com/dunglas/frankenphp)
+* [Katkıda bulunma ve hata ayıklama](https://frankenphp.dev/docs/contributing/)
+
+## Örnekler ve İskeletler
+
+* [Symfony](https://github.com/dunglas/symfony-docker)
+* [API Platform](https://api-platform.com/docs/distribution/)
+* [Laravel](https://frankenphp.dev/docs/laravel/)
+* [Sulu](https://sulu.io/blog/running-sulu-with-frankenphp)
+* [WordPress](https://github.com/dunglas/frankenphp-wordpress)
+* [Drupal](https://github.com/dunglas/frankenphp-drupal)
+* [Joomla](https://github.com/alexandreelise/frankenphp-joomla)
+* [TYPO3](https://github.com/ochorocho/franken-typo3)

+ 104 - 0
docs/tr/compile.md

@@ -0,0 +1,104 @@
+# Kaynak Kodlardan Derleme
+
+Bu doküman, PHP'yi dinamik bir kütüphane olarak yükleyecek bir FrankenPHP yapısının nasıl oluşturulacağını açıklamaktadır.
+Önerilen yöntem bu şekildedir.
+
+Alternatif olarak, [statik yapılar oluşturma](static.md) da mümkündür.
+
+## PHP'yi yükleyin
+
+FrankenPHP, PHP 8.2 ve üstü ile uyumludur.
+
+İlk olarak, [PHP'nin kaynaklarını edinin](https://www.php.net/downloads.php) ve bunları çıkarın:
+
+```console
+tar xf php-*
+cd php-*/
+```
+
+Ardından, PHP'yi platformunuz için yapılandırın:
+
+### Linux
+
+```console
+./configure \
+    --enable-embed \
+    --enable-zts \
+    --disable-zend-signals \
+    --enable-zend-max-execution-timers
+```
+
+Son olarak, PHP'yi derleyin ve kurun:
+
+```console
+make -j$(nproc)
+sudo make install
+```
+
+### Mac
+
+Yüklemek için [Homebrew](https://brew.sh/) paket yöneticisini kullanın
+`libiconv`, `bison`, `re2c` ve `pkg-config`:
+
+```console
+brew install libiconv bison re2c pkg-config
+echo 'export PATH="/opt/homebrew/opt/bison/bin:$PATH"' >> ~/.zshrc
+```
+
+Ardından yapılandırma betiğini çalıştırın:
+
+```console
+./configure \
+    --enable-embed=static \
+    --enable-zts \
+    --disable-zend-signals \
+    --disable-opcache-jit \
+    --enable-static \
+    --enable-shared=no \
+    --with-iconv=/opt/homebrew/opt/libiconv/
+```
+
+Bu şekilde yapılandırma gereklidir, ancak başka opsiyonlar da ekleyebilirsiniz (örn. ekstra uzantılar)
+İhtiyaç halinde.
+
+Son olarak, PHP'yi derleyin ve yükleyin:
+
+```console
+make -j$(sysctl -n hw.logicalcpu)
+sudo make install
+```
+
+## Go Uygulamasını Derleyin
+
+Artık Go kütüphanesini kullanabilir ve Caddy yapımızı derleyebilirsiniz:
+
+```console
+curl -L https://github.com/dunglas/frankenphp/archive/refs/heads/main.tar.gz | tar x
+cd frankenphp-main/caddy/frankenphp
+CGO_CFLAGS=$(php-config --includes) CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" go build
+```
+
+### Xcaddy kullanımı
+
+Alternatif olarak, FrankenPHP'yi [özel Caddy modülleri](https://caddyserver.com/docs/modules/) ile derlemek için [xcaddy](https://github.com/caddyserver/xcaddy) kullanın:
+
+```console
+CGO_ENABLED=1 \
+XCADDY_GO_BUILD_FLAGS="-ldflags '-w -s'" \
+xcaddy build \
+    --output frankenphp \
+    --with github.com/dunglas/frankenphp/caddy \
+    --with github.com/dunglas/mercure/caddy \
+    --with github.com/dunglas/vulcain/caddy
+    # Add extra Caddy modules here
+```
+
+> [!TIP]
+>
+> Eğer musl libc (Alpine Linux'ta varsayılan) ve Symfony kullanıyorsanız,
+> varsayılan yığın boyutunu artırmanız gerekebilir.
+> Aksi takdirde, şu tarz hatalar alabilirsiniz `PHP Fatal error: Maximum call stack size of 83360 bytes reached during compilation. Try splitting expression`
+>
+> Bunu yapmak için, `XCADDY_GO_BUILD_FLAGS` ortam değişkenini bu şekilde değiştirin
+> `XCADDY_GO_BUILD_FLAGS=$'-ldflags "-w -s -extldflags \'-Wl,-z,stack-size=0x80000\'"'`
+> (yığın boyutunun değerini uygulamanızın ihtiyaçlarına göre değiştirin).

+ 159 - 0
docs/tr/config.md

@@ -0,0 +1,159 @@
+# Konfigürasyon
+
+FrankenPHP, Caddy'nin yanı sıra Mercure ve Vulcain modülleri [Caddy tarafından desteklenen formatlar](https://caddyserver.com/docs/getting-started#your-first-config) kullanılarak yapılandırılabilir.
+
+Docker imajında, `Caddyfile` `/etc/caddy/Caddyfile` dosyası olarak bulunur.
+
+PHP'yi her zamanki gibi `php.ini` kullanarak da yapılandırabilirsiniz.
+
+Docker imajında `php.ini` dosyası mevcut değildir, elle oluşturabilir veya resmi bir şablonu kopyalayabilirsiniz:
+
+```dockerfile
+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
+```
+
+## Caddyfile Konfigürasyonu
+
+FrankenPHP yürütücüsünü kaydetmek için `frankenphp` [global seçenek](https://caddyserver.com/docs/caddyfile/concepts#global-options) ayarlanmalıdır, ardından PHP uygulamanızı sunmak için site blokları içinde `php_server` veya `php` [HTTP yönergeleri](https://caddyserver.com/docs/caddyfile/concepts#directives) kullanılabilir.
+
+Minimal örnek:
+
+```caddyfile
+{
+	# FrankenPHP'yi aktif et
+	frankenphp
+	# Yönergenin ne zaman yürütülmesi gerektiğini yapılandırma
+	order php_server before file_server
+}
+
+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
+}
+```
+
+İsteğe bağlı olarak, oluşturulacak iş parçacığı sayısı ve sunucuyla birlikte başlatılacak [işçi betikleri] (worker.md) global seçenek altında belirtilebilir.
+
+```caddyfile
+{
+	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:
+
+```caddyfile
+{
+	frankenphp {
+		worker <file> <num>
+	}
+}
+
+# ...
+```
+
+Aynı sunucuda birden fazla uygulamaya hizmet veriyorsanız birden fazla işçi de tanımlayabilirsiniz:
+
+```caddyfile
+{
+	frankenphp {
+		worker /path/to/app/public/index.php <num>
+		worker /path/to/other/public/index.php <num>
+	}
+}
+
+app.example.com {
+	root * /path/to/app/public
+	php_server
+}
+
+other.example.com {
+	root * /path/to/other/public
+	php_server
+}
+
+# ...
+```
+
+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:
+
+```caddyfile
+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_server` ve `php` yönergeleri aşağıdaki seçeneklere sahiptir:
+
+```caddyfile
+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.
+}
+```
+
+## Ortam Değişkenleri
+
+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](https://caddyserver.com/docs/caddyfile/concepts#addresses), sağlanan ana bilgisayar adları oluşturulan TLS sertifikası için de kullanılacaktır
+* `CADDY_GLOBAL_OPTIONS`: entegre edin [global seçenekler](https://caddyserver.com/docs/caddyfile/options)
+* `FRANKENPHP_CONFIG`: `frankenphp` yönergesi altına yapılandırma entegre edin
+
+FPM 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](https://www.php.net/manual/en/ini.core.php#ini.variables-order) `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.
+
+## PHP konfigürasyonu
+
+Ek olarak [PHP yapılandırma dosyalarını](https://www.php.net/manual/en/configuration.file.php#configuration.file.scan) 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.
+
+## Hata Ayıklama Modunu Etkinleştirin
+
+Docker imajını kullanırken, hata ayıklama modunu etkinleştirmek için `CADDY_GLOBAL_OPTIONS` ortam değişkenini `debug` olarak ayarlayın:
+
+```console
+docker run -v $PWD:/app/public \
+    -e CADDY_GLOBAL_OPTIONS=debug \
+    -p 80:80 -p 443:443 -p 443:443/udp \
+    dunglas/frankenphp
+```

Some files were not shown because too many files changed in this diff