Ubuntu 24.04 Linux VPS'e LAMP Yığını Kurulumu

2 min
VPS/VDS Hosting

LAMP yığını (Linux, Apache, MariaDB, PHP), WordPress, Laravel ve çoğu PHP uygulamasının klasik temelidir. Bu rehberde Ubuntu 24.04 yüklü yeni bir VPS Linux Infrawire üzerinde, ayrı bir sanal sunucu (virtual host) ve yalnızca gerekli portları açan bir güvenlik duvarıyla adım adım kurulum yapacaksınız.

📋 Ön koşullar

  • Ubuntu 24.04 yüklü bir KVM VPS (IP adresi ve root parolası müşteri alanınızda yer alır)
  • root olarak veya sudo yetkili bir kullanıcıyla SSH erişimi
  • A (ve AAAA) kayıtları VPS_IP adresine yönlenen bir example.com alan adı

Aşağıdaki komutlar root olduğunuzu varsayar. Değilseniz başına sudo ekleyin.

1. Sistemi güncelleyin

Bash
apt update && apt upgrade -y

2. Apache'yi kurun

Bash
apt install -y apache2 systemctl enable --now apache2 apache2 -v

Hizmet hemen başlar ve her açılışta otomatik çalışır.

3. MariaDB'yi kurun

MariaDB, Ubuntu depolarında bulunur ve MySQL'in yerine sorunsuz geçer. Oracle MySQL tercih ediyorsanız mysql-server kurun, ancak aynı makineye ikisini birden kurmayın.

Bash
apt install -y mariadb-server systemctl enable --now mariadb mysql_secure_installation

Sihirbazda root için unix_socket kimlik doğrulamasını koruyun, istenirse güçlü bir parola belirleyin, anonim kullanıcıları kaldırın, uzaktan root girişini yasaklayın ve test veritabanını silin. Ardından uygulamanız için bir veritabanı ve özel bir kullanıcı oluşturun:

Bash
mariadb
SQL
1CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD'; 3GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost'; 4FLUSH PRIVILEGES; 5EXIT;

4. PHP 8.3'ü kurun

Ubuntu 24.04, PHP 8.3'ü varsayılan depolarında sunar; ek bir PPA gerekmez.

Bash
apt install -y php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-intl php -v

libapache2-mod-php paketi Apache'yi otomatik olarak prefork MPM'ye geçirir ve PHP modülünü yükler.

5. Sanal sunucu oluşturun ve mod_rewrite'ı etkinleştirin

Bash
mkdir -p /var/www/example.com/public_html chown -R www-data:www-data /var/www/example.com nano /etc/apache2/sites-available/example.com.conf
Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5 6 <Directory /var/www/example.com/public_html> 7 AllowOverride All 8 Require all granted 9 </Directory> 10 11 ErrorLog ${APACHE_LOG_DIR}/example.com-error.log 12 CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined 13</VirtualHost>

AllowOverride All, WordPress ve Laravel'deki temiz URL'lerin dayandığı .htaccess dosyalarını etkinleştirir. Şimdi modülü ve siteyi etkinleştirip varsayılan sayfayı devre dışı bırakın:

Bash
a2enmod rewrite a2ensite example.com.conf a2dissite 000-default.conf apache2ctl configtest systemctl reload apache2

Yeniden yüklemeden önce configtest çıktısı Syntax OK olmalıdır.

6. Güvenlik duvarını yapılandırın

Önce SSH'ye izin verin; aksi halde güvenlik duvarını açtığınızda sunucuya erişiminizi kaybedersiniz.

Bash
ufw allow OpenSSH ufw allow 'Apache Full' ufw enable ufw status

Apache Full profili 80 ve 443 numaralı portları açar. 3306 portunu açmayın: MariaDB'nin yalnızca yerelde dinlemesi yeterlidir.

7. PHP'yi test edin ve test dosyasını silin

Bash
echo '<?php phpinfo();' > /var/www/example.com/public_html/info.php curl -sI http://example.com/info.php | head -n 1

HTTP/1.1 200 OK almalısınız. PHP yapılandırma sayfasını görmek için tarayıcıda http://example.com/info.php adresini açın. phpinfo() sayfası sürümleri, dizin yollarını ve modülleri ifşa eder; bu yüzden hemen silin:

Bash
rm /var/www/example.com/public_html/info.php

Diğer bileşenleri de kontrol edin:

Bash
apache2ctl -M | grep -E 'rewrite|php' php -m | grep -E 'mysqli|pdo_mysql' systemctl is-active apache2 mariadb

🛠️ Sorun giderme

Apache'nin varsayılan sayfası hâlâ görünüyor. Varsayılan site hâlâ etkin ya da DNS henüz yayılmadı. a2dissite 000-default.conf komutunu çalıştırın, Apache'yi yeniden yükleyin ve curl -I -H 'Host: example.com' http://VPS_IP/ ile test edin.

403 Forbidden. Dizinde Require all granted olduğunu, www-data kullanıcısının dosyaları okuyabildiğini (ls -ld /var/www/example.com/public_html) kontrol edin ve /var/log/apache2/example.com-error.log günlüğüne bakın.

Tarayıcı PHP dosyasını çalıştırmak yerine indiriyor. PHP modülü yüklenmemiş. apache2ctl -M | grep php komutunu, ardından systemctl restart apache2 çalıştırın. Çıktı yoksa libapache2-mod-php paketini yeniden kurun.

Yeniden yazma kuralları yok sayılıyor (temiz URL'lerde 404). a2enmod rewrite komutunun çalıştırıldığını ve <Directory> bloğunuzda AllowOverride All bulunduğunu doğrulayın.


🎉 LAMP yığınınız hazır: Apache, MariaDB ve PHP 8.3 ilk sitenizi barındırmaya hazır.

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör

Çerez kullanıyoruz

Sitemizdeki deneyiminizi iyileştirmek için analiz çerezleri kullanıyoruz. Hiçbir veri üçüncü taraflara satılmaz. Daha fazlasını şurada öğrenin: gizlilik politikası.