Raspberry Pi Apache Web Sunucusu Nasıl Kurulur

Bu yazı, PiMyLifeUp - How to Setup a Raspberry Pi Apache Web Server kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu Raspberry Pi Apache projesinde, Raspberry Pi'de bir Apache web sunucusunu nasıl kurup ayarlayacağınızı göstereceğiz.

Raspberry Pi Apache

Tek başına Apache, HTML dosyalarını HTTP ve HTTPS web protokolleri üzerinden sunabilir. PHP gibi ek modüllerle birlikte, Apache dinamik içerik de sunabilir.

Apache, Raspberry Pi için mevcut en popüler web sunucularından biridir. Apache tek başına dünyadaki tüm web sunucularının kabaca %27'sini oluşturur.

Apache'ye bir alternatif Nginx web sunucusudur ve belirli görevlerde Apache'den çok daha hızlı olduğu düşünülür. Hangi teknolojiyle devam etmek istediğiniz tamamen size bağlıdır.

Bu Raspberry Pi Apache eğitiminde, Apache'yi kurma, PHP kurma ve ayrıca ilk temel Apache VirtualHost dosyanızı oluşturma adımlarında size yol göstereceğiz.

Bu eğitimde, Apache'nin tüm temellerine değiniyoruz, ancak MYSQL ve PHPMyAdmin kurulumuna değinmiyoruz. Ayrıca Raspberry Pi'de WordPress kurulumunu da kapsamıyoruz. Bunların hepsi ayrı eğitimlerde ele alınan konulardır.

Bu Raspberry Pi Apache web sunucusu eğitimi, Raspberry Pi OS'nin (Bookworm) en son sürümünü çalıştıran bir Raspberry Pi 5 üzerinde son olarak test edilmiştir.

Raspberry Pi'ye Apache Web Sunucusu Nasıl Kurulur

1. Apache'yi Raspberry Pi'mize kurmadan önce, aşağıdaki iki komutu çalıştırarak paket listesinin güncel olduğundan emin olmalıyız.

sudo apt update
sudo apt upgrade

2. İlk olarak, Raspberry Pi'mize Apache2 paketini kurmamız gerekecek.

Apache'nin ne olduğunu bilmeyenler için, bu bir bilgisayardan web tarayıcısına HTML dosyalarını sunan bir sunucu yazılımıdır.

Raspberry Pi'nize apache2'yi kurmak için, terminale aşağıdaki komutu girin.

sudo apt install apache2 -y

3. Apache2 Raspberry Pi'mize kurulduğuna göre, artık son derece temel bir web sunucusu çalışır durumdadır. Sunucu, HTML dosyaları gibi dinamik olmayan içerik sağlayabilecektir.

Bir sonraki bölümde, Raspberry Pi'ye PHP kurarak bu temel Apache web sunucusunu genişleteceğiz.

Apache'nin Raspberry Pi'nizde çalışır durumda olduğunu kontrol etmek için, Raspberry Pi'nin IP adresini bir web tarayıcısına girebilirsiniz. Sunucu, üzerinde basit bir metin bulunan bir web sayfası döndürmelidir.

IP'yi bilmiyorsanız, onu almak için terminale hostname komutunu girebilirsiniz.

hostname -I

4. Bir web tarayıcısında, Raspberry Pi'nizin IP Adresini girin, aşağıdaki gibi bir sayfaya bağlanıp yüklemesi gerekir.

Raspberry Pi Apache Web Sunucusu Varsayılan Sayfa

5. /var/www/html içindeki dosyalarda root kullanmadan değişiklik yapabilmek için bazı izinleri ayarlamamız gerekiyor.

İlk olarak, $USER kullanıcısını (mevcut kullanıcımız) Apache2'nin varsayılan grubu olan www-data grubuna ekliyoruz.

İkinci olarak, /var/www/html dizinindeki tüm dosya ve klasörlerin sahipliğini www-data grubuna veriyoruz.

sudo usermod -a -G www-data $USER
sudo chown -R -f www-data:www-data /var/www/html
sudo chmod -R 770 /var/www/html

Bu komutu çalıştırdıktan sonra, değişikliklerin etkili olması için çıkış yapıp tekrar giriş yapmanız gerekecek. Herhangi bir sorunla karşılaşmamanıza yardımcı olacağından yeniden başlatmanızı öneririz.

sudo reboot

6. Artık aşağıdaki komutu çalıştırarak varsayılan web sayfasında değişiklik yapabilirsiniz.

Bu komut, index.html dosyasını değiştirmek için nano metin editörünü kullanacaktır.

Web sunucusu, /var/www/html/ dizini içindeki tüm dosyaları sunacaktır.

nano /var/www/html/index.html

Apache temel bir web sunucusudur ve HTML, JS veya CSS öğrenmek istiyorsanız harikadır.

Ancak, PHP (dinamik web sayfaları için kullanılır) peşindeyseniz, Raspberry Pi Apache eğitimimizin bir sonraki bölümüne devam edin.

Apache için PHP Ayarlama

1. Bu bölüme başlamadan önce, en azından Raspberry Pi OS Bullseye çalıştırıyor olmanız gerektiğini lütfen unutmayın. Rehberimizde Raspberry Pi OS Bullseye'a nasıl yükseltileceğini öğrenebilirsiniz.

Bu bölüme başlamak için, Raspberry Pi'mize PHP 8.2 ve diğer birkaç paketi kurmamız gerekecek. Kurduğumuz ek paketler, PHP uygulamaları tarafından yaygın olarak kullanılanlardır.

Tüm PHP paketlerini Raspberry Pi'nize kurmak için aşağıdaki komutu çalıştırın.

sudo apt install php8.2 libapache2-mod-php8.2 php8.2-mbstring php8.2-mysql php8.2-curl php8.2-gd php8.2-zip -y

Bir "package not found" hatasıyla karşılaşırsanız, lütfen üçüncü taraf bir PHP deposu eklemeyi kapsayan rehberimizi takip edin. Bu depo size PHP'nin daha yeni sürümlerine erişim sağlamalıdır.

2. PHP artık Raspberry Pi'mize kurulduğuna göre, çalıştığından emin olmak için test edebiliriz.

Apache algılandığında bu otomatik olarak yapıldığından, herhangi bir yapılandırma dosyasını değiştirmekle uğraşmamıza gerek yok.

PHP'nin çalıştığını görmek için /var/www/html/ dizini içinde bir PHP dosyası oluşturarak test edebiliriz. Bu dizinde bir dosya oluşturmak, bir web tarayıcısında açtığınızda işlenmesine ve görüntülenmesine izin verecektir.

Örneğimiz için, example.php adlı bir PHP dosyası oluşturacağız. Bu dosyayı aşağıdaki komutu vererek oluşturabiliriz.

nano /var/www/html/example.php

3. Bu dosyaya, aşağıdaki PHP kod satırlarını eklememiz gerekiyor.

<?php
echo "Today's date is ".date('Y-m-d H:i:s');

Yukarıdaki kod, PHP'nin date() fonksiyonu kullanılarak alınan bugünün tarihini yazdıran son derece basit bir PHP script'idir. PHP'nin gerçekten çalıştığını söylemek için yeterli olacaktır.

4. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedin.

5. Web tarayıcınızda, http://192.168.1.103/example.php adresine gidin.

192.168.1.103 kısmını Raspberry Pi'nizin IP Adresi ile değiştirdiğinizden emin olun.

Aşağıdaki URL'ye gitmek aşağıdaki gibi bir şey görüntülemelidir.

Today's date is 2019-06-28 21:30:45

Bir Apache Sanal Host'u Ayarlama

Sanal host'lar (virtual host), Apache'nin çalışma şeklinin önemli bir parçasıdır. Apache, tek bir siteyi nasıl işleyeceğini bilmek için bu Virtualhost dosyalarını kullanır.

Bu bölümde, Raspberry Pi Apache web sunucunuzda nasıl temel bir sanal host dosyası oluşturacağınızı göstereceğiz. Sanal host'lar, Apache'nin her bir Virtual Host dosyasının belirli bir alan adını ayarlayıp yapılandırdığı, birden fazla web sitesini işleme yöntemidir.

1. /etc/apache2/sites-available klasörü içinde example.com.conf adlı temel bir sanal host dosyası oluşturmak için aşağıdaki komutu çalıştırarak başlayın.

Bunu gerçek bir alan adı için kullanmayı planlıyorsanız, example.com kısmını alan adıyla değiştirdiğinizden emin olun.

sudo nano /etc/apache2/sites-available/example.com.conf

2. Bu dosyanın içine, aşağıdaki metni girin.

Çok temel bir sanal host'un nasıl kurulacağı hakkında bir fikir sahibi olmanız için sanal host dosyasının her bölümünü ilerledikçe açıklayacağız.

<VirtualHost *:80>

Bu satır, sanal host'un başlangıcını ve bu sanal host'un 80 portunu dinlemesi gerektiğini belirtir.

Bilmeyenler için port 80, http için varsayılan porttur. Aynı şekilde, https için kullanılan port 443'tür.

ServerName example.com
ServerAlias www.example.com

Burada sanal host'umuza iki direktif ekliyoruz. ServerName adlı bu direktiflerin ilki, temel alan adını belirtir. Bu sunucu adı, VirtualHost'u bir alan adıyla eşleştirmek için kullanılır.

İkinci direktif, ServerAlias, temel alan adıymış gibi eşleştirilecek ek alan adlarını tanımlar.

Bu direktif, bir www. alt alan adı gibi ek adları eşleştirmek için kullanışlıdır.

DocumentRoot /var/www/example.com/public_html

DocumentRoot direktifi, Apache tarafından tüm dosyaların sunulacağı dizini tanımlar.

ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

Bu son iki direktifte, ErrorLog ve CustomLog, log dosyalarının tutulmasını istediğimiz konumları belirtiyoruz.

</VirtualHost>

Son olarak, VirtualHost bölümünü kapatıyoruz.

3. Her şey tamamlandığında, kod aşağıda gösterdiğimize benzer görünmelidir. Tabii ki, example.com yerine kendi alan adınızı kullanarak.

<VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      DocumentRoot /var/www/example.com/public_html
      ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
      CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

Bittiğinde, CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedin.

4. Şimdi HTML dosyalarımızı saklayacağımız klasörü oluşturalım. Bu klasörün sahipliğini de www-data grubu için alacağız.

İhtiyacımız olan klasörü oluşturmak ve sahipliğini almak için aşağıdaki komutu çalıştırın.

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 770 /var/www/example.com/public_html

5. VirtualHost'umuzu ve onun için klasörü oluşturduğumuza göre, artık aşağıdaki komutu çalıştırarak onu etkinleştirelim.

Bu komut, /etc/apache2/sites-available/ ve /etc/apache2/sites-enabled/ dizinleri arasında yapılandırma dosyamız için bir symlink oluşturur.

sudo a2ensite example.com.conf

6. Son olarak, yeni sanal host dosyamızın yüklenmesi için, Apache2 servisine yapılandırmasını yeniden yüklemesini söylememiz gerekiyor.

Bu, basitçe aşağıdaki komutu çalıştırarak yapılabilir.

sudo systemctl reload apache2

Artık bir alan adı sunucusunu (DNS) Raspberry Pi'nin herkese açık IP'sine yönlendirebilir ve istenen alan adı için dosyalar sunmasını sağlayabilirsiniz. Bunun doğru çalışması için port yönlendirmesi ayarlamanız gerekecek.

Sonuç

Artık Raspberry Pi'nizde Apache web sunucusu çalışıyor olmalı. Ayrıca Apache'de PHP ve sanal host'ları nasıl ayarlayacağınız hakkında iyi bir fikre sahip olmalısınız.

Herhangi bir geri bildiriminiz, sorunuz, ipucunuz veya başka bir şeyiniz varsa, lütfen aşağıya yorum bırakmaktan çekinmeyin.