From b22bdd987bbd9a002bf787d60e554affa1d54feb Mon Sep 17 00:00:00 2001 From: Marc Date: Fri, 7 Nov 2025 10:27:37 +0100 Subject: [PATCH] update docs to remove old references to frankenphp:static-builder (#1950) * update docs to remove old references to frankenphp:static-builder (we have -musl and -gnu) * remove --platform and make gnu default * add --platform back in (let dunglas decide) * fix missed translations --- docs/cn/embed.md | 3 +- docs/cn/laravel.md | 3 +- docs/embed.md | 3 +- docs/fr/embed.md | 4 +- docs/fr/laravel.md | 3 +- docs/ja/embed.md | 3 +- docs/ja/laravel.md | 3 +- docs/laravel.md | 5 +- docs/pt-br/embed.md | 3 +- docs/pt-br/laravel.md | 3 +- docs/ru/embed.md | 3 +- docs/ru/laravel.md | 3 +- docs/tr/embed.md | 5 +- docs/tr/laravel.md | 127 +++++++++++++++++++++++++++++++--- static-builder-gnu.Dockerfile | 2 +- 15 files changed, 146 insertions(+), 27 deletions(-) diff --git a/docs/cn/embed.md b/docs/cn/embed.md index 4f2ab993..2ef8b936 100644 --- a/docs/cn/embed.md +++ b/docs/cn/embed.md @@ -54,7 +54,8 @@ composer dump-env prod 1. 在准备好的应用的存储库中创建一个名为 `static-build.Dockerfile` 的文件。 ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # 如果你打算在 glibc 系统上运行该二进制文件,请使用 static-builder-gnu # 复制应用代码 WORKDIR /go/src/app/dist/app diff --git a/docs/cn/laravel.md b/docs/cn/laravel.md index dc6e35b6..07fa646a 100644 --- a/docs/cn/laravel.md +++ b/docs/cn/laravel.md @@ -88,7 +88,8 @@ php artisan octane:frankenphp 1. 在您的应用程序的存储库中创建一个名为 `static-build.Dockerfile` 的文件: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # 如果你打算在 musl-libc 系统上运行该二进制文件,请使用 static-builder-musl # 复制你的应用 WORKDIR /go/src/app/dist/app diff --git a/docs/embed.md b/docs/embed.md index 51c94301..5c6befa1 100644 --- a/docs/embed.md +++ b/docs/embed.md @@ -54,7 +54,8 @@ The easiest way to create a Linux binary is to use the Docker-based builder we p 1. Create a file named `static-build.Dockerfile` in the repository of your app: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # If you intend to run the binary on musl-libc systems, use static-builder-musl instead # Copy your app WORKDIR /go/src/app/dist/app diff --git a/docs/fr/embed.md b/docs/fr/embed.md index 3d34537f..1523a392 100644 --- a/docs/fr/embed.md +++ b/docs/fr/embed.md @@ -56,13 +56,13 @@ La manière la plus simple de créer un binaire Linux est d'utiliser le builder 1. Créez un fichier nommé `static-build.Dockerfile` dans le répertoire de votre application préparée : ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Si vous envisagez d'exécuter le binaire sur des systèmes musl-libc, utilisez plutôt static-builder-musl # Copy your app WORKDIR /go/src/app/dist/app COPY . . - # Build the static binary, be sure to select only the PHP extensions you want WORKDIR /go/src/app/ RUN EMBED=dist/app/ ./build-static.sh ``` diff --git a/docs/fr/laravel.md b/docs/fr/laravel.md index 06f99ab3..82677aef 100644 --- a/docs/fr/laravel.md +++ b/docs/fr/laravel.md @@ -88,7 +88,8 @@ Suivez ces étapes pour empaqueter votre application Laravel en tant que binaire 1. Créez un fichier nommé `static-build.Dockerfile` dans le dépôt de votre application : ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Si vous avez l'intention d'exécuter le binaire sur des systèmes musl-libc, utilisez plutôt static-builder-musl # Copiez votre application WORKDIR /go/src/app/dist/app diff --git a/docs/ja/embed.md b/docs/ja/embed.md index 14bb9515..89b8b520 100644 --- a/docs/ja/embed.md +++ b/docs/ja/embed.md @@ -54,7 +54,8 @@ Linux用バイナリを作成する最も簡単な方法は、提供されてい 1. アプリのリポジトリに`static-build.Dockerfile`というファイルを作成します: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # バイナリをmusl-libcシステムで実行する場合は、static-builder-musl を使用してください # アプリをコピー WORKDIR /go/src/app/dist/app diff --git a/docs/ja/laravel.md b/docs/ja/laravel.md index 22a983ed..18e01e95 100644 --- a/docs/ja/laravel.md +++ b/docs/ja/laravel.md @@ -88,7 +88,8 @@ LaravelアプリをLinux用のスタンドアロンバイナリとしてパッ 1. アプリのリポジトリに`static-build.Dockerfile`という名前のファイルを作成します: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # バイナリをmusl-libcシステムで実行する場合は、static-builder-musl を使用してください # アプリをコピー WORKDIR /go/src/app/dist/app diff --git a/docs/laravel.md b/docs/laravel.md index 094622c4..c9083ef8 100644 --- a/docs/laravel.md +++ b/docs/laravel.md @@ -90,8 +90,9 @@ Follow these steps to package your Laravel app as a standalone binary for Linux: 1. Create a file named `static-build.Dockerfile` in the repository of your app: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder - + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # If you intend to run the binary on musl-libc systems, use static-builder-musl instead + # Copy your app WORKDIR /go/src/app/dist/app COPY . . diff --git a/docs/pt-br/embed.md b/docs/pt-br/embed.md index 41c34a78..36002f6c 100644 --- a/docs/pt-br/embed.md +++ b/docs/pt-br/embed.md @@ -66,7 +66,8 @@ Docker que fornecemos. aplicação: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Se você pretende executar o binário em sistemas musl-libc, use o static-builder-musl # Copia sua aplicação WORKDIR /go/src/app/dist/app diff --git a/docs/pt-br/laravel.md b/docs/pt-br/laravel.md index 340b85d2..05205c53 100644 --- a/docs/pt-br/laravel.md +++ b/docs/pt-br/laravel.md @@ -108,7 +108,8 @@ independente para Linux: aplicação: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Se você pretende executar o binário em sistemas musl-libc, use o static-builder-musl # Copia sua aplicação WORKDIR /go/src/app/dist/app diff --git a/docs/ru/embed.md b/docs/ru/embed.md index 1010a7fc..2ac91307 100644 --- a/docs/ru/embed.md +++ b/docs/ru/embed.md @@ -52,7 +52,8 @@ composer dump-env prod 1. Создайте файл `static-build.Dockerfile` в репозитории вашего приложения: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Если вы планируете запускать бинарный файл на системах с musl-libc, используйте static-builder-musl # Скопировать приложение WORKDIR /go/src/app/dist/app diff --git a/docs/ru/laravel.md b/docs/ru/laravel.md index bb8411c9..2b6caf90 100644 --- a/docs/ru/laravel.md +++ b/docs/ru/laravel.md @@ -85,7 +85,8 @@ php artisan octane:frankenphp 1. Создайте файл с именем `static-build.Dockerfile` в репозитории вашего приложения: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # Если вы планируете запускать бинарный файл на системах с musl-libc, используйте static-builder-musl # Скопируйте ваше приложение WORKDIR /go/src/app/dist/app diff --git a/docs/tr/embed.md b/docs/tr/embed.md index f42d60d6..e6f6d5da 100644 --- a/docs/tr/embed.md +++ b/docs/tr/embed.md @@ -46,7 +46,8 @@ Bir Linux binary çıktısı almanın en kolay yolu, sağladığımız Docker ta 1. Hazırladığınız uygulamanın deposunda `static-build.Dockerfile` adlı bir dosya oluşturun: ```dockerfile - FROM --platform=linux/amd64 dunglas/frankenphp:static-builder + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # İkili dosyayı musl-libc sistemlerinde çalıştırmayı düşünüyorsanız static-builder-musl kullanın # Uygulamanızı kopyalayın WORKDIR /go/src/app/dist/app @@ -55,7 +56,6 @@ Bir Linux binary çıktısı almanın en kolay yolu, sağladığımız Docker ta # Statik binary dosyasını oluşturun, yalnızca istediğiniz PHP eklentilerini seçtiğinizden emin olun WORKDIR /go/src/app/ RUN EMBED=dist/app/ \ - PHP_EXTENSIONS=ctype,iconv,pdo_sqlite \ ./build-static.sh ``` @@ -86,7 +86,6 @@ Docker kullanmak istemiyorsanız veya bir macOS binary dosyası oluşturmak isti git clone https://github.com/php/frankenphp cd frankenphp EMBED=/path/to/your/app \ - PHP_EXTENSIONS=ctype,iconv,pdo_sqlite \ ./build-static.sh ``` diff --git a/docs/tr/laravel.md b/docs/tr/laravel.md index 7aa55937..51cebea9 100644 --- a/docs/tr/laravel.md +++ b/docs/tr/laravel.md @@ -10,13 +10,13 @@ Bu komutu Laravel 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 ``` -And tadını çıkarın! +Ve tadını çıkarın! ## Yerel Kurulum Alternatif olarak, Laravel projelerinizi FrankenPHP ile yerel makinenizden çalıştırabilirsiniz: -1. [Sisteminize karşılık gelen binary dosyayı indirin](https://github.com/php/frankenphp/releases) +1. [Sisteminize karşılık gelen ikili dosyayı indirin](../#standalone-binary) 2. Aşağıdaki yapılandırmayı Laravel projenizin kök dizinindeki `Caddyfile` adlı bir dosyaya ekleyin: ```caddyfile @@ -30,8 +30,10 @@ Alternatif olarak, Laravel projelerinizi FrankenPHP ile yerel makinenizden çal root public/ # Sıkıştırmayı etkinleştir (isteğe bağlı) encode zstd br gzip - # PHP dosyalarını public/ dizininden çalıştırın ve varlıkları sunun - php_server + # public/ dizininden PHP dosyalarını çalıştırın ve statik dosyaları servis edin + php_server { + try_files {path} index.php + } } ``` @@ -64,11 +66,118 @@ php artisan octane:frankenphp - `--admin-port`: Yönetici sunucusunun erişilebilir olması gereken port (varsayılan: `2019`) - `--workers`: İstekleri işlemek için hazır olması gereken worker sayısı (varsayılan: `auto`) - `--max-requests`: Sunucu yeniden yüklenmeden önce işlenecek istek sayısı (varsayılan: `500`) -- `--caddyfile`: FrankenPHP `Caddyfile` dosyasının yolu +- `--caddyfile`: FrankenPHP `Caddyfile` dosyasının yolu (varsayılan: [Laravel Octane içinde bulunan şablon `Caddyfile`](https://github.com/laravel/octane/blob/2.x/src/Commands/stubs/Caddyfile)) - `--https`: HTTPS, HTTP/2 ve HTTP/3'ü etkinleştirin ve sertifikaları otomatik olarak oluşturup yenileyin -- `--http-redirect`: HTTP'den HTTPS'ye yeniden yönlendirmeyi etkinleştir (yalnızca --https geçilirse etkinleştirilir) -- `--watch`: Uygulamada kod değişikliği olduğunda sunucuyu otomatik olarak yeniden yükle +- `--http-redirect`: HTTP'den HTTPS'ye yeniden yönlendirmeyi etkinleştir (yalnızca --https ile birlikte geçilirse etkinleşir) +- `--watch`: Uygulama değiştirildiğinde sunucuyu otomatik olarak yeniden yükle - `--poll`: Dosyaları bir ağ üzerinden izlemek için izleme sırasında dosya sistemi yoklamasını kullanın -- `--log-level`: Belirtilen günlük seviyesinde veya üzerinde günlük mesajları +- `--log-level`: Yerel Caddy günlüğünü kullanarak belirtilen günlük seviyesinde veya üzerinde mesajları kaydedin -Laravel Octane hakkında daha fazla bilgi edinmek için [Laravel Octane resmi belgelerine](https://laravel.com/docs/octane) göz atın. +> [!TIP] +> Yapılandırılmış JSON günlükleri elde etmek için (log analitik çözümleri kullanırken faydalıdır), `--log-level` seçeneğini açıkça geçin. + +[Laravel Octane hakkında daha fazla bilgiyi resmi belgelerde bulabilirsiniz](https://laravel.com/docs/octane). + +## Laravel Uygulamalarını Bağımsız Çalıştırılabilir Dosyalar Olarak Dağıtma + +[FrankenPHP'nin uygulama gömme özelliğini](embed.md) kullanarak, Laravel +uygulamalarını bağımsız çalıştırılabilir dosyalar olarak dağıtmak mümkündür. + +Linux için Laravel uygulamanızı bağımsız bir çalıştırılabilir olarak paketlemek için şu adımları izleyin: + +1. Uygulamanızın deposunda `static-build.Dockerfile` adında bir dosya oluşturun: + + ```dockerfile + FROM --platform=linux/amd64 dunglas/frankenphp:static-builder-gnu + # İkiliyi musl-libc sistemlerinde çalıştırmayı düşünüyorsanız, bunun yerine static-builder-musl kullanın + + # Uygulamanızı kopyalayın + WORKDIR /go/src/app/dist/app + COPY . . + + # Yer kaplamamak için testleri ve diğer gereksiz dosyaları kaldırın + # Alternatif olarak, bu dosyaları bir .dockerignore dosyasına ekleyin + RUN rm -Rf tests/ + + # .env dosyasını kopyalayın + RUN cp .env.example .env + # APP_ENV ve APP_DEBUG değerlerini production için uygun hale getirin + RUN sed -i'' -e 's/^APP_ENV=.*/APP_ENV=production/' -e 's/^APP_DEBUG=.*/APP_DEBUG=false/' .env + + # Gerekirse .env dosyanıza diğer değişiklikleri yapın + + # Bağımlılıkları yükleyin + RUN composer install --ignore-platform-reqs --no-dev -a + + # Statik ikiliyi derleyin + WORKDIR /go/src/app/ + RUN EMBED=dist/app/ ./build-static.sh + ``` + + > [!CAUTION] + > Bazı `.dockerignore` dosyaları + > `vendor/` dizinini ve `.env` dosyalarını yok sayar. Derlemeden önce `.dockerignore` dosyasını buna göre ayarladığınızdan veya kaldırdığınızdan emin olun. + +2. İmajı oluşturun: + + ```console + docker build -t static-laravel-app -f static-build.Dockerfile . + ``` + +3. İkili dosyayı dışa aktarın: + + ```console + docker cp $(docker create --name static-laravel-app-tmp static-laravel-app):/go/src/app/dist/frankenphp-linux-x86_64 frankenphp ; docker rm static-laravel-app-tmp + ``` + +4. Önbellekleri doldurun: + + ```console + frankenphp php-cli artisan optimize + ``` + +5. Veritabanı migration'larını çalıştırın (varsa): + + ```console + frankenphp php-cli artisan migrate + ``` + +6. Uygulamanın gizli anahtarını oluşturun: + + ```console + frankenphp php-cli artisan key:generate + ``` + +7. Sunucuyu başlatın: + + ```console + frankenphp php-server + ``` + +Uygulamanız artık hazır! + +Mevcut seçenekler hakkında daha fazla bilgi edinin ve diğer işletim sistemleri için nasıl ikili derleneceğini [uygulama gömme](embed.md) +belgelerinde öğrenin. + +### Depolama Yolunu Değiştirme + +Varsayılan olarak, Laravel yüklenen dosyaları, önbellekleri, logları vb. uygulamanın `storage/` dizininde saklar. +Gömülü uygulamalar için bu uygun değildir, çünkü her yeni sürüm farklı bir geçici dizine çıkarılacaktır. + +Geçici dizin dışında bir dizin kullanmak için `LARAVEL_STORAGE_PATH` ortam değişkenini ayarlayın (örneğin, `.env` dosyanızda) veya `Illuminate\Foundation\Application::useStoragePath()` metodunu çağırın. + +### Bağımsız Çalıştırılabilir Dosyalarla Octane'i Çalıştırma + +Laravel Octane uygulamalarını bağımsız çalıştırılabilir dosyalar olarak paketlemek bile mümkündür! + +Bunu yapmak için, [Octane'i doğru şekilde kurun](#laravel-octane) ve [önceki bölümde](#laravel-uygulamalarını-bağımsız-çalıştırılabilir-dosyalar-olarak-dağıtma) açıklanan adımları izleyin. + +Ardından, Octane üzerinden FrankenPHP'yi worker modunda başlatmak için şunu çalıştırın: + +```console +PATH="$PWD:$PATH" frankenphp php-cli artisan octane:frankenphp +``` + +> [!CAUTION] +> Komutun çalışması için, bağımsız ikili dosya mutlaka `frankenphp` olarak adlandırılmış olmalıdır, +> çünkü Octane, yol üzerinde `frankenphp` adlı bir programın mevcut olmasını bekler. diff --git a/static-builder-gnu.Dockerfile b/static-builder-gnu.Dockerfile index 05fd1a6f..efc30d47 100644 --- a/static-builder-gnu.Dockerfile +++ b/static-builder-gnu.Dockerfile @@ -29,7 +29,7 @@ ENV GOTOOLCHAIN=local SHELL ["/bin/bash", "-o", "pipefail", "-c"] -# labels, same as static-builder.Dockerfile +# labels, same as static-builder-musl.Dockerfile LABEL org.opencontainers.image.title=FrankenPHP LABEL org.opencontainers.image.description="The modern PHP app server" LABEL org.opencontainers.image.url=https://frankenphp.dev