VPS Sunucuda LAMP Stack Kurulumu (Linux, Apache, MySQL, PHP)
LAMP, web uygulamaları geliştirmek ve yayınlamak için kullanılan popüler bir açık kaynaklı yazılım yığınıdır. Bu yığın, Linux işletim sistemi, Apache web sunucusu, MySQL veritabanı yönetim sistemi ve PHP programlama dilinden oluşur. LAMP, özellikle dinamik web siteleri ve uygulamaları için ideal bir çözümdür. Bu makalede, bir VPS (Sanal Özel Sunucu) üzerinde LAMP yığınını adım adım nasıl kuracağınızı öğreneceksiniz.
1. Giriş: LAMP Stack Nedir ve Neden Kullanılır?
LAMP, web geliştiricileri arasında yaygın olarak kullanılan bir platformdur. Her bir bileşen, açık kaynaklı ve ücretsiz olduğundan, maliyet etkin bir çözüm sunar. Ayrıca, geniş bir topluluğa sahip olması, sorun giderme ve destek konusunda büyük avantaj sağlar. LAMP'ın her bir bileşeni belirli bir görevi yerine getirir:
- Linux: İşletim sistemi olarak görev yapar. Sunucunun temelini oluşturur ve diğer tüm bileşenlerin üzerinde çalıştığı platformdur.
- Apache: Web sunucusudur. Kullanıcılardan gelen HTTP isteklerini alır ve web sayfalarını (HTML, CSS, JavaScript) tarayıcıya gönderir.
- MySQL/MariaDB: Veritabanı yönetim sistemidir. Verileri yapılandırılmış bir şekilde saklar ve yönetir. Web uygulamalarının kullanıcı verilerini, ürün bilgilerini ve diğer dinamik içerikleri saklamak için kullanılır. (MariaDB, MySQL'in açık kaynaklı bir çatallanmasıdır ve bu makalede MySQL yerine MariaDB kullanacağız.)
- PHP: Programlama dilidir. Dinamik web sayfaları oluşturmak için kullanılır. Veritabanından veri çekmek, kullanıcı girişlerini işlemek ve diğer sunucu tarafı işlemleri gerçekleştirmek için kullanılır.
LAMP yığını, dinamik web siteleri, bloglar, e-ticaret platformları ve diğer web uygulamaları için güçlü ve esnek bir temel sağlar. Güvenilirliği, performansı ve ölçeklenebilirliği sayesinde, birçok büyük web sitesi ve uygulama LAMP yığını üzerinde çalışmaktadır.
2. VPS Sunucusuna Bağlanma ve Güncellemeleri Yapma
LAMP kurulumuna başlamadan önce, VPS sunucunuza bağlanmanız ve sisteminizi en son sürüme güncellemeniz gerekmektedir. Bu, güvenlik açıklarını kapatmak ve en iyi performansı elde etmek için önemlidir.
2.1. SSH ile Sunucuya Bağlanma
Sunucunuza bağlanmak için SSH (Secure Shell) kullanmanız gerekecektir. SSH, sunucunuza güvenli bir şekilde erişmenizi sağlayan bir protokoldür. Windows'ta PuTTY, macOS ve Linux'ta ise Terminal uygulamasını kullanarak SSH bağlantısı kurabilirsiniz.
Aşağıdaki komutu kullanarak sunucunuza bağlanın (kullanici_adi
ve sunucu_ip_adresi
'ni kendi bilgilerinizle değiştirin):
ssh kullanici_adi@sunucu_ip_adresi
Bağlantı kurulduktan sonra, sunucunuzun parolasını girmeniz istenecektir.
2.2. Sistem Güncellemelerini Yapma
Sunucuya bağlandıktan sonra, aşağıdaki komutları kullanarak sistem güncellemelerini yapın:
sudo apt update
sudo apt upgrade
Bu komutlar, mevcut paket listesini güncelleyecek ve kurulu paketlerin en son sürümlerini yükleyecektir. Güncelleme işlemi sırasında, bazı paketlerin yeniden başlatılması gerekebilir. Bu durumda, ekrandaki talimatları takip edin.
3. Apache Web Sunucusunu Kurma ve Yapılandırma
Apache, web sunucusu olarak görev yapacak ve web sitenizin dosyalarını internet üzerinden erişilebilir hale getirecektir.
3.1. Apache Kurulumu
Apache'yi kurmak için aşağıdaki komutu kullanın:
sudo apt install apache2
Kurulum tamamlandıktan sonra, Apache otomatik olarak başlayacaktır. Apache'nin çalışıp çalışmadığını kontrol etmek için, web tarayıcınızda sunucunuzun IP adresini ziyaret edin. Eğer Apache doğru şekilde kurulmuşsa, Apache'nin varsayılan karşılama sayfasını görmelisiniz.
3.2. Güvenlik Duvarını (Firewall) Yapılandırma
Sunucunuzda bir güvenlik duvarı (genellikle UFW) etkinse, Apache'ye izin vermeniz gerekecektir. Aşağıdaki komutları kullanarak Apache'ye izin verin:
sudo ufw allow 'Apache Full'
Bu komut, hem HTTP (80) hem de HTTPS (443) trafiğine izin verecektir. UFW'nin etkin olup olmadığını kontrol etmek için aşağıdaki komutu kullanın:
sudo ufw status
3.3. Sanal Host (Virtual Host) Oluşturma
Apache'de birden fazla web sitesi barındırmak için sanal hostlar kullanmanız gerekecektir. Sanal hostlar, farklı alan adlarını veya alt alan adlarını farklı dizinlere yönlendirmenizi sağlar.
Öncelikle, web sitenizin dosyalarını saklayacağınız bir dizin oluşturun (ornek.com
yerine kendi alan adınızı kullanın):
sudo mkdir -p /var/www/ornek.com/html
Dizinin sahipliğini geçerli kullanıcıya verin:
sudo chown -R $USER:$USER /var/www/ornek.com/html
Dizin izinlerini ayarlayın:
sudo chmod -R 755 /var/www/ornek.com
Şimdi, Apache için bir sanal host yapılandırma dosyası oluşturun (ornek.com.conf
yerine kendi dosya adınızı kullanın):
sudo nano /etc/apache2/sites-available/ornek.com.conf
Aşağıdaki içeriği dosyaya ekleyin (ornek.com
ve www.ornek.com
yerine kendi alan adınızı kullanın):
ServerAdmin webmaster@localhost
ServerName ornek.com
ServerAlias www.ornek.com
DocumentRoot /var/www/ornek.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Dosyayı kaydedin ve kapatın. Ardından, sanal hostu etkinleştirin:
sudo a2ensite ornek.com.conf
Varsayılan sanal hostu devre dışı bırakın:
sudo a2dissite 000-default.conf
Apache'yi yeniden başlatın:
sudo systemctl restart apache2
Artık, alan adınızı veya IP adresinizi web tarayıcınızda ziyaret ettiğinizde, /var/www/ornek.com/html
dizinindeki dosyalar görüntülenmelidir.
4. MariaDB Veritabanı Kurulumu ve Güvenliği
MariaDB, web uygulamalarınızın verilerini saklamak ve yönetmek için kullanılacak veritabanı yönetim sistemidir.
4.1. MariaDB Kurulumu
MariaDB'yi kurmak için aşağıdaki komutu kullanın:
sudo apt install mariadb-server
Kurulum tamamlandıktan sonra, MariaDB otomatik olarak başlayacaktır.
4.2. Güvenlik Ayarlarını Yapılandırma
MariaDB'nin güvenliğini artırmak için, aşağıdaki komutu kullanarak güvenlik yapılandırma scriptini çalıştırın:
sudo mysql_secure_installation
Bu script, aşağıdaki adımları gerçekleştirmenizi isteyecektir:
- Geçerli root parolasını girin (eğer henüz ayarlanmamışsa, boş bırakın).
- Yeni bir root parolası ayarlayın.
- Anonim kullanıcıları kaldırın.
- Uzak root erişimini devre dışı bırakın.
- Test veritabanını kaldırın.
- Ayrıcalık tablolarını yeniden yükleyin.
Bu adımları dikkatlice takip ederek MariaDB'nin güvenliğini artırabilirsiniz.
4.3. Veritabanı ve Kullanıcı Oluşturma
Web uygulamanız için bir veritabanı ve kullanıcı oluşturmanız gerekecektir. MariaDB'ye root kullanıcısı olarak bağlanın:
sudo mysql -u root -p
Root parolasını girin. Ardından, aşağıdaki SQL komutlarını kullanarak bir veritabanı ve kullanıcı oluşturun (veritabani_adi
, kullanici_adi
ve parola
yerine kendi bilgilerinizi kullanın):
CREATE DATABASE veritabani_adi;
CREATE USER 'kullanici_adi'@'localhost' IDENTIFIED BY 'parola';
GRANT ALL PRIVILEGES ON veritabani_adi.* TO 'kullanici_adi'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Bu komutlar, veritabani_adi
adında bir veritabanı oluşturacak, kullanici_adi
adında bir kullanıcı oluşturacak ve bu kullanıcıya veritabanı üzerinde tüm yetkileri verecektir.
5. PHP Kurulumu ve Yapılandırması
PHP, dinamik web sayfaları oluşturmak ve veritabanı ile etkileşim kurmak için kullanılacak programlama dilidir.
5.1. PHP Kurulumu
PHP ve gerekli modülleri kurmak için aşağıdaki komutu kullanın:
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-intl php-mbstring php-soap php-xml php-zip
Bu komut, PHP'nin temel modüllerini ve Apache ile entegrasyonunu sağlayacak modülleri kuracaktır.
5.2. PHP Ayarlarını Yapılandırma
PHP ayarlarını yapılandırmak için, php.ini
dosyasını düzenlemeniz gerekecektir. Bu dosya, PHP'nin davranışını kontrol eden çeşitli ayarları içerir. Dosyanın konumunu bulmak için aşağıdaki komutu kullanın:
php -i | grep "Loaded Configuration File"
php.ini
dosyasını bir metin düzenleyici ile açın (örneğin, sudo nano /etc/php/7.4/apache2/php.ini
) ve aşağıdaki ayarları isteğinize göre düzenleyin:
upload_max_filesize
: Yükleme dosyasının maksimum boyutunu belirler.post_max_size
: POST verilerinin maksimum boyutunu belirler.memory_limit
: Bir scriptin kullanabileceği maksimum bellek miktarını belirler.display_errors
: Hata mesajlarının görüntülenip görüntülenmeyeceğini belirler (geliştirme ortamında etkinleştirilmesi önerilir, ancak üretim ortamında devre dışı bırakılması önerilir).
Değişiklikleri yaptıktan sonra, Apache'yi yeniden başlatın:
sudo systemctl restart apache2
5.3. PHP'nin Çalışıp Çalışmadığını Test Etme
PHP'nin doğru şekilde kurulduğunu test etmek için, web sitenizin kök dizininde (/var/www/ornek.com/html
) bir info.php
dosyası oluşturun:
sudo nano /var/www/ornek.com/html/info.php
Aşağıdaki içeriği dosyaya ekleyin:
Dosyayı kaydedin ve kapatın. Ardından, web tarayıcınızda alanadiniz.com/info.php
adresini ziyaret edin. PHP doğru şekilde kurulmuşsa, PHP yapılandırma bilgilerini gösteren bir sayfa görmelisiniz. Testi tamamladıktan sonra, güvenlik nedeniyle bu dosyayı silmeniz önerilir.
6. Sonuç ve Özet
Bu makalede, bir VPS sunucusunda LAMP yığınını nasıl kuracağınızı adım adım öğrendiniz. Bu adımları takip ederek, dinamik web siteleri ve uygulamaları geliştirmek ve yayınlamak için güçlü bir platforma sahip olabilirsiniz. Unutmayın ki, güvenlik her zaman öncelikli olmalıdır. Sunucunuzu düzenli olarak güncelleyin, güçlü parolalar kullanın ve gereksiz hizmetleri devre dışı bırakın. Başarılar!