Raspberry Pi Caddy Web Sunucusu Nasıl Kurulur
Bu yazı, PiMyLifeUp - How to Setup a Raspberry Pi Caddy Web Server kaynağından Türkçe'ye çevrilerek hazırlanmıştır.
Bu projede, bir Raspberry Pi Caddy web sunucusunu nasıl kuracağınızı göstereceğiz.

Caddy, Raspberry Pi'de NGINX kadar performans dostu olmasa da, kullanıcı dostu özelliklerle doludur ve kutudan çıktığı gibi modern web teknolojilerini kullanacak şekilde tasarlanmıştır.
Caddy, baştan itibaren HTTP2 gibi modern web teknolojilerini kullanır ve Caddy dosyalarınız aracılığıyla kurduğunuz herhangi bir alan adı için otomatik olarak SSL sertifikaları sağlar. Bunu, bu sertifikaları Lets Encrypt'ten otomatik olarak alarak yapar.
Caddy'nin Caddyfile sisteminin bir bonusu, alıştıktan sonra kullanımının nispeten kolay olmasıdır ve neyse ki, çoğu özellik için sağlam belgeleri vardır.
Raspberry Pi'de Caddy Ayarlama
1. Raspberry Pi'mizde Caddy'yi kurmaya ve ayarlamaya başlamadan önce yapmamız gereken bir şey, her şeyin güncel olduğundan emin olmaktır.
Raspberry Pi'nizin paketlerini en son sürümlerine güncellemek için aşağıdaki iki komutu çalıştırın.
sudo apt update
sudo apt upgrade
2. Raspberry Pi Caddy web sunucumuzu kurmaya başlamadan önce, önce bazı Raspberry Pi OS kopyalarında varsayılan olarak kurulu olan Apache2'yi kaldırmamız gerekecek.
Raspberry Pi'de Apache2'nin kurulu olmadığını zaten biliyorsanız, bu komutu atlayıp bir sonraki adıma geçebilirsiniz.
sudo apt remove apache2
3. Şimdi Caddy'yi indirmek ve kurmak için terminalde aşağıdaki komutları çalıştırabiliriz. Bu komutlar ayrıca Caddy web sitesinde de mevcuttur.
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
4. Caddy web sunucumuzun Raspberry Pi'mize indirilip kurulması bittikten sonra, onu ayarlamanın daha karmaşık görevine başlayabiliriz.
Raspberry Pi'mizde aşağıdaki komutu çalıştırarak önce Caddy yapılandırma dosyamızı tutacağımız /etc/ klasöründe bir klasör oluşturalım.
sudo mkdir /etc/caddy
5. Klasör oluşturmakla meşgulken, ilk web sitemizi tutmak için de bir tane oluşturacağız. Şimdilik ona localhost adını vereceğiz.
Ancak, bunu bir alan adı için kullanmak istiyorsanız, localhost klasör adını pimylifeup.com gibi web sitesi alan adınızla değiştirmenizi öneririz.
sudo mkdir -p /var/www/localhost
6. Raspberry Pi'mizde her iki klasörümüz de oluşturulduğuna göre, artık ilginç kısma geçebiliriz, o da caddyfile'ımızı oluşturmaktır. Bu dosya, Raspberry Pi Caddy web sunucumuz için tüm yapılandırmalarımızı tutacaktır.
Bu dosyayı daha önce oluşturduğumuz /etc/caddy klasöründe saklayacağız.
Caddyfile'ımızı oluşturma sürecini başlatmak için Raspberry Pi'mizde aşağıdaki nano komutunu çalıştırın.
sudo nano /etc/caddy/Caddyfile
7. Bu dosyaya aşağıdaki satırları yazın, temel olarak bu metin satırlarının yaptığı şey, dinlenecek adresi, sunmak istediğimiz dosyaların nerede olduğunu tanımlamak ve Caddy'nin HTML çıktısında GZIP sıkıştırmasını kullanmak istememizdir.
localhost kısmını daha önce oluşturduğunuz klasörün adıyla değiştirmeyi unutmayın.
Bir alan adı kullanıyorsanız, :80 localhost:80 kısmını onunla değiştirin, yani, örneğin, satır pimylifeup.com { şeklinde sonuçlanacaktır.
:80 localhost:80 {
root /var/www/localhost
gzip
}
Bunu yapmayı bitirdiğinizde, CTRL + X, ardından Y, son olarak ENTER tuşuna basarak dosyayı kaydedip çıkabilirsiniz.
8. Caddyfile'ımız artık kurulduğuna göre, hala çalıştığından emin olmak için örnek bir HTML dosyası oluşturmaya geçeceğiz. PHP kurarken Caddyfile'ımızı düzenlemeye biraz daha geri döneceğiz.
Şimdilik, aşağıdaki komutu çalıştırarak test index dosyamızı oluşturalım. Yine localhost kısmını daha önce ayarladığınız her neyse onunla değiştirin.
sudo nano /var/www/localhost/index.html
9. Bu dosyaya herhangi bir şey yazın, çünkü tek ihtiyacımız olan şey doğru çalıştığından emin olmaktır. Eğitimimiz için, sadece bu küçük HTML parçasını yazacağız.
<h1>This is a test for pimylifeup.com</h1>
Bunu yaptıktan sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak kaydedip çıkabilirsiniz.
10. Raspberry Pi'mizde Caddy web sunucusunu başlatmak için, yapmamız gereken tek şey terminale aşağıdaki komutları yazmaktır.
cd /etc/caddy
caddy run
11. Şimdi Raspberry Pi'nizin yerel IP adresine göz atın veya Pi'nin kendisinde localhost'a gidin. Raspberry Pi'nizin yerel IP adresinin ne olduğundan emin değilseniz hostname -I komutunu kullanabilirsiniz.
Eğitimimizi takip ettiyseniz, "This is a test for pimylifeup.com" metnini görmelisiniz.
12. Çalıştığını doğruladıktan sonra, programı sonlandırmak için CTRL + C tuşuna basın.
Caddy Web Sunucusu için PHP Kurma
Şimdi Raspberry Pi Caddy web sunucumuz için PHP kurmaya geçebiliriz. Bunu yapmak için, PHP-FPM kullanacağız.
13. Bu adım için, Raspberry Pi'mize PHP-FPM'i kuracağız. Ayrıca çok sayıda PHP script'i tarafından gerektirilen bazı ek PHP modülleri de kuracağız.
Bu eğitime devam etmeden önce, Raspberry Pi OS Bullseye veya daha yenisini çalıştırıyor olmalısınız. Rehberimizde Raspberry Pi OS Buster'dan Bullseye'a nasıl yükseltileceğini öğrenebilirsiniz.
Şimdi Raspberry Pi'nize "php8.3-fpm" ve diğer birkaç kullanışlı PHP modülünü kurmak için aşağıdaki komutu çalıştırın.
sudo apt install php8.3-fpm php8.3-mbstring php8.3-mysql php8.3-curl php8.3-gd php8.3-curl php8.3-zip php8.3-xml -y
PHP 8.3'ü içermeyen bir Raspberry Pi OS sürümü çalıştırıyorsanız, lütfen üçüncü taraf bir PHP deposu ekleme rehberimizi takip edin. Bu depo, PHP'nin hem yeni hem de eski sürümlerini içerir.
14. PHP-FPM artık Raspberry Pi'mize kurulduğuna göre, Caddy web sunucumuzu onu kullanacak şekilde yapılandırmaya devam edebiliriz, bunu yapmak için Caddyfile'ımızı tekrar açmamız gerekecek.
Dosyayı düzenlemeye başlamak için aşağıdaki komutu çalıştırın.
sudo nano /etc/caddy/Caddyfile
15. Bu dosyaya aşağıdaki satırları eklemek istiyoruz, bu satırlar Caddy web sunucumuza PHP-FPM'i fastcgi handler'ı olarak kullanmasını söyleyecek.
Ayrıca index.php dosyalarını index olarak okumasını söyler ve PHP ile düzgün çalışması için URL isteklerini yeniden yazan birkaç satır daha ekleriz.
Bulun
root /var/www/localhost
gzip
Altına Ekleyin
fastcgi / /var/run/php/php8.3-fpm.sock {
index index.php
}
rewrite {
r .*
ext /
to /index.php?{query}
}
Bitirdiğinizde, CTRL + X, ardından Y, son olarak ENTER tuşuna basarak kaydedip çıkın.
16. Bu artık kaydedildiğine göre, PHP-FPM'in "index.php" dosyamızı yorumlayabilmesi için birkaç dosyanın iznini değiştirmemiz gerekiyor, ayrıca servis dosyamızı kurmak için de bunu yapmamız gerekiyor.
Web ile ilgili dosyalarımız üzerinde www-data kullanıcısına ve grubuna kontrol vermek ve ilgili okuma/yazma/çalıştırma izinlerini atamak için Raspberry Pi'nizde aşağıdaki Linux izin komutlarını çalıştırın.
sudo chown -R root:www-data /etc/caddy
sudo chown www-data:www-data /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
sudo chown -R www-data:www-data /var/www
sudo chmod -R 555 /var/www
17. Artık Caddy dosyalarımız için okuma/yazma izinlerini ve dosya sahipliğini düzelttiğimize göre, sonunda Caddy servisimizi de oluşturabiliriz. Caddy servisini indirip kurmak için aşağıdaki komutları çalıştırın.
sudo wget https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service
sudo cp caddy.service /etc/systemd/system/
sudo chown root:root /etc/systemd/system/caddy.service
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl daemon-reload
18. Şimdi yeni servisimizi kullanarak Caddy'yi başlatmaya gitmeden önce, çalıştırması için bir .php dosyası oluşturalım. Gerçek bir alan adı kullanıyorsanız localhost'u değiştirmeyi unutmayın.
sudo nano /var/www/localhost/index.php
19. Şimdi bu dosyaya, aşağıdaki satırı ekleyin.
<?php phpinfo(); ?>
Bunu tamamladıktan sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabilirsiniz.
20. Şimdi aşağıdaki iki komutu çalıştırarak sonunda yeni servisimizi kullanarak Raspberry Pi Caddy web sunucumuzu başlatabilir ve önyüklemede otomatik olarak başlayacak şekilde ayarlayabiliriz. Önyüklemede başlamasını istemiyorsanız, ikinci komutu çalıştırmayın.
sudo systemctl start caddy.service
sudo systemctl enable caddy.service
21. Artık Caddy kullanan tamamen çalışan bir HTTP sunucunuz olmalı, Caddy yapılandırmanızı daha fazla değiştirmek isterseniz, Caddy Docs sayfasına giderek resmi belgelerine göz atabilirsiniz.
Sonuç
Bu noktada umarız Raspberry Pi Caddy web sunucunuzu başarıyla kurmuşsunuzdur, bu DIY Pi eğitiminden keyif aldıysanız veya herhangi bir sorunla karşılaştıysanız aşağıdaki yorumlar bölümüne bir yorum bırakmaktan çekinmeyin.