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 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!
Alternatif olarak, Laravel projelerinizi FrankenPHP ile yerel makinenizden çalıştırabilirsiniz:
Aşağıdaki yapılandırmayı Laravel projenizin kök dizinindeki Caddyfile adlı 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
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: FrankenPHP Caddyfile dosyasının yolu (varsayılan: Laravel Octane içinde bulunan şablon 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 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ı kaydedinTip
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.
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.Dockerfile adı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.sh
Caution
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.
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.
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
Bu sayfayı düzenleyinCaution
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.