- Puanlar
- 10429
- Başarılar
- 8
- New
- #1
Ubuntu 24.04 Üzerinde Linux, Apache, MySQL, PHP (LAMP) Kurulumu
LAMP, bir sunucunun dinamik web sitelerini ve web uygulamalarını barındırmasını sağlayan açık kaynaklı yazılım grubudur. Ubuntu 24.04 (Noble Numbat) ile tam uyumlu güncel sürümleri içerir.
Ön Şartlar
- root ya da sudo yetkilerine sahip kullanıcı
- Ubuntu 24.04 sunucusu (veya masaüstü)
- UFW güvenlik duvarı
- İnternet bağlantısı
Adım 1 - Apache Kurulumu
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw enable
Apache Güvenlik Duvarı Kontrolü
sudo ufw app list
sudo ufw app info "Apache Full"
Apache profillerini kontrol edin ve aktifleştirin:
sudo ufw allow in "Apache Full"
sudo ufw allow in "Apache Secure" # HTTPS için
sudo ufw status
Apache Testi
Tarayıcıdan aşağıdaki adresi açın:
http://sunucuipadresiniz
Ubuntu 24.04'ün varsayılan Apache hoşgeldin sayfasını görmelisiniz.
Sunucu IP Adresini Öğrenme
ip addr show | grep inet | awk '{ print $2; }' | grep -v '^::' | sed 's/\/.*$//'
Alternatif yöntem (dış IP):
curl http://icanhazip.com
Adım 2 - MySQL Kurulumu
sudo apt install mysql-server -y
MySQL Güvenlik Ayarları
sudo mysql_secure_installation
MySQL Konsoluna Giriş
sudo mysql
Kullanıcı Doğrulama Kontrolü
SELECT user, authentication_string, plugin, host FROM mysql.user;
Root Kullanıcısını Şifreli Girişe Çevirme (MySQL 8.0)
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'GucluSifreniz2024*!';
FLUSH PRIVILEGES;
Test Veritabanı ve Kullanıcı Oluşturma (Opsiyonel)
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'KullaniciSifresi123!';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
Adım 3 - PHP Kurulumu (PHP 8.3)
sudo apt install php libapache2-mod-php php-mysql -y
Yaygın PHP Eklentileri
sudo apt install php-cli php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath -y
PHP Önceliğini Ayarlama
sudo nano /etc/apache2/mods-enabled/dir.conf
Eski yapı:
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Yeni yapı (index.php önce gelsin):
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Apache Yeniden Başlatma
sudo systemctl restart apache2
PHP Sürümünü Kontrol Etme
php --version
PHP Modülleri
Yüklü Modülleri Listeleme
php -m
Tüm PHP Modüllerini Görüntüleme
apt search php- | grep "^php" | less
Modül Detayı
apt show php-cli
Ek Modül Kurulumu
sudo apt install php-redis php-imagick php-xdebug
Adım 4 - Sanal Host Ayarları
Dizin Oluşturma
sudo mkdir -p /var/www/sizinalanadiniz.com/public_html
Yetkileri Ayarlama
sudo chown -R $USER:$USER /var/www/sizinalanadiniz.com
sudo chmod -R 755 /var/www/sizinalanadiniz.com
Örnek HTML Sayfası
nano /var/www/sizinalanadiniz.com/public_html/index.html
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title>Ubuntu 24.04 LAMP</title>
</head>
<body>
<h1>LAMP Başarıyla Kuruldu!</h1>
<p>Ubuntu 24.04 üzerinde Apache, MySQL ve PHP çalışıyor.</p>
</body>
</html>
Apache VirtualHost Dosyası
sudo nano /etc/apache2/sites-available/sizinalanadiniz.com.conf
<VirtualHost *:80>
ServerName sizinalanadiniz.com
ServerAlias www.sizinalanadiniz.com
ServerAdmin [email protected]
DocumentRoot /var/www/sizinalanadiniz.com/public_html
<Directory /var/www/sizinalanadiniz.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Siteyi Etkinleştirme
sudo a2ensite sizinalanadiniz.com
sudo a2dissite 000-default.conf
Apache Yapılandırma Testi
sudo apache2ctl configtest
Çıktı: "Syntax OK" görmelisiniz.
Apache Yeniden Başlat
sudo systemctl restart apache2
Adım 5 - PHP Testi
nano /var/www/sizinalanadiniz.com/public_html/bilgi.php
<?php
phpinfo();
?>
Tarayıcıdan açın:
http://sizinalanadiniz.com/bilgi.php
PHP 8.3 bilgilerini gösteren bir sayfa görmelisiniz.
Test Dosyasını Silme
sudo rm /var/www/sizinalanadiniz.com/public_html/bilgi.php
Adım 6 - Ek Yapılandırmalar
PHP Ayarlarını Düzenleme
sudo nano /etc/php/8.3/apache2/php.ini
Önerilen değişiklikler:
upload_max_filesize = 32M
post_max_size = 32M
memory_limit = 256M
max_execution_time = 300
date.timezone = Europe/Istanbul
Apache Modüllerini Yönetme
sudo a2enmod rewrite # URL yeniden yazma
sudo a2enmod headers # HTTP header yönetimi
sudo systemctl restart apache2
MySQL Servisini Yönetme
sudo systemctl status mysql
sudo systemctl restart mysql
sudo systemctl enable mysql # Otomatik başlatma
Adım 7 - Güvenlik İpuçları
UFW Kurallarını Kontrol Etme
sudo ufw status numbered
SSH Portunu Değiştirme (Opsiyonel)
sudo nano /etc/ssh/sshd_config
# Port 22 yerine Port 2222 yazın
sudo systemctl restart sshd
Apache'de .htaccess Kullanımı
Sanal host dosyasında AllowOverride All olduğundan emin olun.
Otomatik Güvenlik Güncellemeleri
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Sorun Giderme
Apache Hatalarını Görüntüleme
sudo tail -f /var/log/apache2/error.log
MySQL Hatalarını Görüntüleme
sudo tail -f /var/log/mysql/error.log
Port Dinleme Kontrolü
sudo netstat -tulpn | grep -E '(80|443|3306)'
SELinux/AppArmor Durumu
sudo aa-status
Sonuç
Ubuntu 24.04 üzerinde LAMP kurulumu başarıyla tamamlandı. Artık modern PHP 8.3 uygulamaları, MySQL 8.0 ve Apache 2.4 ile web projelerinizi çalıştırabilirsiniz.
Kurulan bileşenler:
- Linux (Ubuntu 24.04 LTS - Noble Numbat)
- Apache 2.4
- MySQL 8.0
- PHP 8.3
Önemli Notlar:
- Ubuntu 24.04, 2029 yılına kadar desteklenecektir (LTS)
- PHP 7.x kullanmak istiyorsanız Ubuntu 20.04 veya 22.04 tercih edin
- MySQL 8.0'da varsayılan kimlik doğrulama eklentisi caching_sha2_password'dır
- Üretim ortamında HTTPS kullanmak için Let's Encrypt ile SSL sertifikası kurun
Başarılı bir LAMP deneyimi için düzenli güncelleme yapmayı ve güvenlik duvarı kurallarını kontrol etmeyi unutmayın.