LAMP Stack Kurulumu: Apache + MySQL + PHP Ubuntu 22.04
Ubuntu 22.04'te LAMP stack (Linux, Apache, MySQL, PHP) kurulumu, virtual host yapılandırması ve phpMyAdmin rehberi.
LAMP Stack Nedir?
LAMP Stack; Linux, Apache, MySQL ve PHP'nin baş harflerinden oluşan klasik web sunucu yığınıdır. 2000'li yılların başından bu yana internet altyapısının omurgasını oluşturan LAMP, günümüzde hâlâ milyonlarca web sitesi tarafından kullanılmaktadır. Apache'nin zengin modül ekosistemi, .htaccess desteği ve virtual host esnekliği onu birçok senaryo için tercih edilen seçenek yapar.
Apache HTTP Server, dünya genelinde en yaygın kullanılan web sunucusu yazılımıdır. Prefork, Worker ve Event MPM (Multi-Processing Module) modelleri sayesinde farklı yük senaryolarına uyum sağlayabilir. PHP için mod_php modülü veya PHP-FPM ile çalışabilir; bu rehberde PHP-FPM kullanacağız çünkü daha iyi bellek yönetimi sunar.
Ön Gereksinimler
- Ubuntu 22.04 LTS sunucu
- Sudo yetkili kullanıcı
- 80 ve 443 portlarına erişim
- Alan adı (isteğe bağlı, IP ile de çalışır)
Adım 1: Sistem Güncellemesi
sudo apt update && sudo apt upgrade -y
Adım 2: Apache2 Kurulumu
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
UFW ile Port Açma
sudo ufw allow in "Apache Full"
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Apache Modüllerini Etkinleştirme
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
sudo a2enmod proxy_fcgi setenvif
sudo systemctl restart apache2
Adım 3: MySQL 8.0 Kurulumu
sudo apt install mysql-server -y
sudo mysql_secure_installation
Veritabanı ve Kullanıcı Oluşturma
sudo mysql
CREATE DATABASE lamp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'lamp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'GucluSifre!2024';
GRANT ALL PRIVILEGES ON lamp_db.* TO 'lamp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Adım 4: PHP 8.1 Kurulumu
sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-xml \
php8.1-mbstring php8.1-gd php8.1-zip php8.1-intl php8.1-bcmath php8.1-opcache
Apache'yi PHP-FPM ile Yapılandırma
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2 php8.1-fpm
Adım 5: Virtual Host Yapılandırması
sudo nano /etc/apache2/sites-available/mysite.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/mysite
ServerAdmin webmaster@example.com
<Directory /var/www/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/mysite_error.log
CustomLog ${APACHE_LOG_DIR}/mysite_access.log combined
</VirtualHost>
Site Dizini Oluşturun ve Aktif Edin
sudo mkdir -p /var/www/mysite
sudo chown -R www-data:www-data /var/www/mysite
sudo a2ensite mysite.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Adım 6: .htaccess ile URL Yönlendirme
WordPress ve diğer uygulamaların temiz URL'ler kullanabilmesi için .htaccess dosyası oluşturun:
sudo nano /var/www/mysite/.htaccess
Options -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Adım 7: phpMyAdmin Kurulumu
Veritabanını web arayüzünden yönetmek için phpMyAdmin kurun:
sudo apt install phpmyadmin -y
Kurulum sırasında "apache2" seçeneğini işaretleyin ve dbconfig-common kurulumunu onaylayın. phpMyAdmin için ayrı bir parola belirleyin.
sudo ln -s /usr/share/phpmyadmin /var/www/mysite/phpmyadmin
phpMyAdmin Güvenlik Ayarı
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Alias /dbadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_authz_core.c>
Require ip 192.168.1.0/24
</IfModule>
</Directory>
Apache Performans Optimizasyonu
MPM Event Moduna Geçiş
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
KeepAlive Ayarları
sudo nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Sık Karşılaşılan Sorunlar
500 Internal Server Error
sudo tail -50 /var/log/apache2/error.log
sudo apache2ctl configtest
RewriteRule Çalışmıyor
mod_rewrite'ın etkin ve AllowOverride All'ın ayarlı olduğundan emin olun:
sudo a2enmod rewrite
sudo systemctl restart apache2
Sonuç
Ubuntu 22.04'te LAMP Stack kurulumunu ve temel yapılandırmasını tamamladınız. Apache'nin güçlü virtual host yapısı, .htaccess desteği ve phpMyAdmin ile veritabanı yönetimi bu yapıyı WordPress, Drupal ve klasik PHP uygulamaları için mükemmel kılar.
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!