اليوم في ٠٣:٠٦
صاحب الموضوع
[B]Docker ortamında PHP ve Redis entegrasyonu, modern web uygulamalarında performans ve ölçeklenebilirlik açısından oldukça önemli hale gelmiştir. Bu konuyla ilgilenenler için, adım adım PHP ve Redis’i Docker kullanarak kurulum ve yapılandırma sürecini detaylandırmak faydalı olacaktır. Bu yöntemde, özellikle farklı ortamlar arasında tutarlılığı sağlamak ve geliştirme ile üretim aşamalarını kolaylaştırmak adına Docker’ın avantajlarından yararlanılır.
İlk olarak, Docker Compose kullanarak hem PHP hem de Redis hizmetlerini aynı ağda çalıştırmak en temiz ve yönetilebilir yol olur. Aşağıda temel bir docker-compose.yml örneği göreceksiniz:
123456789101112131415161718192021222324252627282930313233343536373839
version: '3.8'
services:
php:
image: php:8.2-apache
container_name: php_app
ports:
[list]
[*]"8080:80"
[/list]
volumes:
[list]
[*]./src:/var/www/html
[*]./php.ini:/usr/local/etc/php/php.ini
[/list]
environment:
[list]
[*]REDIS_HOST=redis
[/list]
depends_on:
[list]
[*]redis
[/list]
redis:
image: redis:7.0
container_name: redis_server
ports:
[list]
[*]"6379:6379"
[/list]
volumes:
[list]
[*]redis_data:/data
[/list]
volumes:
redis_data:
Bu yapılandırmada, PHP servisi Apache tabanlı olup, kodlarınızın bulunduğu dizinle bağlanmış. Redis ise resmi Redis imajı kullanılarak, 6379 portu üzerinden erişilebilir hale getirilmiş.
PHP tarafında Redis ile iletişim kurmak için, Composer ile
php-redis uzantısını yüklemek gerekir. Dockerfile veya doğrudan container içine bağlanarak şu komutla kurulum yapılabilir:
12345
docker exec -it php_app bash
apt-get update && apt-get install -y unzip
pecl install redis
docker-php-ext-enable redis
Artık, PHP kodlarınızda Redis’e bağlanmak için şu örneği kullanabilirsiniz:
12345
$redis = new Redis();
$redis->connect(getenv('REDIS_HOST'), 6379);
$redis->set('test', 'Merhaba Dünya');
echo $redis->get('test');
Bu yapı sayesinde, geliştirme ortamınızda PHP ve Redis’in birlikte sorunsuz çalışmasını sağlayabilirsiniz. Ayrıca, Docker Compose ile ortamı kolayca başlatıp durdurabilir, diğer projelere hızlıca uyarlayabilirsiniz. Bu entegrasyon, yüksek performans ve sürdürülebilirlik açısından modern web geliştirme süreçlerinde büyük avantaj sağlar.[/body]