Debian 10 Üzerine LAMP (Linux, Apache, MariaDB, PHP) Yığını Kurulumu
Giriş
Web uygulamalarının ve dinamik web sitelerinin omurgasını oluşturan sunucu yazılım yığınları, günümüz internet dünyasında vazgeçilmez bir role sahiptir. Bu yığınlar arasında en popüler ve yaygın olarak kullanılanlardan biri LAMP (Linux, Apache, MariaDB, PHP) yığınıdır. LAMP, açık kaynaklı yazılımlardan oluşması, yüksek performans sunması, esnekliği ve geniş topluluk desteği sayesinde geliştiriciler ve sistem yöneticileri için ideal bir çözümdür. Bu makalede, Debian 10 (Buster) işletim sistemi üzerine bu güçlü LAMP yığınını adım adım nasıl kuracağınızı detaylı bir şekilde anlatacağız. Amacımız, ister kişisel bir blog, ister karmaşık bir e-ticaret sitesi olsun, kendi web sunucunuzu kurmanız için gerekli tüm bilgileri sağlamaktır.
LAMP kısaltması, yığını oluşturan dört ana bileşenin baş harflerinden gelmektedir:
- L (Linux): İşletim sistemi katmanını temsil eder. Debian, Ubuntu, CentOS gibi Linux dağıtımları bu katmanı oluşturur. Bu rehberde Debian 10 kullanacağız.
- A (Apache): Web sunucusu katmanıdır. HTTP isteklerini işler ve web sayfalarını kullanıcılara sunar. Dünyanın en popüler web sunucularından biridir.
- M (MariaDB): Veritabanı yönetim sistemi katmanıdır. MySQL’in topluluk tarafından geliştirilen, uyumlu ve performans odaklı bir çatalıdır (fork). Verilerinizi düzenli ve güvenli bir şekilde saklamanızı sağlar.
- P (PHP): Sunucu taraflı betik dili katmanıdır. Dinamik içerik oluşturmak, veritabanlarıyla etkileşim kurmak ve web uygulamaları geliştirmek için kullanılır. WordPress, Joomla, Drupal gibi birçok popüler CMS (İçerik Yönetim Sistemi) PHP ile yazılmıştır.
Debian 10, kararlılığı, güvenilirliği ve geniş paket deposu sayesinde sunucu ortamları için mükemmel bir seçimdir. Bu rehber, her adımı net ve anlaşılır bir şekilde açıklayarak, daha önce sunucu kurulumu yapmamış kullanıcıların bile başarılı bir şekilde LAMP yığınını kurmalarını sağlayacaktır. Başlamadan önce, sunucunuzda temel Linux komutlarına aşina olmanız ve root ayrıcalıklarına sahip bir kullanıcıya (veya sudo yetkilerine) sahip olmanız önerilir.
Ön Gereksinimler
LAMP yığınını Debian 10 üzerine kurmaya başlamadan önce, aşağıdaki ön gereksinimlerin karşılandığından emin olmanız gerekmektedir:
- Debian 10 (Buster) İşletim Sistemi: Temiz bir Debian 10 kurulumuna sahip olmalısınız. Sanal makine (VirtualBox, VMware), bulut sunucusu (AWS, Google Cloud, Azure, DigitalOcean) veya fiziksel bir sunucu olabilir.
- Root veya Sudo Yetkileri: Kurulum komutlarını çalıştırmak için root kullanıcısı olarak oturum açmış olmanız veya sudo ayrıcalıklarına sahip bir kullanıcı hesabınızın bulunması gerekmektedir. Güvenlik nedeniyle sudo kullanıcısı ile çalışmak daha çok tercih edilir.
- İnternet Bağlantısı: Gerekli paketleri indirmek için sunucunuzun aktif bir internet bağlantısına sahip olması şarttır.
- Temel Linux Bilgisi: Komut satırı (terminal) kullanımı, dosya sisteminde gezinme ve temel metin düzenleyici (nano veya vim) kullanımı hakkında bilgi sahibi olmak işinizi kolaylaştıracaktır.
Bu gereksinimler sağlandıktan sonra, LAMP yığınının kurulumuna başlayabiliriz.
Adım 1: Sistem Güncellemesi
Herhangi bir yazılım kurulumuna başlamadan önce, işletim sisteminizin paket listesini güncellemek ve mevcut paketleri en son sürümlerine yükseltmek iyi bir uygulamadır. Bu, olası bağımlılık sorunlarını önler ve sisteminizin güvenliğini artırır.
Paket Listesini Güncelleme
Öncelikle, APT (Advanced Package Tool) paket yöneticisinin yerel paket indeksini güncelleyelim. Bu komut, sisteminizin depolarındaki mevcut paketlerin en son sürümleri hakkında bilgi edinmesini sağlar.
sudo apt update
Bu komut tamamlandıktan sonra, sisteminizdeki yüklü paketlerin güncel sürümleri olup olmadığını kontrol edecektir.
Yüklü Paketleri Yükseltme
Paket indeksini güncelledikten sonra, sisteminizde yüklü olan tüm paketleri en son kararlı sürümlerine yükseltebiliriz. Bu, güvenlik yamalarını ve hata düzeltmelerini almanızı sağlar.
sudo apt upgrade -y
-y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı verilmesini sağlar, böylece yükseltme işlemi kesintisiz devam eder. Bu işlem, sunucunuzun internet bağlantısına ve mevcut güncelleme sayısına bağlı olarak biraz zaman alabilir.
Güncelleme ve yükseltme işlemleri tamamlandıktan sonra, LAMP yığınını kurmaya hazırız.
Adım 2: Apache Web Sunucusunun Kurulumu
Apache HTTP Sunucusu, dünya genelinde en çok kullanılan açık kaynaklı web sunucularından biridir. Yüksek performansı, esnekliği ve modüler yapısı sayesinde web sitelerini ve uygulamalarını barındırmak için ideal bir platform sunar.
Apache Kurulumu
Apache’yi Debian 10 sunucumuza kurmak oldukça basittir. Aşağıdaki komutu kullanarak Apache paketini kurabiliriz:
sudo apt install apache2 -y
Bu komut, Apache web sunucusunu ve gerekli tüm bağımlılıklarını sisteminize yükleyecektir.
Apache Servisini Kontrol Etme ve Yönetme
Kurulum tamamlandıktan sonra, Apache servisi otomatik olarak başlatılmalı ve sistem açılışında otomatik olarak çalışacak şekilde ayarlanmalıdır. Servisin durumunu kontrol etmek için aşağıdaki komutu kullanabiliriz:
sudo systemctl status apache2
Çıktıda Active: active (running) ifadesini görmelisiniz. Bu, Apache web sunucusunun başarıyla çalıştığı anlamına gelir. Eğer çalışmıyorsa, aşağıdaki komutla manuel olarak başlatabilirsiniz:
sudo systemctl start apache2
Sistemin yeniden başlatılmasından sonra Apache’nin otomatik olarak başlamasını sağlamak için aşağıdaki komutu kullanın (genellikle kurulumla birlikte otomatik etkinleştirilir, ancak kontrol etmekte fayda var):
sudo systemctl enable apache2
Diğer faydalı systemctl komutları:
- Apache’yi durdurmak için:
sudo systemctl stop apache2 - Apache’yi yeniden başlatmak için:
sudo systemctl restart apache2(yapılandırma değişikliklerinden sonra önerilir) - Apache’yi yeniden yüklemek için:
sudo systemctl reload apache2(yapılandırma değişiklikleri için, servisi tamamen durdurup başlatmadan değişiklikleri uygular)
Güvenlik Duvarı Yapılandırması (UFW)
Eğer sunucunuzda UFW (Uncomplicated Firewall) gibi bir güvenlik duvarı etkinse, Apache’nin dışarıdan gelen bağlantıları kabul etmesi için HTTP (port 80) ve HTTPS (port 443) portlarını açmanız gerekmektedir. Debian’da UFW varsayılan olarak yüklü gelmeyebilir, ancak güvenlik için etkinleştirilmesi şiddetle tavsiye edilir.
Öncelikle UFW’nin yüklü olup olmadığını kontrol edin:
sudo ufw status
Eğer UFW yüklü değilse, kurabilirsiniz:
sudo apt install ufw -y
UFW yüklüyse ve etkinse, Apache için gerekli kuralları ekleyelim:
sudo ufw allow 'Apache'
Bu komut, HTTP (port 80) için gerekli kuralı ekleyecektir. Eğer HTTPS (SSL/TLS) kullanmayı planlıyorsanız, 'Apache Full' profilini kullanmanız daha doğru olur:
sudo ufw allow 'Apache Full' # Hem HTTP hem HTTPS için
sudo ufw allow 'Apache' # Sadece HTTP için
sudo ufw allow 'Apache Secure' # Sadece HTTPS için
Kuralları ekledikten sonra, UFW’yi etkinleştirin (eğer daha önce etkin değilse):
sudo ufw enable
Uyarı: UFW’yi etkinleştirmeden önce SSH bağlantı noktanızı (varsayılan olarak 22) açtığınızdan emin olun, aksi takdirde sunucunuza erişiminizi kaybedebilirsiniz: sudo ufw allow ssh
UFW durumunu tekrar kontrol ederek kuralların etkinleştirildiğinden emin olun:
sudo ufw status
Apache Kurulumunu Test Etme
Apache’nin başarıyla çalıştığını doğrulamak için, web tarayıcınızı açın ve sunucunuzun IP adresini veya alan adını girin. Örneğin, http://your_server_ip veya http://your_domain.com.
Debian 10’da Apache’nin varsayılan karşılama sayfasını görmelisiniz. Bu sayfa genellikle “Apache2 Debian Default Page” başlığını taşır ve Apache’nin başarıyla kurulduğunu ve çalıştığını gösterir.
Apache’nin varsayılan kök dizini (Document Root) /var/www/html‘dir. Web sitelerinizin dosyalarını bu dizine yerleştirebilirsiniz.
Adım 3: MariaDB Veritabanı Sunucusunun Kurulumu
MariaDB, MySQL’in topluluk tarafından geliştirilen, açık kaynaklı ve ikili uyumlu bir çatalıdır. Yüksek performans, kararlılık ve gelişmiş özellikler sunarak web uygulamaları için güçlü bir veritabanı çözümü sağlar. MySQL ile tam uyumlu olduğu için, mevcut MySQL tabanlı uygulamalarınızı MariaDB ile sorunsuz bir şekilde kullanabilirsiniz.
MariaDB Kurulumu
MariaDB sunucusunu ve istemci araçlarını kurmak için aşağıdaki komutu kullanın:
sudo apt install mariadb-server mariadb-client -y
Bu komut, MariaDB sunucusunu ve istemci paketlerini bağımlılıklarıyla birlikte yükleyecektir.
MariaDB Servisini Kontrol Etme
Kurulum tamamlandıktan sonra, MariaDB servisi otomatik olarak başlatılmalı ve etkinleştirilmelidir. Servisin durumunu kontrol etmek için:
sudo systemctl status mariadb
Çıktıda Active: active (running) ifadesini görmelisiniz. Eğer çalışmıyorsa, aşağıdaki komutla başlatabilirsiniz:
sudo systemctl start mariadb
Sistem başlangıcında otomatik olarak çalışmasını sağlamak için (genellikle kurulumla birlikte otomatik etkinleştirilir):
sudo systemctl enable mariadb
MariaDB Güvenlik Yapılandırması
MariaDB’nin ilk kurulumundan sonra, varsayılan güvenlik ayarlarını iyileştirmek için mysql_secure_installation betiğini çalıştırmak çok önemlidir. Bu betik, kök (root) parolasını ayarlamanıza, anonim kullanıcıları kaldırmanıza, uzaktan kök oturum açmayı devre dışı bırakmanıza ve test veritabanını kaldırmanıza yardımcı olur.
sudo mysql_secure_installation
Betik size bir dizi soru soracaktır:
- Enter current password for root (enter for none): İlk kurulumda root parolası olmadığı için doğrudan Enter tuşuna basın.
- Set root password? [Y/n]: Y tuşuna basıp Enter’a basarak root parolası belirleyin. Güçlü bir parola seçtiğinizden emin olun ve parolayı iki kez girin.
- Remove anonymous users? [Y/n]: Y tuşuna basıp Enter’a basın. Anonim kullanıcılar, herkesin veritabanına oturum açmasına izin verir ve güvenlik açığı oluşturur.
- Disallow root login remotely? [Y/n]: Y tuşuna basıp Enter’a basın. Bu, root kullanıcısının yalnızca yerel olarak (sunucu üzerinden) oturum açmasına izin vererek uzaktan erişim saldırılarını önler.
- Remove test database and access to it? [Y/n]: Y tuşuna basıp Enter’a basın. Test veritabanı, herkesin erişebileceği varsayılan bir veritabanıdır ve gereksizdir.
- Reload privilege tables now? [Y/n]: Y tuşuna basıp Enter’a basın. Bu, yaptığınız tüm güvenlik değişikliklerinin hemen uygulanmasını sağlar.
Tüm adımları tamamladıktan sonra, MariaDB kurulumunuz daha güvenli hale gelecektir.
MariaDB Kurulumunu Test Etme
MariaDB’ye root kullanıcısı olarak yeni belirlediğiniz parola ile giriş yaparak kurulumu test edebilirsiniz:
sudo mysql -u root -p
Parola istendiğinde, mysql_secure_installation sırasında belirlediğiniz root parolasını girin. Başarılı bir şekilde giriş yaparsanız, MariaDB kabuğuna düşeceksiniz (MariaDB [(none)]>). Buradan temel SQL komutlarını çalıştırabilirsiniz.
Örneğin, mevcut veritabanlarını listelemek için:
SHOW DATABASES;
Çıkmak için exit; yazıp Enter’a basın.
Yeni Bir Veritabanı ve Kullanıcı Oluşturma (Örnek)
Web uygulamalarınız için genellikle ayrı bir veritabanı ve kullanıcı oluşturmanız gerekir. Bu, güvenlik ve düzen açısından iyi bir uygulamadır. Aşağıdaki adımları MariaDB kabuğunda gerçekleştirebilirsiniz:
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Yukarıdaki komutları açıklayalım:
CREATE DATABASE mydatabase;:mydatabaseadında yeni bir veritabanı oluşturur.CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_strong_password';: Yalnızca yerel sunucudan erişebilenmyuseradında yeni bir kullanıcı oluşturur ve güçlü bir parola atar.GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';:myuserkullanıcısınamydatabaseüzerindeki tüm ayrıcalıkları verir.FLUSH PRIVILEGES;: Ayrıcalık tablolarını yeniden yükleyerek değişikliklerin hemen etkili olmasını sağlar.EXIT;: MariaDB kabuğundan çıkar.
Bu adımları kendi veritabanı adlarınız ve kullanıcı bilgilerinizle özelleştirmeyi unutmayın.
Adım 4: PHP Kurulumu
PHP (Hypertext Preprocessor), dinamik web içeriği oluşturmak, veritabanlarıyla etkileşim kurmak ve sunucu taraflı mantığı işlemek için tasarlanmış popüler bir betik dilidir. LAMP yığınının “P” bileşenini oluşturur ve WordPress, Drupal, Joomla gibi birçok İçerik Yönetim Sistemi (CMS) tarafından kullanılır.
PHP ve Gerekli Modüllerin Kurulumu
Debian 10’da varsayılan PHP sürümü PHP 7.3’tür. PHP’yi ve Apache ile entegrasyonu için gerekli modülü (libapache2-mod-php) kurmak için aşağıdaki komutu kullanın. Ayrıca, MariaDB ile etkileşim kurmak için php-mysql modülünü ve diğer yaygın olarak kullanılan PHP modüllerini de kuracağız:
sudo apt install php libapache2-mod-php php-mysql php-cli php-json php-curl php-gd php-mbstring php-xml php-zip -y
Yukarıdaki komutta yer alan bazı önemli PHP modüllerini açıklayalım:
php: PHP çekirdek paketi.libapache2-mod-php: PHP’nin Apache web sunucusu ile entegrasyonunu sağlayan modül. Bu, Apache’nin PHP dosyalarını yorumlayabilmesini sağlar.php-mysql: PHP’nin MySQL/MariaDB veritabanlarıyla iletişim kurmasını sağlayan modül. Veritabanı bağlantıları için gereklidir.php-cli: PHP’nin komut satırı arayüzü (Command Line Interface). PHP betiklerini terminal üzerinden çalıştırmak için kullanılır.php-json: JSON (JavaScript Object Notation) verilerini işlemek için gerekli modül. Web API’leri ile çalışırken yaygın olarak kullanılır.php-curl: Çeşitli protokoller (HTTP, FTP, vb.) aracılığıyla uzak sunucularla iletişim kurmak için kullanılan cURL kütüphanesini PHP’ye entegre eder.php-gd: Grafik ve görüntü işleme (küçük resim oluşturma, boyutlandırma vb.) için kullanılan GD kütüphanesini PHP’ye entegre eder.php-mbstring: Çok baytlı karakter dizilerini (örneğin, UTF-8) düzgün bir şekilde işlemek için gerekli olan çok baytlı dize fonksiyonları.php-xml: XML verilerini işlemek için gerekli modül.php-zip: ZIP arşivleri oluşturmak ve açmak için gerekli modül.
İhtiyaçlarınıza göre başka PHP modülleri de ekleyebilirsiniz (örneğin, php-intl, php-imagick, php-fpm gibi). Genellikle apt search php- komutunu kullanarak mevcut PHP modüllerini listeleyebilirsiniz.
Apache’yi Yeniden Başlatma
PHP modülleri kurulduktan sonra, Apache’nin yeni PHP yapılandırmasını yüklemesi için web sunucusunu yeniden başlatmanız gerekir:
sudo systemctl restart apache2
PHP Kurulumunu Test Etme
PHP’nin doğru bir şekilde çalıştığını ve Apache ile entegre olduğunu doğrulamak için, Apache’nin kök dizininde (/var/www/html) basit bir PHP bilgi dosyası oluşturalım.
sudo nano /var/www/html/info.php
Açılan dosyaya aşağıdaki içeriği yapıştırın:
Dosyayı kaydedip kapatın (CTRL+O, Enter, CTRL+X).
Şimdi web tarayıcınızı açın ve sunucunuzun IP adresini veya alan adını takip eden /info.php yolunu ziyaret edin. Örneğin, http://your_server_ip/info.php veya http://your_domain.com/info.php.
Karşınıza PHP’nin yapılandırma bilgilerini (sürüm, modüller, ayarlar vb.) gösteren detaylı bir sayfa gelmelidir. Bu sayfa, PHP’nin başarıyla kurulduğunu ve Apache ile çalıştığını gösterir.
Güvenlik Notu: info.php Dosyasını Silmeyi Unutmayın!
info.php dosyası, sunucunuz hakkında hassas bilgiler (PHP sürümü, sunucu yapılandırması, modüller vb.) içerir. Bu bilgiler kötü niyetli kişiler tarafından güvenlik açıkları bulmak için kullanılabilir. Testi tamamladıktan sonra, bu dosyayı sunucunuzdan mutlaka silmelisiniz:
sudo rm /var/www/html/info.php
Bu, sunucunuzun güvenliğini artırmak için çok önemli bir adımdır.
Adım 5: Apache Sanal Host (Virtual Host) Yapılandırması (Önerilen)
Tek bir sunucuda birden fazla web sitesi barındırmak istiyorsanız veya varsayılan /var/www/html dizini yerine özel bir dizin kullanmayı tercih ediyorsanız, Apache Sanal Host (Virtual Host) yapılandırması kullanmanız gerekir. Sanal hostlar, Apache’nin gelen isteklere farklı web siteleri sunmasını sağlar.
Yeni Bir Web Sitesi Dizini Oluşturma
Öncelikle, yeni web siteniz için bir dizin oluşturalım. Genellikle /var/www/ dizini altında alan adınızla aynı isme sahip bir dizin oluşturmak iyi bir uygulamadır. Bu örnekte example.com alan adını kullanacağız.
sudo mkdir -p /var/www/example.com/html
-p bayrağı, gerekli üst dizinleri de oluşturur. html dizini, web sitesi dosyalarınızı barındıracağınız yer olacaktır.
Dizin İzinlerini Ayarlama
Apache web sunucusunun bu dizine yazma ve okuma erişimine sahip olması gerekir. Varsayılan olarak, Apache www-data kullanıcısı ve grubu altında çalışır. Dizin sahipliğini ve izinlerini ayarlayalım:
sudo chown -R www-data:www-data /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com/html
chown -R www-data:www-data /var/www/example.com/html: Dizinin ve altındaki tüm dosyaların sahipliğiniwww-datakullanıcısına ve grubuna atar.chmod -R 755 /var/www/example.com/html: Dizine ve altındaki tüm dosyalara okuma ve çalıştırma izni verirken, sahibine yazma izni de verir. Bu, web sunucusunun dosyalara erişmesini sağlar.
Örnek Bir HTML Dosyası Oluşturma
Yeni sanal hostumuzun çalıştığını test etmek için basit bir index.html dosyası oluşturalım:
sudo nano /var/www/example.com/html/index.html
Açılan dosyaya aşağıdaki içeriği yapıştırın:
example.com - Başarılı!
Tebrikler! example.com Sanal Hostu Başarıyla Çalışıyor!
Bu sayfa, Apache Sanal Hostunuzun doğru yapılandırıldığını göstermektedir.
Dosyayı kaydedip kapatın.
Sanal Host Yapılandırma Dosyası Oluşturma
Apache’nin yeni web sitenizi tanıması için bir sanal host yapılandırma dosyası oluşturmanız gerekir. Apache sanal host dosyaları genellikle /etc/apache2/sites-available/ dizininde bulunur.
sudo nano /etc/apache2/sites-available/example.com.conf
Açılan dosyaya aşağıdaki içeriği yapıştırın:
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Yukarıdaki yapılandırmayı açıklayalım:
- : Bu blok, HTTP (port 80) üzerinden gelen istekler için bir sanal host tanımlar.
ServerAdmin webmaster@localhost: Sunucu yöneticisinin e-posta adresini belirtir. Hata sayfalarında gösterilebilir.ServerName example.com: Bu sanal hostun hangi alan adı için olduğunu belirtir. Tarayıcıdan bu alan adı ile erişildiğinde bu site sunulur.ServerAlias www.example.com: Alan adının alternatif adlarını belirtir.wwwön eki ile gelen istekler de bu siteye yönlendirilir.DocumentRoot /var/www/example.com/html: Web sitesi dosyalarının bulunduğu kök dizini belirtir.ErrorLogveCustomLog: Hata ve erişim günlüklerinin nereye yazılacağını belirtir.- : Belirtilen dizin için özel yapılandırma ayarları tanımlar.
Options Indexes FollowSymLinks: Dizin listelemesini etkinleştirir ve sembolik bağlantıları takip etmeye izin verir.AllowOverride All:.htaccessdosyalarının kullanımına izin verir. Bu, WordPress gibi CMS’ler için önemlidir.Require all granted: Tüm gelen isteklere erişim izni verir.
Dosyayı kaydedip kapatın.
Sanal Hostu Etkinleştirme
Yeni sanal host dosyasını etkinleştirmek için Apache’nin a2ensite yardımcı programını kullanın:
sudo a2ensite example.com.conf
Varsayılan Apache sayfasını devre dışı bırakmak isterseniz (önerilir, çünkü artık kendi siteniz var):
sudo a2dissite 000-default.conf
Yapılandırma Sözdizimini Test Etme
Herhangi bir hatayı önlemek için Apache yapılandırmanızın sözdizimini test etmek her zaman iyi bir fikirdir:
sudo apache2ctl configtest
Eğer çıktı Syntax OK ise, yapılandırmanızda bir sorun yok demektir.
Apache’yi Yeniden Yükleme
Yeni sanal host yapılandırmasının etkin olması için Apache’yi yeniden yüklemeniz gerekir:
sudo systemctl reload apache2
Sanal Hostu Test Etme
Eğer gerçek bir alan adınız varsa ve DNS kayıtlarınızı sunucunuzun IP adresine yönlendirdiyseniz, tarayıcınızdan http://example.com adresine giderek yeni sitenizi test edebilirsiniz.
Eğer bir alan adınız yoksa veya yerel olarak test ediyorsanız, bilgisayarınızın hosts dosyasını düzenleyerek (Windows’ta C:\Windows\System32\drivers\etc\hosts, Linux/macOS’ta /etc/hosts) sunucunuzun IP adresini alan adınıza eşleştirebilirsiniz:
# /etc/hosts veya C:\Windows\System32\drivers\etc\hosts dosyasına ekleyin
YOUR_SERVER_IP example.com www.example.com
Bu değişikliği yaptıktan sonra tarayıcınızdan http://example.com adresine giderek yeni sanal hostunuzun çalıştığını görebilirsiniz.
Adım 6: PHP Yapılandırması (İsteğe Bağlı İyileştirmeler)
PHP’nin varsayılan yapılandırma ayarları çoğu durum için yeterli olsa da, özellikle daha büyük uygulamalar veya belirli gereksinimler için php.ini dosyasında bazı değişiklikler yapmanız gerekebilir. Bu ayarlar, dosya yükleme boyutları, bellek limitleri, çalışma zamanı limitleri gibi önemli parametreleri kontrol eder.
php.ini Dosyasını Bulma
Apache için kullanılan php.ini dosyasının konumu, PHP sürümüne ve dağıtıma göre değişebilir. Genellikle /etc/php/7.x/apache2/php.ini yolunda bulunur (burada 7.x, yüklü PHP sürümünüzü temsil eder, örneğin 7.3).
Kesin konumu bulmak için aşağıdaki komutu kullanabilirsiniz:
php -i | grep "Loaded Configuration File"
Çıktı size doğru php.ini dosyasının yolunu gösterecektir.
Önemli php.ini Ayarlarını Değiştirme
Şimdi, php.ini dosyasını bir metin düzenleyici ile açın:
sudo nano /etc/php/7.3/apache2/php.ini
Aşağıda, yaygın olarak değiştirilen bazı ayarlar ve önerilen değerleri bulunmaktadır. Bu değerleri uygulamanızın gereksinimlerine göre ayarlayabilirsiniz:
upload_max_filesize: HTTP üzerinden yüklenebilecek maksimum dosya boyutunu belirler. Varsayılan genellikle 2M (2 Megabayt) olabilir. Daha büyük dosyalar yüklemeniz gerekiyorsa artırın.upload_max_filesize = 64Mpost_max_size: POST metodu ile gönderilebilecek maksimum veri boyutunu belirler. Bu değer,upload_max_filesizedeğerinden büyük veya ona eşit olmalıdır.post_max_size = 64Mmemory_limit: Bir PHP betiğinin kullanabileceği maksimum bellek miktarını belirler. Büyük ve karmaşık uygulamalar için bu değeri artırmak gerekebilir.memory_limit = 256Mmax_execution_time: Bir PHP betiğinin çalışmasına izin verilen maksimum süreyi (saniye cinsinden) belirler. Uzun süren işlemler için artırılabilir, ancak çok yüksek değerler sunucu kaynaklarını tüketebilir.max_execution_time = 300date.timezone: Sunucunun saat dilimini belirler. Bu ayar, zamanla ilgili fonksiyonların doğru çalışması için kritik öneme sahiptir. Kendi bölgenizin saat dilimini ayarlayın (örneğin, “Europe/Istanbul”).date.timezone = Europe/Istanbuldisplay_errors: Geliştirme ortamında hataları doğrudan tarayıcıda göstermek faydalı olsa da, üretim ortamında güvenlik nedeniyle bu ayarıOffolarak bırakmak önemlidir. Hatalar bunun yerine log dosyalarına yazılmalıdır.display_errors = Off
Değişiklikleri yaptıktan sonra dosyayı kaydedip kapatın.
Apache’yi Yeniden Başlatma
php.ini dosyasında yapılan değişikliklerin etkili olması için Apache web sunucusunu yeniden başlatmanız gerekmektedir:
sudo systemctl restart apache2
Değişikliklerin uygulandığını doğrulamak için, daha önce oluşturduğunuz info.php dosyasını geçici olarak tekrar oluşturup tarayıcınızdan kontrol edebilirsiniz (ancak test sonrası silmeyi unutmayın!).
Sonuç
Tebrikler! Debian 10 sunucunuza LAMP (Linux, Apache, MariaDB, PHP) yığınını başarıyla kurdunuz. Artık dinamik web siteleri ve uygulamaları barındırmak için güçlü ve esnek bir platforma sahipsiniz. Bu makale boyunca, sistem güncellemesinden başlayarak Apache web sunucusunu, MariaDB veritabanı sunucusunu ve PHP betik dilini nasıl kuracağınızı, yapılandıracağınızı ve test edeceğinizi adım adım öğrendiniz.
LAMP yığını, WordPress, Joomla, Drupal gibi popüler içerik yönetim sistemlerini veya kendi özel PHP uygulamalarınızı çalıştırmak için temel bir ortam sağlar. Kurulum sonrası dikkat etmeniz gereken bazı önemli noktalar ve atabileceğiniz sonraki adımlar şunlardır:
- Güvenlik: Sunucunuzun ve uygulamalarınızın güvenliğini sağlamak sürekli bir süreçtir. Güvenlik duvarınızı (UFW) etkin tutun, güncellemeleri düzenli olarak yapın ve varsayılan parolaları asla kullanmayın. SSH erişimi için parola yerine anahtar tabanlı kimlik doğrulaması kullanmayı düşünebilirsiniz.
- SSL/TLS (HTTPS): Web sitenizin güvenliğini artırmak ve SEO sıralamanızı iyileştirmek için Let’s Encrypt gibi ücretsiz sertifika sağlayıcılarından SSL/TLS sertifikası alarak HTTPS’yi etkinleştirmeniz şiddetle tavsiye edilir.
- Yedeklemeler: Veritabanınızın ve web dosyalarınızın düzenli yedeklerini almayı ihmal etmeyin. Olası veri kayıplarına karşı en iyi önlemdir.
- İzleme: Sunucunuzun performansını ve kaynak kullanımını izlemek için araçlar kurmayı düşünebilirsiniz.
- Uygulama Kurulumu: Artık bir LAMP yığınına sahip olduğunuza göre, tercih ettiğiniz bir CMS’i (örneğin WordPress) veya kendi PHP uygulamanızı kurmaya başlayabilirsiniz.
Bu rehber, LAMP yığını kurulumu için sağlam bir temel oluşturmaktadır. Daha fazla bilgi edinmek ve sunucunuzu optimize etmek için her bir bileşenin (Apache, MariaDB, PHP) resmi belgelerini incelemeniz ve topluluk kaynaklarından faydalanmanız önerilir. Başarılar dileriz!
