Swoole’u Nginx ile birleştirmek ve Docker üzerinde çalıştırmak için aşağıdaki adımları takip edebilirsiniz. Bu örnek, basit bir Laravel uygulamasını içermektedir. Dilerseniz bu adımları kendi projenize uygun şekilde uyarlayabilirsiniz.
- Laravel ve Swoole Kurulumu: Önce Laravel projesi oluşturun ve Swoole’ü ekleyin:
composer create-project --prefer-dist laravel/laravel example
cd example
composer require swooletw/laravel-swoole
- Dockerfile Oluşturma: Proje kök dizinine bir
Dockerfile
oluşturun:
FROM php:8.0
WORKDIR /var/www/html
RUN apt-get update && apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-install zip
COPY . .
RUN composer install
EXPOSE 1215
CMD ["php", "artisan", "swoole:http", "start"]
- docker-compose.yml Oluşturma: Proje kök dizinine bir
docker-compose.yml
dosyası ekleyin:
version: '3'
services:
app:
build:
context: .
ports:
- "8000:1215"
Bu dosya, Nginx’i şu anda içermiyor çünkü Swoole, HTTP sunucu olarak çalışırken Nginx gibi bir reverse proxy’ye ihtiyaç duymayabilir.
- Nginx Konfigürasyonu: Proje kök dizinine bir
nginx.conf
dosyası ekleyin:
server {
listen 80;
server_name example.com;
root /var/www/html/public;
location / {
try_files $uri /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass app:1215; # Swoole portu
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
}
- docker-compose.yml Güncelleme:
docker-compose.yml
dosyasını güncelleyerek Nginx servisini ekleyin:
version: '3'
services:
app:
build:
context: .
ports:
- "1215:1215"
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./example:/var/www/html
depends_on:
- app
- Uygulamayı Çalıştırma: Terminalde proje dizininde şu komutları çalıştırarak Docker container’larını başlatın:
docker-compose build
docker-compose up -d
Artık uygulamanız http://example.com
üzerinden erişilebilir.
Bu örnek, Swoole’u Docker içinde çalıştırmak ve Nginx ile birleştirmek için temel bir başlangıçtır. Projelerinizin gereksinimlerine göre bu konfigürasyonu özelleştirebilirsiniz.
İlk Yorumu Siz Yapın