Takip et

Ön Gereksinimler ve Sistem Güncelleme

Bu rehber, FreeBSD 12.0 işletim sistemi üzerinde bir FAMP (FreeBSD, Apache, MySQL, PHP) yığını kurmak ve yapılandırmak isteyen kullanıcılar

Bu rehber, FreeBSD 12.0 işletim sistemi üzerinde bir FAMP (FreeBSD, Apache, MySQL, PHP) yığını kurmak ve yapılandırmak isteyen kullanıcılar için tasarlanmıştır. FAMP, dinamik web siteleri ve uygulamaları barındırmak için güçlü ve esnek bir platform sağlar. Apache web sunucusu, MySQL veritabanı ve PHP betik dili kombinasyonu, dünya genelinde milyonlarca web sitesinin temelini oluşturmaktadır. Bu kılavuzda, her bir bileşenin adım adım nasıl kurulacağını ve birbirleriyle entegre edileceğini ayrıntılı olarak ele alacağız.

Ön Gereksinimler ve Sistem Güncelleme

FAMP yığınını kurmaya başlamadan önce, FreeBSD 12.0 kurulu ve çalışan bir sisteminizin olması gerekmektedir. İnternet bağlantısı da paketleri indirmek için zorunludur. Kurulum sürecini sorunsuz tamamlamak için aşağıdaki adımları uygulayarak sisteminizi güncelleyelim ve gerekli temel araçları kontrol edelim.

Paket Yöneticisi Kontrolü ve Sistem Güncellemesi

FreeBSD’de yazılım kurulumu için genellikle pkg (paket yöneticisi) kullanılır. Eğer pkg sisteminizde kurulu değilse, ilk kez bir paket kurmaya çalıştığınızda sistem size otomatik olarak kurmayı teklif edecektir. Bunu kabul edebilirsiniz. Daha sonra, paket listelerini güncelleyip mevcut paketleri yükselterek sisteminizi en yeni sürüme getirelim:

sudo pkg update
sudo pkg upgrade -y

Bu komutlar, sisteminizdeki tüm kurulu paketleri güncelleyecektir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar. Bu işlem biraz zaman alabilir.

Apache Web Sunucusu Kurulumu ve Yapılandırması

Apache HTTP Sunucusu, dünyanın en popüler web sunucularından biridir. Web sitenizin içeriğini ziyaretçilere sunmaktan sorumludur. FreeBSD 12.0 üzerinde Apache 2.4 sürümünü kuracağız.

Apache Kurulumu

Apache’yi kurmak için aşağıdaki komutu kullanın:

sudo pkg install apache24 -y

Kurulum tamamlandıktan sonra, Apache servisinin sistem başlangıcında otomatik olarak başlamasını sağlamalı ve servisi başlatmalıyız. Bunun için sysrc komutunu kullanırız:

sudo sysrc apache24_enable="YES"
sudo service apache24 start

Bu adımların ardından Apache web sunucusu çalışır durumda olmalıdır. Web tarayıcınızı açıp sunucunuzun IP adresini veya alan adını yazarak test edebilirsiniz (örn: http://sunucu_ip_adresiniz). Eğer “It works!” yazan bir sayfa görüyorsanız, Apache başarıyla kurulmuş demektir.

Temel Apache Yapılandırması

Apache’nin ana yapılandırma dosyası /usr/local/etc/apache24/httpd.conf konumundadır. Bu dosyada bazı temel değişiklikler yapmamız gerekecek.

Bir metin düzenleyici ile dosyayı açın (örn: ee veya nano):

sudo ee /usr/local/etc/apache24/httpd.conf

Aşağıdaki satırları bulup düzenleyin veya ekleyin:

  1. ServerName: Genellikle yorum satırı (# ile başlayan) olarak gelir. Kendi sunucunuzun IP adresini veya alan adını buraya yazın.
  2. #ServerName www.example.com:80
    ServerName sunucu_ip_adresiniz_veya_alan_adiniz:80
    
  3. DirectoryIndex: PHP dosyalarının varsayılan olarak yüklenmesini sağlamak için index.php‘yi ekleyin.
  4. #
    

    DirectoryIndex: sets the default directory index for a directory

    DirectoryIndex index.php index.html
  5. AllowOverride: .htaccess dosyalarının kullanılmasına izin vermek için AllowOverride None yerine AllowOverride All yapın. Bu, genellikle web uygulamaları için gereklidir.
  6. 
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    
    

Değişiklikleri kaydettikten sonra Apache servisini yeniden başlatın:

sudo service apache24 restart

Pratik Bilgi: Varsayılan web kök dizini /usr/local/www/apache24/data‘dır. Tüm web sitenizin dosyalarını bu dizine veya sanal host yapılandırması ile belirleyeceğiniz başka bir dizine yükleyeceksiniz.

MySQL Veritabanı Sunucusu Kurulumu ve Yapılandırması

MySQL, açık kaynaklı ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir. Web uygulamalarınızın verilerini depolamak için kullanılacaktır.

MySQL Kurulumu

MySQL’in belirli bir sürümünü kurmak isteyebilirsiniz (örn: mysql80-server veya mysql57-server). Bu rehberde mysql80-server sürümünü kullanacağız. Mevcut sürümleri pkg search mysql-server komutu ile kontrol edebilirsiniz.

sudo pkg install mysql80-server -y

Kurulum tamamlandıktan sonra, MySQL servisinin sistem başlangıcında otomatik olarak başlamasını sağlamalı ve servisi başlatmalıyız:

sudo sysrc mysql_enable="YES"
sudo service mysql-server start

MySQL Güvenli Kurulumu

Yeni kurulan bir MySQL sunucusunun güvenlik yapılandırmasını yapmak çok önemlidir. mysql_secure_installation betiği, root şifresi belirleme, anonim kullanıcıları kaldırma, uzaktan root girişini devre dışı bırakma ve test veritabanını silme gibi adımlarda size yardımcı olacaktır.

sudo mysql_secure_installation

Bu betik size çeşitli sorular soracaktır:

  • VALIDATE PASSWORD COMPONENT kurmak isteyip istemediğinizi soracak. Bu, güçlü şifreler zorunlu kılar. İsterseniz “y” (yes) diyerek kurabilirsiniz, istemezseniz “n” (no) diyebilirsiniz. Eğer kurarsanız, bir şifre gücü seviyesi seçmeniz istenecektir.
  • Set root password? [Y/n] (Root şifresi belirle?) -> Y seçip güçlü bir şifre belirleyin.
  • Remove anonymous users? [Y/n] (Anonim kullanıcıları kaldır?) -> Y
  • Disallow root login remotely? [Y/n] (Root’un uzaktan giriş yapmasını engelle?) -> Y (Genellikle güvenlik için önerilir, root kullanıcısının sadece localhost’tan bağlanmasına izin verir.)
  • Remove test database and access to it? [Y/n] (Test veritabanını ve erişimini kaldır?) -> Y
  • Reload privilege tables now? [Y/n] (Yetki tablolarını şimdi yeniden yükle?) -> Y

Bu adımları tamamladıktan sonra MySQL sunucunuz daha güvenli bir şekilde yapılandırılmış olacaktır.

Pratik Bilgi: MySQL’e root kullanıcısı olarak bağlanmak için mysql -u root -p komutunu kullanabilirsiniz. Ardından belirlediğiniz şifreyi girmeniz istenecektir. Veritabanı oluşturma, kullanıcı yönetimi gibi işlemler için SQL komutlarını burada çalıştırabilirsiniz.

PHP Kurulumu ve Apache ile Entegrasyonu

PHP (Hypertext Preprocessor), dinamik web içeriği oluşturmak için yaygın olarak kullanılan bir betik dilidir. Apache ile entegre edilerek web uygulamalarınızın çalışmasını sağlar.

PHP ve Gerekli Modüllerin Kurulumu

Bu rehberde PHP 8.0 sürümünü kuracağız. Mevcut sürümleri pkg search php komutu ile kontrol edebilirsiniz. PHP’nin yanı sıra, MySQL ile iletişim kurmak için php80-mysqli veya php80-pdo_mysql gibi modüllere de ihtiyacımız olacak. Ayrıca, web uygulamaları için yaygın olarak kullanılan diğer modülleri de ekleyelim:

sudo pkg install php80 php80-mysqli php80-pdo_mysql php80-mbstring php80-curl php80-json php80-zip -y

Bu komut, PHP 8.0’ı ve belirtilen modülleri kuracaktır.

PHP Yapılandırması

PHP’nin yapılandırma dosyası php.ini‘dir. Varsayılan olarak, üretim ve geliştirme ortamları için örnek dosyalar bulunur. Genellikle üretim ortamı için olanı kopyalarız:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Bu dosyayı ihtiyaçlarınıza göre düzenleyebilirsiniz. Örneğin, upload_max_filesize veya memory_limit gibi değerleri değiştirebilirsiniz:

sudo ee /usr/local/etc/php.ini

Apache ile PHP Entegrasyonu

PHP’nin Apache ile çalışabilmesi için Apache’ye PHP modülünü yüklemesini ve .php uzantılı dosyaları PHP işlemcisiyle işlemesini söylemeliyiz. Bu ayarları Apache’nin ana yapılandırma dosyası olan /usr/local/etc/apache24/httpd.conf içinde yapacağız.

Dosyayı tekrar açın:

sudo ee /usr/local/etc/apache24/httpd.conf

Aşağıdaki satırları dosyanın sonuna ekleyin veya mevcut satırları düzenleyin:

# PHP 8.0 modülünü yükle
LoadModule php_module                 libexec/apache24/libphp.so

.php uzantılı dosyaları PHP ile işle

SetHandler application/x-httpd-php SetHandler application/x-httpd-php-source

Daha önce DirectoryIndex satırını düzenlemiştik (DirectoryIndex index.php index.html). Bu, Apache’nin dizinlere erişildiğinde index.php dosyasını öncelikli olarak aramasını sağlar.

Değişiklikleri kaydettikten sonra Apache servisini yeniden başlatın:

sudo service apache24 restart

PHP Kurulumunu Test Etme

PHP’nin Apache ile doğru bir şekilde çalıştığını doğrulamak için, web kök dizininde (varsayılan olarak /usr/local/www/apache24/data) basit bir info.php dosyası oluşturalım:

sudo ee /usr/local/www/apache24/data/info.php

Dosyanın içine aşağıdaki içeriği ekleyin:


Dosyayı kaydedin ve web tarayıcınızda http://sunucu_ip_adresiniz_veya_alan_adiniz/info.php adresine gidin. Eğer PHP yapılandırma bilgilerini içeren bir sayfa görüyorsanız, FAMP yığınınız başarıyla kurulmuş ve çalışır durumda demektir. Güvenlik nedeniyle, bu info.php dosyasını testten sonra silmeyi veya erişimi kısıtlamayı unutmayın.

Sonuç ve Sıkça Sorulan Sorular (SSS)

Bu rehberde, FreeBSD 12.0 üzerinde Apache web sunucusu, MySQL veritabanı ve PHP betik dilinden oluşan bir FAMP yığınını başarıyla kurdunuz ve yapılandırdınız. Artık dinamik web siteleri ve uygulamaları geliştirmek ve barındırmak için sağlam bir temele sahipsiniz. Kurulum sonrası güvenlik önlemleri, düzenli güncellemeler ve yedeklemeler web sitenizin ve verilerinizin güvenliği için kritik öneme sahiptir.

Sıkça Sorulan Sorular (SSS)

S: pkg komutu bulunamazsa ne yapmalıyım?
C: Eğer pkg komutu bulunamazsa, genellikle ilk kez bir paket kurmaya çalıştığınızda sistem size otomatik olarak pkg‘yi kurmayı teklif edecektir. Bunu kabul edebilirsiniz. Manuel olarak kurmak isterseniz env PAGER=cat pkg bootstrap komutunu kullanabilirsiniz.

S: Hangi PHP/MySQL sürümünü seçmeliyim?
C: Genellikle en son kararlı sürümü tercih etmek iyi bir yaklaşımdır, çünkü daha fazla özellik, performans iyileştirmesi ve güvenlik düzeltmeleri içerir. Ancak, belirli bir web uygulamanız varsa, onun gereksinimleriyle uyumlu olan sürümü seçmeniz gerekebilir. pkg search php ve pkg search mysql-server komutları ile mevcut sürümleri görebilirsiniz.

S: Apache 403 (Forbidden) hatası verirse ne yapmalıyım?
C: Bu hata genellikle dizin izinleri veya Apache yapılandırmasındaki AllowOverride ve Require all granted ayarlarından kaynaklanır. Web kök dizininin (/usr/local/www/apache24/data) ve içindeki dosyaların Apache kullanıcısı tarafından okunabilir olduğundan emin olun. Ayrıca, httpd.conf dosyasındaki AllowOverride All ve Require all granted ayarlarını kontrol edin.

S: mysql_secure_installation çalışmazsa ne yapmalıyım?
C: mysql_secure_installation komutunu çalıştırmadan önce MySQL servisinin çalıştığından emin olun (sudo service mysql-server status). Eğer hala sorun yaşıyorsanız, MySQL loglarını kontrol edebilir veya MySQL root kullanıcısına geçici olarak şifresiz erişim izni verip ardından manuel olarak şifre belirleyebilirsiniz (bu işlem dikkatli yapılmalıdır).

S: FAMP bileşenlerini otomatik başlatmak için ne yapmalıyım?
C: Bu rehberde zaten sudo sysrc apache24_enable="YES" ve sudo sysrc mysql_enable="YES" komutlarını kullanarak Apache ve MySQL servislerinin sistem başlangıcında otomatik olarak başlamasını sağladık. PHP bir Apache modülü olduğundan, Apache başladığında PHP de otomatik olarak yüklenecektir.

S: Güvenlik için ek neler yapabilirim?
C:

  • Bir güvenlik duvarı (örn. pf veya ipfw) kurarak sadece gerekli portlara (80, 443) erişime izin verin.
  • SSH bağlantıları için parola yerine SSH anahtarları kullanın.
  • PHP’nin php.ini dosyasında expose_php = Off ayarını yaparak PHP sürüm bilgisinin web sunucusu başlıklarında görünmesini engelleyin.
  • MySQL veritabanı kullanıcıları için en az ayrıcalık prensibini uygulayın.
  • Düzenli olarak sistem ve paket güncellemelerini yapın.
  • Web uygulamalarınızın (WordPress, Joomla vb.) güncel olduğundan emin olun.
  • SSL/TLS sertifikası (Let’s Encrypt gibi) kullanarak HTTPS’i etkinleştirin.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık