DigitalOcean’da LAMP 1-Click Kurulumu Nasıl Kullanılır?
Günümüzde web uygulamaları ve dinamik web siteleri geliştirmek için en popüler ve sağlam altyapılardan biri LAMP (Linux, Apache, MySQL, PHP) yığınıdır. Açık kaynak kodlu bileşenlerden oluşan bu yapı, geliştiricilere esneklik, maliyet etkinliği ve geniş bir topluluk desteği sunar. Web sitelerini veya uygulamaları hızlı bir şekilde dağıtmak isteyenler için DigitalOcean gibi bulut sağlayıcıları, bu süreci önemli ölçüde basitleştiren “1-Click Install” çözümleri sunar. Bu makalede, DigitalOcean platformunda LAMP 1-Click kurulumunu kullanarak bir web sunucusunu baştan sona nasıl kuracağınızı, yapılandıracağınızı ve güvenli hale getireceğinizi detaylı bir şekilde inceleyeceğiz.
Giriş: LAMP Yığını ve DigitalOcean’ın Rolü
LAMP, dört temel bileşenin baş harflerinden oluşan bir kısaltmadır:
* L (Linux): İşletim sistemi olarak Ubuntu, CentOS gibi Linux dağıtımları kullanılır. DigitalOcean’daki 1-Click kurulumu genellikle Ubuntu tabanlıdır. Linux, güvenilirliği, güvenliği ve performansıyla sunucu ortamları için ideal bir seçimdir.
* A (Apache): Dünya genelinde en yaygın kullanılan web sunucularından biridir. Apache HTTP Sunucusu, istemcilerden gelen web isteklere yanıt verir ve web sayfalarını sunar.
* M (MySQL/MariaDB): İlişkisel bir veritabanı yönetim sistemidir. Web uygulamalarının verilerini depolamak ve yönetmek için kullanılır. DigitalOcean’ın LAMP stack’i genellikle MySQL veya onun açık kaynaklı bir çatalı olan MariaDB ile birlikte gelir.
* P (PHP): Sunucu tarafında çalışan, web geliştirme için özel olarak tasarlanmış popüler bir betik dilidir. Dinamik web içeriği oluşturmak, veritabanlarıyla etkileşim kurmak ve form verilerini işlemek için kullanılır.
DigitalOcean, geliştiricilerin ve küçük işletmelerin bulut altyapısını kolayca kullanmalarını sağlayan popüler bir bulut sağlayıcısıdır. “Droplet” adını verdiği sanal özel sunucular (VPS) sunar. DigitalOcean’ın “1-Click Install” özelliği, önceden yapılandırılmış uygulama yığınlarını veya işletim sistemi görüntülerini tek bir tıklamayla dağıtmanıza olanak tanır. Bu, manuel kurulumun getirdiği zaman kaybını ve potansiyel hataları ortadan kaldırarak geliştiricilerin asıl işlerine, yani kod yazmaya odaklanmalarını sağlar. Yeni başlayanlar için karmaşık sunucu kurulum süreçlerini basitleştirmenin en etkili yollarından biridir.
Bu makalenin amacı, DigitalOcean’da LAMP 1-Click kurulumunu kullanarak hızlı, güvenli ve işlevsel bir web sunucusu oluşturmanız için size adım adım rehberlik etmektir. Süreç boyunca, her adımın nedenini ve önemini açıklayarak sadece “nasıl” değil, aynı zamanda “neden” sorularına da yanıt vereceğiz.
Ön Koşullar
Bu rehbere başlamadan önce aşağıdaki maddelere sahip olmanız gerekmektedir:
* DigitalOcean Hesabı: Aktif bir DigitalOcean hesabınızın olması gerekmektedir. Eğer yoksa, kolayca bir hesap oluşturabilirsiniz.
* Temel Linux Komut Satırı Bilgisi: SSH aracılığıyla sunucunuza bağlanacak ve bazı temel Linux komutlarını kullanacaksınız. Temel düzeyde komut satırı bilgisi işinizi kolaylaştıracaktır.
* SSH Anahtarları (Önerilir): Sunucunuza daha güvenli bir şekilde bağlanmak için SSH anahtarları kullanmanız şiddetle tavsiye edilir. Eğer SSH anahtarınız yoksa, DigitalOcean panelinden oluşturabilir veya kendi bilgisayarınızda bir tane oluşturup DigitalOcean’a ekleyebilirsiniz.
* Alan Adı (İsteğe Bağlı ama Önerilir): Gerçek bir web sitesi dağıtmak istiyorsanız, bir alan adına (domain name) sahip olmak ve bu alan adını Droplet’inize yönlendirmek isteyeceksiniz. Test amaçlı kurulumlar için bu gerekli değildir.
Adım Adım LAMP Kurulumu
Şimdi DigitalOcean’da LAMP Droplet’imizi oluşturma ve yapılandırma sürecine başlayalım.
Adım 1: DigitalOcean Hesabına Giriş Yapma ve Droplet Oluşturma
İlk olarak DigitalOcean hesabınıza giriş yapın. Giriş yaptıktan sonra, kontrol panelinin sağ üst köşesinde bulunan yeşil renkli “Create” düğmesine tıklayın ve açılır menüden “Droplets” seçeneğini seçin.
Adım 2: LAMP 1-Click Image’ini Seçme
Droplet oluşturma sayfasında, ilk adım “Choose an image” olacaktır. Burada iki sekme göreceksiniz: “Distributions” ve “Marketplace”. LAMP 1-Click kurulumunu kullanacağımız için “Marketplace” sekmesine tıklayın.
Marketplace içinde birçok önceden yapılandırılmış uygulama görüntüsü bulacaksınız. Arama çubuğuna “LAMP” yazarak veya listeden kaydırarak “LAMP on Ubuntu” seçeneğini bulun ve üzerine tıklayın. Bu, seçtiğiniz Droplet’in Ubuntu işletim sistemi üzerinde Apache, MySQL/MariaDB ve PHP ile önceden yüklü ve yapılandırılmış olarak geleceği anlamına gelir.
Adım 3: Droplet Planını ve Bölgesini Seçme
Plan Seçimi:
“Choose a plan” bölümünde, Droplet’inizin CPU, RAM ve depolama gibi donanım özelliklerini belirleyeceksiniz. DigitalOcean, farklı ihtiyaçlar için çeşitli planlar sunar: Basic, General Purpose, CPU-Optimized, Memory-Optimized ve Storage-Optimized.
* Basic Planlar: Çoğu küçük web sitesi, geliştirme ortamı veya test sunucusu için yeterlidir. Yeni başlayanlar ve bu rehber için uygun maliyetli bir başlangıç noktasıdır.
* General Purpose/CPU-Optimized/Memory-Optimized: Daha yoğun trafikli web siteleri, veritabanı ağırlıklı uygulamalar veya özel performans gereksinimleri olan projeler için tasarlanmıştır.
Başlangıç için en küçük Basic planlardan birini seçebilirsiniz (örneğin, 1 GB RAM, 1 CPU). Daha sonra projenizin ihtiyaçları arttıkça Droplet’inizi kolayca yükseltebilirsiniz.
Datacenter Bölgesi Seçimi:
“Choose a datacenter region” bölümünde, Droplet’inizin fiziksel olarak hangi coğrafi bölgede barındırılacağını seçersiniz. Bu seçim, web sitenizin ziyaretçilerine olan gecikme süresini (latency) doğrudan etkiler. Web sitenizin hedef kitlesine en yakın bölgeyi seçmeniz önerilir. Örneğin, Türkiye’den erişim sağlayacak bir site için Almanya (Frankfurt) veya Hollanda (Amsterdam) gibi Avrupa lokasyonları genellikle iyi performans sunar.
Adım 4: Kimlik Doğrulama Yöntemini Yapılandırma
“Authentication” bölümünde, Droplet’inize nasıl erişeceğinizi belirlersiniz. İki ana seçenek vardır:
* SSH keys (Önerilen): SSH anahtarları, sunucunuza parola kullanmadan daha güvenli bir şekilde bağlanmanızı sağlar. Bir kez kurulumu yapıldıktan sonra, parola hatırlama veya girme zorunluluğu olmadan tek bir komutla sunucunuza erişebilirsiniz. Eğer daha önce bir SSH anahtarı oluşturduysanız, burada seçebilirsiniz. Eğer yoksa, “New SSH Key” düğmesine tıklayarak DigitalOcean’ın talimatlarını takip ederek yeni bir anahtar oluşturabilir veya yerel makinenizde ssh-keygen komutuyla oluşturup genel anahtarınızı DigitalOcean’a ekleyebilirsiniz. Bu yöntem, güvenlik açısından çok daha üstündür.
* Password: Bu seçeneği seçerseniz, Droplet oluşturulduktan sonra size e-posta ile bir root parolası gönderilir. İlk bağlantınızda bu parolayı kullanarak giriş yaparsınız ve genellikle parola değiştirmeniz istenir. Daha az güvenli olduğu için pek önerilmez.
SSH anahtarlarını kullanmanızı şiddetle tavsiye ederiz.
Adım 5: Ek Ayarlar ve Droplet Oluşturma
* Hostname: Droplet’iniz için anlamlı bir isim belirleyin (örn. lamp-webserver-01 veya yourdomain-com-server).
* Tags (İsteğe Bağlı): Birden fazla Droplet’iniz varsa, bunları düzenlemek için etiketler ekleyebilirsiniz.
* VPC Network (İsteğe Bağlı): Özel ağ iletişimi gerektiren karmaşık mimariler için kullanılır. Çoğu başlangıç kurulumu için gerekli değildir.
* Backups (Önerilen): Otomatik haftalık yedeklemeler için bu seçeneği etkinleştirebilirsiniz. Ücretli bir hizmettir ancak veri kaybına karşı önemli bir güvence sağlar.
Tüm ayarları gözden geçirdikten sonra, sayfanın altındaki “Create Droplet” düğmesine tıklayın. DigitalOcean, Droplet’inizi oluşturmaya başlayacak ve bu işlem genellikle bir dakika veya daha kısa sürer. Droplet hazır olduğunda, kontrol panelinizde listelenecek ve IP adresi görünecektir.
İlk Sunucu Kurulumu ve Yapılandırma
Droplet’imiz oluşturulduktan sonra, SSH aracılığıyla bağlanıp ilk güvenlik ve yapılandırma adımlarını tamamlamamız gerekir.
Adım 6: Droplet’e SSH ile Bağlanma
Droplet’inizin IP adresini DigitalOcean kontrol panelinden kopyalayın. Ardından, yerel bilgisayarınızdaki terminali (macOS/Linux) veya PuTTY gibi bir SSH istemcisini (Windows) açın. Aşağıdaki komutu kullanarak sunucunuza bağlanın (IP adresini kendi Droplet’inizin IP adresiyle değiştirin):
ssh root@YOUR_DROPLET_IP_ADDRESS
Eğer ilk kez bağlanıyorsanız, sunucunun kimliğini doğrulamanızı isteyen bir mesaj görebilirsiniz. “yes” yazarak devam edin. SSH anahtarı kullandıysanız, otomatik olarak giriş yaparsınız. Eğer parola kullandıysanız, DigitalOcean tarafından e-posta ile gönderilen root parolasını girmeniz istenecektir. İlk bağlantınızda genellikle yeni bir parola belirlemeniz istenir.
Adım 7: Güvenlik Güncellemeleri ve Temel Yapılandırma
Sunucuya giriş yaptıktan sonra yapmanız gereken ilk şey, işletim sistemini ve yüklü paketleri güncellemektir. Bu, bilinen güvenlik açıklarını kapatır ve sisteminizi kararlı tutar.
sudo apt update
sudo apt upgrade -y
Bu komutlar, paket listelerini günceller ve ardından yüklü paketlerin en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar.
UFW (Uncomplicated Firewall) Kurulumu:
Güvenlik açısından, sunucunuzda bir güvenlik duvarı etkinleştirmek çok önemlidir. UFW, Ubuntu’da güvenlik duvarını yönetmek için basit bir arayüz sağlar.
LAMP 1-Click kurulumunda Apache ve OpenSSH zaten yüklü olduğu için UFW, bu hizmetler için profilleri otomatik olarak tanır.
1. Mevcut Uygulama Profillerini Listeleme:
sudo ufw app list
Bu komut, UFW’nin tanıyabildiği uygulama profillerini gösterecektir. Genellikle “OpenSSH”, “Apache”, “Apache Full” ve “Apache Secure” gibi seçenekler görürsünüz.
* OpenSSH: Yalnızca SSH bağlantılarına izin verir.
* Apache: Yalnızca HTTP (port 80) trafiğine izin verir.
* Apache Full: Hem HTTP (port 80) hem de HTTPS (port 443) trafiğine izin verir.
* Apache Secure: Yalnızca HTTPS (port 443) trafiğine izin verir.
2. Gerekli Kuralları Etkinleştirme:
Sunucunuza SSH ile erişmeye devam edebilmek için OpenSSH‘e izin vermelisiniz. Web sunucunuz için hem HTTP hem de HTTPS trafiğine izin vermek en iyisidir (ileride SSL kuracağınızı varsayarak).
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
3. Güvenlik Duvarını Etkinleştirme:
Kuralları belirledikten sonra güvenlik duvarını etkinleştirin. Bu işlem sizi SSH bağlantınızdan ayırabilir, ancak SSH kuralını zaten eklediğimiz için sorun yaşanmayacaktır.
sudo ufw enable
Bir onay mesajı alacaksınız; y yazıp Enter tuşuna basın.
4. Güvenlik Duvarı Durumunu Kontrol Etme:
sudo ufw status
Bu komut, etkin kuralları ve güvenlik duvarının durumunu gösterecektir.
Bu adımlarla sunucunuzun temel güvenlik duvarı yapılandırmasını tamamlamış oldunuz.
Adım 8: Yeni Bir Sudo Kullanıcısı Oluşturma (Önerilir)
Güvenlik en iyi uygulamalarından biri, günlük yönetim görevleri için root kullanıcısı yerine ayrıcalıklı (sudo) bir kullanıcı oluşturmaktır. root kullanıcısı sınırsız yetkiye sahiptir ve yanlış bir komutla sisteme ciddi zararlar verebilirsiniz.
1. Yeni Kullanıcı Oluşturma:
sudo adduser your_username
your_username yerine istediğiniz kullanıcı adını yazın. Parola ve diğer bilgileri girmeniz istenecektir.
2. Kullanıcıya Sudo Ayrıcalıkları Verme:
Yeni oluşturduğunuz kullanıcıya sudo komutunu kullanma yetkisi verin:
sudo usermod -aG sudo your_username
3. Yeni Kullanıcıya Geçiş Yapma:
su - your_username
Bu komutla yeni kullanıcınıza geçiş yapın. Artık sudo komutunu kullanarak ayrıcalıklı işlemleri gerçekleştirebilirsiniz.
4. Root Kullanıcısıyla SSH Girişini Devre Dışı Bırakma (İsteğe Bağlı ama Önerilir):
Bu, daha ileri bir güvenlik adımıdır. root kullanıcısının doğrudan SSH ile giriş yapmasını engelleyerek yalnızca yeni oluşturduğunuz sudo kullanıcısının giriş yapmasına izin verirsiniz.
* SSH yapılandırma dosyasını açın:
sudo nano /etc/ssh/sshd_config
* Dosya içinde PermitRootLogin yes satırını bulun ve PermitRootLogin no olarak değiştirin. Eğer satırın başında # varsa, yorum satırını kaldırın.
* Dosyayı kaydedin (Ctrl+X, Y, Enter).
* SSH hizmetini yeniden başlatın:
sudo systemctl restart ssh
Bu adımdan sonra, root kullanıcısıyla doğrudan SSH yapamazsınız. Yeni oluşturduğunuz kullanıcıyla giriş yapıp gerektiğinde sudo komutunu kullanmanız gerekecektir.
Veritabanı Yapılandırması (MySQL/MariaDB)
LAMP yığınının M bileşeni olan MySQL veya MariaDB, web uygulamalarınızın verilerini depoladığı yerdir. Güvenliğini sağlamak çok önemlidir.
Adım 9: MySQL/MariaDB Güvenlik Betiğini Çalıştırma
LAMP 1-Click kurulumu genellikle MySQL veya MariaDB’yi temel bir yapılandırmayla yükler. İlk kurulumdan sonra, veritabanı sunucunuzu güvenli hale getirmek için özel bir betik çalıştırmanız gerekir:
sudo mysql_secure_installation
Bu betik size bir dizi soru soracaktır:
1. Validate Password Component (Parola Doğrulama Bileşeni):
* Bu bileşen, belirlediğiniz parolaların gücünü kontrol eder. Etkinleştirmek isteyip istemediğiniz sorulur. Y yazıp Enter tuşuna basarak etkinleştirebilirsiniz.
* Ardından bir parola güvenlik seviyesi seçmeniz istenir (LOW, MEDIUM, STRONG). Genellikle MEDIUM yeterlidir.
2. Change the root password? (root parolasını değiştirilsin mi?):
* ÇOK ÖNEMLİ! MySQL root kullanıcısı için güçlü bir parola belirleyin. Bu, SSH root kullanıcısından farklı bir paroladır. Bu parola, veritabanına tam erişim sağlar.
3. Remove anonymous users? (Anonim kullanıcılar kaldırılsın mı?):
* Y yazıp Enter tuşuna basın. Anonim kullanıcılar güvenlik riski oluşturur.
4. Disallow root login remotely? (root kullanıcısının uzaktan oturum açması engellensin mi?):
* Y yazıp Enter tuşuna basın. Bu, MySQL root kullanıcısının yalnızca sunucunun kendisinden (localhost) veritabanına erişebileceği anlamına gelir, uzaktan erişim engellenir. Bu, güvenlik için kritik bir adımdır.
5. Remove test database and access to it? (Test veritabanı ve erişimi kaldırılsın mı?):
* Y yazıp Enter tuşuna basın. Test veritabanı genellikle gereksizdir ve güvenlik riski oluşturabilir.
6. Reload privilege tables now? (Ayrıcalık tabloları şimdi yeniden yüklensin mi?):
* Y yazıp Enter tuşuna basın. Bu, yaptığınız değişikliklerin hemen etkili olmasını sağlar.
Bu adımları tamamladıktan sonra MySQL/MariaDB veritabanı sunucunuz önemli ölçüde daha güvenli hale gelmiş olacaktır.
Adım 10: Yeni Bir Veritabanı ve Kullanıcı Oluşturma
Web uygulamalarınız için genellikle ayrı bir veritabanı ve bu veritabanına özel bir kullanıcı oluşturmanız gerekir. Bu, uygulamanızın root kullanıcısı yerine sınırlı yetkilere sahip bir kullanıcıyla veritabanına erişmesini sağlar.
1. MySQL/MariaDB Kabuğuna Giriş Yapma:
sudo mysql -u root -p
mysql_secure_installation sırasında belirlediğiniz MySQL root parolasını girin.
2. Yeni Bir Veritabanı Oluşturma:
CREATE DATABASE my_app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
my_app_db yerine uygulamanız için uygun bir veritabanı adı seçin. CHARACTER SET ve COLLATE ayarları, farklı dillerdeki karakterleri doğru şekilde depolamak için önemlidir.
3. Yeni Bir Veritabanı Kullanıcısı Oluşturma:
CREATE USER 'my_app_user'@'localhost' IDENTIFIED BY 'YOUR_STRONG_PASSWORD';
my_app_user yerine uygulamanız için bir kullanıcı adı ve YOUR_STRONG_PASSWORD yerine güçlü bir parola belirleyin. 'localhost' ifadesi, bu kullanıcının yalnızca sunucunun kendisinden (Droplet’in içinden) veritabanına bağlanabileceği anlamına gelir. Uzaktan erişime izin vermek isterseniz '%' kullanabilirsiniz, ancak bu güvenlik riski taşır ve yalnızca belirli IP adresleriyle kısıtlanmalıdır.
4. Kullanıcıya Veritabanı Ayrıcalıkları Verme:
GRANT ALL PRIVILEGES ON my_app_db.* TO 'my_app_user'@'localhost';
Bu komut, my_app_user kullanıcısına my_app_db veritabanı üzerindeki tüm ayrıcalıkları verir.
5. Ayrıcalık Tablolarını Yenileme:
FLUSH PRIVILEGES;
Bu, yaptığınız ayrıcalık değişikliklerinin hemen etkili olmasını sağlar.
6. MySQL/MariaDB Kabuğundan Çıkma:
EXIT;
Artık web uygulamanız, my_app_user kullanıcısı ve my_app_db veritabanını kullanarak güvenli bir şekilde veritabanına bağlanabilir.
Web Sunucusu ve PHP Yapılandırması (Apache ve PHP)
Web sitenizi barındırmak için Apache web sunucusunu yapılandırmamız ve PHP’nin doğru çalıştığından emin olmamız gerekiyor.
Adım 11: Apache Sanal Host (Virtual Host) Oluşturma
Varsayılan olarak, Apache /var/www/html dizinindeki dosyaları sunar. Ancak birden fazla web sitesi barındırmak veya daha düzenli bir yapıya sahip olmak istiyorsanız, “sanal host” (virtual host) kullanmanız önerilir. Sanal hostlar, Apache’ye belirli bir alan adı için hangi dizinden içerik sunacağını ve hangi ayarları kullanacağını söyler.
Bu örnekte your_domain.com alan adını kullanacağız. Kendi alan adınızla değiştirin.
1. Web Sitesi Dizinini Oluşturma:
Web siteniz için özel bir dizin oluşturun. Bu dizin, web sitenizin dosyalarını içerecektir.
sudo mkdir -p /var/www/your_domain/html
-p bayrağı, gerekli tüm üst dizinleri otomatik olarak oluşturur.
2. Dizin İzinlerini Ayarlama:
Web sunucusunun dosyalarınıza erişebilmesi ve sizin de onları düzenleyebilmeniz için doğru izinleri ayarlayın.
sudo chown -R $USER:$USER /var/www/your_domain/html
sudo chmod -R 755 /var/www/your_domain
chown komutu, dizinin sahipliğini mevcut kullanıcınıza verir. chmod komutu ise dizin ve dosyalar için okuma, yazma ve çalıştırma izinlerini ayarlar.
3. Örnek Bir HTML Dosyası Oluşturma:
Sanal host’unuzun çalıştığını test etmek için basit bir index.html dosyası oluşturalım:
sudo nano /var/www/your_domain/html/index.html
Aşağıdaki HTML içeriğini yapıştırın:
Hoş Geldiniz!
Bu, your_domain.com için özel sanal host'unuzun çalıştığını gösteren bir test sayfasıdır.
Kaydedip çıkın (Ctrl+X, Y, Enter).
4. Sanal Host Yapılandırma Dosyası Oluşturma:
Apache, sanal host yapılandırma dosyalarını /etc/apache2/sites-available/ dizininde saklar. Yeni bir yapılandırma dosyası oluşturalım:
sudo nano /etc/apache2/sites-available/your_domain.conf
Aşağıdaki içeriği yapıştırın. your_domain.com ve www.your_domain.com kısımlarını kendi alan adınızla değiştirin:
ServerAdmin webmaster@your_domain.com
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/your_domain/html
ErrorLog ${APACHE_LOG_DIR}/your_domain_error.log
CustomLog ${APACHE_LOG_DIR}/your_domain_access.log combined
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
* ServerAdmin: Yöneticinin e-posta adresi.
* ServerName: Bu sanal host’un yanıt vereceği ana alan adı.
* ServerAlias: Alan adının diğer varyantları (örn. www).
* DocumentRoot: Web sitesi dosyalarının bulunduğu dizin.
* ErrorLog ve CustomLog: Hata ve erişim günlüklerinin kaydedileceği yerler.
* bloğu, belirli bir dizin için Apache ayarlarını tanımlar. AllowOverride All, .htaccess dosyalarının kullanılmasına izin verir.
5. Sanal Host’u Etkinleştirme:
Apache’nin yeni sanal host yapılandırmasını kullanabilmesi için onu etkinleştirmemiz gerekir:
sudo a2ensite your_domain.conf
6. Varsayılan Sanal Host’u Devre Dışı Bırakma (İsteğe Bağlı ama Önerilir):
Genellikle, kendi sanal host’unuzu etkinleştirdikten sonra varsayılan Apache sayfasını sunan 000-default.conf dosyasını devre dışı bırakmak iyi bir uygulamadır:
sudo a2dissite 000-default.conf
7. Apache Yapılandırmasını Test Etme:
Değişiklikleri uygulamadan önce Apache yapılandırmanızda herhangi bir hata olup olmadığını kontrol etmek iyi bir fikirdir:
sudo apache2ctl configtest
Eğer Syntax OK çıktısını görürseniz, her şey yolundadır.
8. Apache’yi Yeniden Yükleme:
Değişikliklerin etkili olması için Apache hizmetini yeniden yükleyin:
sudo systemctl reload apache2
Artık Droplet’inizin IP adresini tarayıcınızda ziyaret ettiğinizde veya alan adınızı yapılandırdıktan sonra your_domain.com adresine gittiğinizde, oluşturduğunuz index.html sayfasını görmelisiniz.
Adım 12: PHP Yapılandırması ve Testi
LAMP 1-Click kurulumu PHP’yi zaten yüklemiş olsa da, doğru çalıştığından ve istediğiniz gibi yapılandırıldığından emin olmak önemlidir.
1. PHP Bilgi Sayfası Oluşturma:
PHP’nin çalıştığını ve mevcut yapılandırmasını görmek için basit bir info.php dosyası oluşturalım. Bu dosya hassas bilgiler içerdiği için testten sonra silinmelidir.
sudo nano /var/www/your_domain/html/info.php
Aşağıdaki içeriği yapıştırın:
Kaydedip çıkın.
2. PHP Bilgi Sayfasını Görüntüleme:
Tarayıcınızda http://YOUR_DROPLET_IP_ADDRESS/info.php adresini veya alan adınızı yapılandırdıysanız http://your_domain.com/info.php adresini ziyaret edin. PHP’nin tüm yapılandırma bilgilerini içeren uzun bir sayfa görmelisiniz. Bu, PHP’nin Apache ile birlikte düzgün çalıştığını gösterir.
3. info.php Dosyasını Silme:
Çok Önemli: info.php dosyası sunucunuz hakkında çok fazla bilgi içerir ve potansiyel bir güvenlik riski oluşturur. Testi tamamladıktan hemen sonra bu dosyayı silin:
sudo rm /var/www/your_domain/html/info.php
4. PHP Yapılandırma Dosyasını Ayarlama (İsteğe Bağlı):
PHP’nin davranışını değiştirmek için ana yapılandırma dosyası olan php.ini‘yi düzenleyebilirsiniz. Örneğin, yükleyebileceğiniz dosya boyutunu artırmak veya bellek limitini yükseltmek isteyebilirsiniz. PHP’nin sürümü Droplet’e göre değişebilir (örn. php8.1).
sudo nano /etc/php/8.1/apache2/php.ini
Dosyayı açtıktan sonra, memory_limit, upload_max_filesize, post_max_size gibi ayarları arayarak değiştirebilirsiniz. Değişiklik yaptıktan sonra Apache’yi yeniden başlatmayı unutmayın:
sudo systemctl reload apache2
Domain Adı ve DNS Ayarları
Web sitenizi bir alan adı üzerinden erişilebilir kılmak için, alan adınızı Droplet’inizin IP adresine yönlendirmeniz gerekir.
Adım 13: Alan Adını Droplet’e Yönlendirme
Bu adım, alan adınızı nereden satın aldığınıza bağlı olarak değişir (örn. GoDaddy, Namecheap, DigitalOcean DNS). Eğer alan adınızı DigitalOcean üzerinden yönetiyorsanız veya DigitalOcean’ın DNS sunucularını kullanıyorsanız:
1. DigitalOcean kontrol panelinizde sol menüden “Networking” seçeneğine tıklayın.
2. “Domains” sekmesine gidin ve “Add Domain” düğmesine tıklayın.
3. Alan adınızı (örn. your_domain.com) girin ve Droplet’inizi seçin.
4. DigitalOcean otomatik olarak gerekli DNS kayıtlarını oluşturacaktır.
* A kaydı: your_domain.com için Droplet’inizin IP adresine işaret eder.
* CNAME kaydı: www.your_domain.com için your_domain.com‘a işaret eder.
5. Eğer alan adınız başka bir DNS sağlayıcısında (örn. GoDaddy) ise, o sağlayıcının kontrol paneline giriş yapın ve bir A kaydı oluşturarak your_domain.com‘u Droplet’inizin IP adresine yönlendirin. www için de bir CNAME kaydı oluşturun.
DNS değişikliklerinin internet genelinde yayılması (DNS propagation) biraz zaman alabilir (birkaç dakika ile 48 saate kadar). Bu süre zarfında web siteniz hemen erişilebilir olmayabilir.
Ek Güvenlik ve İyileştirmeler
Temel kurulumu tamamladıktan sonra, sunucunuzun güvenliğini artırmak ve performansını iyileştirmek için bazı ek adımlar atabilirsiniz.
Adım 14: SSL/TLS Sertifikası Kurulumu (Let’s Encrypt ile HTTPS)
Web sitenizi HTTPS üzerinden sunmak, kullanıcı verilerini şifreleyerek güvenliği artırır, SEO sıralamalarınızı iyileştirir ve tarayıcılarda “Güvenli” etiketi gösterir. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlayan popüler bir hizmettir. Certbot aracı, bu süreci otomatikleştirir.
1. Certbot’u Kurma:
Certbot’u ve Apache eklentisini kurun:
sudo apt install certbot python3-certbot-apache
2. SSL Sertifikası Alma:
Certbot’u Apache ile birlikte çalışacak şekilde çalıştırın. your_domain.com ve www.your_domain.com yerine kendi alan adlarınızı kullanın:
sudo certbot --apache -d your_domain.com -d www.your_domain.com
Certbot size e-posta adresi, hizmet koşullarını kabul etme ve HTTPS’ye otomatik yönlendirme gibi konularda sorular soracaktır. Genellikle tüm trafiği HTTPS’ye yönlendirmeyi (Redirect) seçmek en iyisidir.
3. Otomatik Yenilemeyi Test Etme:
Let’s Encrypt sertifikaları 90 gün geçerlidir, ancak Certbot otomatik yenilemeyi yapılandırır. Yenileme sürecinin çalıştığından emin olmak için test edebilirsiniz:
sudo certbot renew --dry-run
Eğer herhangi bir hata görmezseniz, otomatik yenileme düzgün çalışıyor demektir.
Şimdi web sitenizi https://your_domain.com adresinden ziyaret edebilirsiniz. Tarayıcınızda bir kilit simgesi görmelisiniz.
Adım 15: Diğer Güvenlik ve Performans İpuçları
* Düzenli Güncellemeler: Sunucunuzu ve yazılımlarınızı düzenli olarak sudo apt update && sudo apt upgrade -y komutlarıyla güncel tutun.
* Güçlü Parolalar: Tüm kullanıcı hesaplarınız ve veritabanı parolalarınız için güçlü, karmaşık parolalar kullanın.
* SSH Bağlantı Noktasını Değiştirme: Varsayılan SSH bağlantı noktasını (22) değiştirmek, otomatik bot saldırılarını azaltmaya yardımcı olabilir. /etc/ssh/sshd_config dosyasında Port 22 satırını farklı bir bağlantı noktasıyla değiştirip SSH hizmetini yeniden başlatın ve UFW’de yeni bağlantı noktasına izin vermeyi unutmayın.
* Fail2Ban Kurulumu: Fail2Ban, başarısız giriş denemelerini izleyerek kötü niyetli IP adreslerini otomatik olarak engelleyen bir intrusion prevention sistemidir.
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
* Yedeklemeler: DigitalOcean’ın otomatik yedeklemelerini kullanın veya kendi yedekleme stratejinizi uygulayın. Veri kaybı durumunda kurtarma planınızın olması hayati önem taşır.
* Log İzleme: Sunucu günlüklerini (/var/log/apache2/, /var/log/mysql/, /var/log/auth.log vb.) düzenli olarak kontrol edin. Anormal aktiviteler veya hatalar için günlükleri incelemek, sorunları erken tespit etmenizi sağlar.
* PHP Optimizasyonu: PHP performansını artırmak için OPCache gibi modülleri kullanabilirsiniz.
* Veritabanı Optimizasyonu: MySQL/MariaDB performansını artırmak için mysqltuner gibi araçları kullanabilir veya my.cnf yapılandırma dosyasını optimize edebilirsiniz.
Sonuç
Bu kapsamlı rehberde, DigitalOcean’ın LAMP 1-Click kurulumunu kullanarak bir web sunucusunu baştan sona nasıl kuracağınızı, yapılandıracağınızı ve güvenli hale getireceğinizi öğrendiniz. Linux işletim sisteminin güncellenmesinden, Apache sanal host’larının yapılandırılmasına, MySQL veritabanının güvenliğinin sağlanmasına ve PHP’nin test edilmesine kadar her adımı detaylı bir şekilde ele aldık. Ayrıca, web sitenizi HTTPS üzerinden güvenli hale getirmek için Let’s Encrypt SSL sertifikası kurulumunu ve sunucu güvenliğinizi artıracak ek ipuçlarını da inceledik.
DigitalOcean’ın 1-Click kurulumu, karmaşık sunucu kurulum süreçlerini basitleştirerek geliştiricilerin ve işletmelerin hızlı bir şekilde çevrimiçi olmalarını sağlar. Artık kendi LAMP yığınınıza sahip bir DigitalOcean Droplet’iniz var ve bu, dinamik web siteleri, bloglar, e-ticaret platformları veya özel web uygulamaları barındırmak için sağlam bir temel oluşturuyor.
Bu kurulum, başlangıç için mükemmel bir temel olsa da, web sunucusu yönetimi sürekli bir öğrenme ve optimizasyon sürecidir. Sunucunuzu düzenli olarak izlemek, güncel tutmak ve güvenlik önlemlerini gözden geçirmek, web sitenizin veya uygulamanızın sorunsuz ve güvenli bir şekilde çalışmaya devam etmesini sağlayacaktır. Şimdi kendi web projelerinizi bu güçlü altyapı üzerinde hayata geçirme zamanı!
