* feat: mercure_publish() PHP function to dispatch Mercure updates * fix stubs for old versions * review * cleanup and fixes
6.9 KiB
Laravel
Docker
Bir Laravel web uygulamasını FrankenPHP ile çalıştırmak, projeyi resmi Docker imajının /app dizinine monte etmek kadar kolaydır.
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
Ve tadını çıkarın!
Yerel Kurulum
Alternatif olarak, Laravel projelerinizi FrankenPHP ile yerel makinenizden çalıştırabilirsiniz:
-
Aşağıdaki yapılandırmayı Laravel projenizin kök dizinindeki
Caddyfileadlı bir dosyaya ekleyin:{ frankenphp } # Sunucunuzun alan adı localhost { # Webroot'u public/ dizinine ayarlayın root public/ # Sıkıştırmayı etkinleştir (isteğe bağlı) encode zstd br gzip # public/ dizininden PHP dosyalarını çalıştırın ve statik dosyaları servis edin php_server { try_files {path} index.php } } -
FrankenPHP'yi Laravel projenizin kök dizininden başlatın:
frankenphp run
Laravel Octane
Octane, Composer paket yöneticisi aracılığıyla kurulabilir:
composer require laravel/octane
Octane'ı kurduktan sonra, Octane'ın yapılandırma dosyasını uygulamanıza yükleyecek olan octane:install Artisan komutunu çalıştırabilirsiniz:
php artisan octane:install --server=frankenphp
Octane sunucusu octane:frankenphp Artisan komutu aracılığıyla başlatılabilir.
php artisan octane:frankenphp
octane:frankenphp komutu aşağıdaki seçenekleri alabilir:
--host: Sunucunun bağlanması gereken IP adresi (varsayılan:127.0.0.1)--port: Sunucunun erişilebilir olması gereken port (varsayılan:8000)--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: FrankenPHPCaddyfiledosyasının yolu (varsayılan: Laravel Octane içinde bulunan şablonCaddyfile)--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 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: Yerel Caddy günlüğünü kullanarak belirtilen günlük seviyesinde veya üzerinde mesajları kaydedin
Tip
Yapılandırılmış JSON günlükleri elde etmek için (log analitik çözümleri kullanırken faydalıdır),
--log-levelseçeneğini açıkça geçin.
Laravel Octane hakkında daha fazla bilgiyi resmi belgelerde bulabilirsiniz.
Laravel Uygulamalarını Bağımsız Çalıştırılabilir Dosyalar Olarak Dağıtma
FrankenPHP'nin uygulama gömme özelliğini 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:
-
Uygulamanızın deposunda
static-build.Dockerfileadında bir dosya oluşturun: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.shCaution
Bazı
.dockerignoredosyalarıvendor/dizinini ve.envdosyalarını yok sayar. Derlemeden önce.dockerignoredosyasını buna göre ayarladığınızdan veya kaldırdığınızdan emin olun. -
İmajı oluşturun:
docker build -t static-laravel-app -f static-build.Dockerfile . -
İkili dosyayı dışa aktarın:
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 -
Önbellekleri doldurun:
frankenphp php-cli artisan optimize -
Veritabanı migration'larını çalıştırın (varsa):
frankenphp php-cli artisan migrate -
Uygulamanın gizli anahtarını oluşturun:
frankenphp php-cli artisan key:generate -
Sunucuyu başlatın:
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 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 ve önceki bölümde açıklanan adımları izleyin.
Ardından, Octane üzerinden FrankenPHP'yi worker modunda başlatmak için şunu çalıştırın:
PATH="$PWD:$PATH" frankenphp php-cli artisan octane:frankenphp
Caution
Komutun çalışması için, bağımsız ikili dosya mutlaka
frankenphpolarak adlandırılmış olmalıdır, çünkü Octane, yol üzerindefrankenphpadlı bir programın mevcut olmasını bekler.