Ubuntu 14.04 Sunucusu Üzerine Apache ile Drupal Kurulumu
Giriş
İçerik yönetim sistemleri (CMS) günümüz web dünyasının temel taşlarından biridir ve Drupal, esnekliği, ölçeklenebilirliği ve güçlü topluluğu sayesinde öne çıkan platformlardan biridir. Küçük kişisel bloglardan büyük kurumsal web sitelerine kadar geniş bir yelpazede kullanılabilen Drupal, açık kaynaklı yapısıyla geliştiricilere ve site yöneticilerine eşsiz bir kontrol sunar. Bu makalede, uzun süreli destek (LTS) sağlayan ve o dönemde oldukça yaygın kullanılan Ubuntu 14.04 sunucusu üzerine Apache web sunucusu ile Drupal’ın nasıl kurulacağını adım adım ele alacağız.
Ubuntu 14.04, kararlılığı ve güvenilirliği nedeniyle birçok sunucu ortamında tercih edilmiş bir işletim sistemi sürümüdür. Apache ise dünya genelinde en çok kullanılan web sunucularından biri olup, esnek yapılandırma seçenekleri ve geniş modül desteği ile Drupal gibi dinamik uygulamalar için ideal bir ortam sağlar. Bu kılavuz, Drupal’ı Ubuntu 14.04 ve Apache ortamında başarıyla kurmanız için gerekli tüm adımları detaylı bir şekilde açıklayacaktır.
Ön Koşullar
Bu kurulum rehberine başlamadan önce aşağıdaki ön koşulların yerine getirildiğinden emin olmalısınız:
- Bir Ubuntu 14.04 sunucusuna sahip olmak. Bu sunucuya SSH erişiminiz ve root veya sudo yetkilerine sahip bir kullanıcınız olmalıdır.
- Temel Linux komut satırı bilgisi.
- Sunucunuzun internet bağlantısı olmalıdır.
Bu adımları izlerken, sunucunuzun IP adresini veya alan adınızı your_server_ip_or_domain şeklinde belirtilen yerlerde kullanmanız gerekecektir.
Sistem Güncellemesi
Kuruluma başlamadan önce sunucunuzdaki paket listelerini ve yüklü paketleri güncelleyerek olası uyumluluk sorunlarını gidermek ve en son güvenlik yamalarına sahip olmak önemlidir.
Paket Listelerini ve Yüklü Paketleri Güncelleme
Terminalinizi açın ve aşağıdaki komutları sırasıyla çalıştırın:
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
apt-get update komutu, yerel paket indeksinizi günceller. apt-get upgrade komutu, mevcut paketleri en yeni sürümlerine yükseltir. apt-get dist-upgrade ise bağımlılıkları daha akıllıca yöneterek sistem genelinde daha kapsamlı bir yükseltme yapar. Bu işlemlerden sonra, özellikle kernel güncellemeleri yapıldıysa, sunucuyu yeniden başlatmak iyi bir uygulamadır:
sudo reboot
Sunucunuz yeniden başlatıldıktan sonra SSH ile tekrar bağlanabilirsiniz.
Apache Web Sunucusu Kurulumu
Drupal, dinamik bir web sitesi olduğu için bir web sunucusuna ihtiyaç duyar. Bu rehberde Apache’yi kullanacağız.
Apache Kurulumu
Apache web sunucusunu kurmak için aşağıdaki komutu kullanın:
sudo apt-get install apache2 -y
Kurulum tamamlandıktan sonra Apache servisinin otomatik olarak başlaması gerekir. Tarayıcınızdan sunucunuzun IP adresine veya alan adına giderek Apache’nin düzgün çalışıp çalışmadığını kontrol edebilirsiniz. http://your_server_ip_or_domain adresine gittiğinizde “It works!” yazan varsayılan Apache sayfasını görmelisiniz.
Gerekli Apache Modüllerini Etkinleştirme
Drupal’ın sorunsuz çalışabilmesi için bazı Apache modüllerinin etkinleştirilmesi gerekmektedir. Özellikle URL yeniden yazma (mod_rewrite) Drupal’ın temiz URL’ler için olmazsa olmazıdır.
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod expires
sudo a2enmod deflate
Modülleri etkinleştirdikten sonra Apache servisini yeniden başlatmalısınız:
sudo service apache2 restart
MySQL Veritabanı Sunucusu Kurulumu
Drupal, tüm site içeriğini ve yapılandırmasını bir veritabanında saklar. Bu rehberde MySQL’i kullanacağız.
MySQL Kurulumu
MySQL sunucusunu ve istemcisini kurmak için aşağıdaki komutu çalıştırın:
sudo apt-get install mysql-server mysql-client -y
Kurulum sırasında MySQL root kullanıcısı için bir parola belirlemeniz istenecektir. Bu parolayı güvenli bir yerde saklayın.
MySQL Güvenlik Ayarları
MySQL kurulumunu güvence altına almak için mysql_secure_installation betiğini çalıştırmak iyi bir uygulamadır:
sudo mysql_secure_installation
Bu betik size aşağıdaki soruları soracaktır:
Enter current password for root (enter for none):MySQL root parolanızı girin (yeni kurduysanız ve ilk defa çalıştırıyorsanız boş bırakıp Enter’a basabilirsiniz).Change the root password? [Y/n]Parolayı değiştirmek isteyip istemediğinizi sorar. Zaten belirlediysenizndiyebilirsiniz.Remove anonymous users? [Y/n]Anonim kullanıcıları kaldırmayı seçin (Y).Disallow root login remotely? [Y/n]Root kullanıcısının uzaktan giriş yapmasını engellemeyi seçin (Y).Remove test database and access to it? [Y/n]Test veritabanını kaldırmayı seçin (Y).Reload privilege tables now? [Y/n]Ayrıcalık tablolarını yeniden yüklemeyi seçin (Y).
Tüm sorulara Y yanıtını vererek MySQL kurulumunuzu daha güvenli hale getirebilirsiniz.
PHP ve Gerekli Modüllerin Kurulumu
Drupal, PHP ile yazılmıştır, bu nedenle PHP ve Drupal’ın ihtiyaç duyduğu bazı PHP modüllerinin kurulu olması gerekir. Ubuntu 14.04 varsayılan olarak PHP 5.5.9 ile gelir, bu da Drupal 7 için gayet uygundur.
PHP ve Modüllerin Kurulumu
Aşağıdaki komutla PHP ve Drupal için gerekli temel modülleri kurun:
sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-gd php5-curl php5-cli php5-mcrypt php5-intl -y
php5: PHP yorumlayıcısı.libapache2-mod-php5: PHP’nin Apache ile entegrasyonunu sağlar.php5-mysql: PHP’nin MySQL veritabanlarıyla iletişim kurmasını sağlar.php5-gd: Görüntü işleme yetenekleri (örneğin, küçük resimler oluşturma) için gereklidir.php5-curl: Uzak sunucularla iletişim kurmak için kullanılır.php5-cli: Komut satırından PHP betiklerini çalıştırmak için gereklidir (Drush gibi araçlar için).php5-mcrypt: Şifreleme işlevleri için gereklidir.php5-intl: Uluslararasılaştırma ve yerelleştirme işlevleri için gereklidir.
Kurulum tamamlandıktan sonra Apache’yi yeniden başlatın, böylece PHP modülleri etkinleşir:
sudo service apache2 restart
PHP Kurulumunu Doğrulama (İsteğe Bağlı)
PHP’nin düzgün çalıştığını doğrulamak için phpinfo() fonksiyonunu içeren küçük bir dosya oluşturabilirsiniz.
sudo nano /var/www/html/info.php
Dosyanın içine aşağıdaki içeriği ekleyin:
Kaydedip kapatın (Ctrl+X, Y, Enter). Şimdi tarayıcınızdan http://your_server_ip_or_domain/info.php adresine gidin. PHP yapılandırma bilgilerini içeren bir sayfa görmelisiniz. Bu sayfa, PHP’nin ve yüklü modüllerin doğru çalıştığını gösterir. Güvenlik nedeniyle, bu dosyayı kontrol ettikten sonra silmeniz şiddetle tavsiye edilir:
sudo rm /var/www/html/info.php
PHP Ayarlarının Yapılandırılması
Drupal’ın performanslı ve sorunsuz çalışması için varsayılan PHP ayarlarında bazı değişiklikler yapılması gerekebilir. Özellikle bellek sınırı ve dosya yükleme boyutları Drupal’ın ihtiyaçlarına göre ayarlanmalıdır.
php.ini Dosyasını Düzenleme
PHP yapılandırma dosyası olan php.ini‘yi düzenlemek için aşağıdaki komutu kullanın:
sudo nano /etc/php5/apache2/php.ini
Dosyayı açtıktan sonra aşağıdaki parametreleri bulun ve Drupal’ın gereksinimlerine uygun şekilde ayarlayın. Minimum değerler aşağıda verilmiştir, ancak sitenizin ihtiyaçlarına göre daha yüksek değerler belirleyebilirsiniz:
memory_limit: PHP betiklerinin kullanabileceği maksimum bellek miktarını belirler. Drupal için en az256Mönerilir.memory_limit = 256Mupload_max_filesize: Sunucuya yüklenebilecek maksimum dosya boyutunu belirler. Örneğin,64M.upload_max_filesize = 64Mpost_max_size: HTTP POST isteklerinin maksimum boyutunu belirler. Genellikleupload_max_filesizedeğerinden büyük veya eşit olmalıdır. Örneğin,64M.post_max_size = 64Mmax_execution_time: Bir PHP betiğinin çalışmasına izin verilen maksimum süreyi saniye cinsinden belirler. Uzun süren işlemler için300saniye veya daha fazlası uygun olabilir.max_execution_time = 300date.timezone: PHP’nin doğru tarih ve saat işlevlerini kullanabilmesi için bir zaman dilimi belirlemeniz önemlidir. Kendi coğrafi bölgenize uygun bir zaman dilimi seçin (örneğin, “Europe/Istanbul”).date.timezone = Europe/Istanbul
Değişiklikleri kaydedip çıktıktan sonra, Apache’yi yeniden başlatarak PHP ayarlarının etkinleşmesini sağlayın:
sudo service apache2 restart
Drupal İçin MySQL Veritabanı ve Kullanıcı Oluşturma
Drupal kurulumuna başlamadan önce, Drupal’ın kullanacağı özel bir veritabanı ve bu veritabanına erişim yetkisi olan bir MySQL kullanıcısı oluşturmalısınız. Bu, güvenlik için iyi bir uygulamadır.
MySQL’e Giriş
MySQL root kullanıcısı olarak giriş yapın:
mysql -u root -p
İstendiğinde MySQL root parolanızı girin.
Veritabanı Oluşturma
Drupal için bir veritabanı oluşturun. Bu örnekte drupaldb adını kullanacağız. Karakter setini utf8 olarak ayarlamak önemlidir.
CREATE DATABASE drupaldb CHARACTER SET utf8 COLLATE utf8_general_ci;
Kullanıcı Oluşturma ve Yetkilendirme
Drupal için yeni bir MySQL kullanıcısı oluşturun ve bu kullanıcıya drupaldb veritabanı üzerinde tüm yetkileri verin. your_strong_password yerine güçlü bir parola belirlemeyi unutmayın.
CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON drupaldb.* TO 'drupaluser'@'localhost';
Değişiklikleri Uygulama ve Çıkış
Ayrıcalık tablolarını güncelleyin ve MySQL’den çıkın:
FLUSH PRIVILEGES;
EXIT;
Artık Drupal’ın kullanabileceği bir veritabanı ve kullanıcıya sahipsiniz.
Drupal’ı İndirme
Sistemimiz Drupal için hazır olduğuna göre, Drupal’ın kendisini indirip web sunucumuzun erişebileceği bir konuma yerleştirebiliriz. Ubuntu 14.04 ve PHP 5.5.9 ile uyumlu olduğu için Drupal 7’yi kullanacağız.
Drupal İndirme ve Çıkartma
Öncelikle, Drupal’ı geçici bir dizine indirelim. 7.x.x yerine en son Drupal 7 sürüm numarasını kullanmalısınız (örneğin, 7.99). En güncel sürümü Drupal’ın resmi web sitesinden kontrol edebilirsiniz.
cd /tmp
wget https://ftp.drupal.org/files/projects/drupal-7.x.x.tar.gz
İndirme tamamlandıktan sonra, sıkıştırılmış dosyayı açın:
tar -zxvf drupal-7.x.x.tar.gz
Bu işlem, drupal-7.x.x adında bir dizin oluşturacaktır.
Drupal Dosyalarını Web Kök Dizinine Taşıma
Şimdi Drupal dosyalarını Apache’nin sunacağı bir dizine taşımamız gerekiyor. Bu rehberde /var/www/drupal dizinini kullanacağız. Bu, /var/www/html altına yerleştirmekten daha temiz bir yapıdır, çünkü Drupal’ı doğrudan bir alan adı veya IP adresine bağlayabiliriz.
sudo mv drupal-7.x.x /var/www/drupal
Bu komut, indirilen Drupal dizinini /var/www/drupal olarak yeniden adlandırarak taşır.
Apache’yi Drupal İçin Yapılandırma
Drupal dosyalarını taşıdık, ancak Apache henüz bu dizini bir web sitesi olarak sunacak şekilde yapılandırılmadı. Bir Virtual Host (Sanal Sunucu) yapılandırması oluşturarak Apache’ye Drupal’ın nerede olduğunu ve nasıl hizmet vereceğini söyleyeceğiz.
Virtual Host Dosyası Oluşturma
Yeni bir Virtual Host dosyası oluşturalım:
sudo nano /etc/apache2/sites-available/drupal.conf
Dosyanın içine aşağıdaki içeriği yapıştırın. your_domain_or_ip yerine sunucunuzun IP adresini veya alan adını yazın.
ServerAdmin admin@example.com
ServerName your_domain_or_ip
DocumentRoot /var/www/drupal
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerAdmin: Yönetici e-posta adresinizi buraya yazın.ServerName: Sunucunuzun alan adını veya IP adresini belirtir.DocumentRoot: Drupal dosyalarının bulunduğu dizini gösterir.bloğu:/var/www/drupaldizini için özel ayarlar içerir.AllowOverride AllDrupal’ın.htaccessdosyalarını kullanmasına izin verir ki bu temiz URL’ler için hayati öneme sahiptir.
Değişiklikleri kaydedip dosyayı kapatın.
Virtual Host’u Etkinleştirme
Yeni oluşturduğunuz Virtual Host’u etkinleştirmek ve varsayılan siteyi devre dışı bırakmak için aşağıdaki komutları kullanın:
sudo a2ensite drupal.conf
sudo a2dissite 000-default.conf
Ardından, Apache servisini yeniden başlatın:
sudo service apache2 restart
Dosya İzinlerini Ayarlama
Drupal’ın düzgün çalışabilmesi ve dosya yüklemeleri gibi işlemleri gerçekleştirebilmesi için doğru dosya ve dizin izinlerine sahip olması gerekir. Ayrıca, Drupal’ın kurulum sırasında kendi yapılandırma dosyasını oluşturabilmesi için bazı izinler geçici olarak genişletilmelidir.
Dosya ve Dizin Sahipliğini Ayarlama
Drupal dosyalarının Apache web sunucusunun kullanıcısı (www-data) tarafından erişilebilir olmasını sağlamak için sahipliği ayarlayın:
sudo chown -R www-data:www-data /var/www/drupal
Temel Dizin İzinlerini Ayarlama
Tüm Drupal dizinleri için okuma ve çalıştırma, tüm dosyalar için okuma izinlerini ayarlayın:
sudo chmod -R 755 /var/www/drupal
settings.php Dosyasını Kopyalama ve İzinlerini Ayarlama
Drupal’ın yapılandırma dosyasını (settings.php) oluşturmak için varsayılan dosyayı kopyalayın:
sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
Kurulum sırasında Drupal’ın bu dosyaya yazabilmesi için geçici olarak yazma izni verin. Kurulum tamamlandıktan sonra bu izni geri alacağız.
sudo chmod 664 /var/www/drupal/sites/default/settings.php
Dosya Yükleme Dizinine İzin Verme
Drupal’ın yüklediği dosyaları (resimler, belgeler vb.) saklayacağı files dizini için yazma izni verilmelidir:
sudo mkdir -p /var/www/drupal/sites/default/files
sudo chmod -R 775 /var/www/drupal/sites/default/files
Bu izinler, www-data kullanıcısının ve www-data grubundaki diğer kullanıcıların dosya oluşturmasına ve değiştirmesine olanak tanır.
Drupal Web Kurulumunu Çalıştırma
Tüm sunucu yapılandırmaları tamamlandıktan sonra, Drupal’ın web tabanlı kurulum sihirbazını başlatmaya hazırız.
Web Tarayıcınızdan Erişin
Web tarayıcınızı açın ve sunucunuzun IP adresine veya alan adına gidin: http://your_server_ip_or_domain
Kurulum Adımları
Drupal kurulum sihirbazı sizi aşağıdaki adımlarda yönlendirecektir:
- Dil Seçimi: Tercih ettiğiniz kurulum dilini seçin (örneğin, Türkçe veya English).
- Kurulum Profili Seçimi: “Standard” (Standart) profili çoğu kullanım durumu için uygundur. Minimal bir kurulum istiyorsanız “Minimal” seçeneğini tercih edebilirsiniz.
- Veritabanı Yapılandırması: Bu adımda, daha önce oluşturduğumuz MySQL veritabanı bilgilerini girmeniz gerekecektir:
Database name:drupaldbDatabase username:drupaluserDatabase password:your_strong_password
Gelişmiş seçenekler bölümünde genellikle herhangi bir değişiklik yapmanıza gerek yoktur.
- Kurulum Süreci: Drupal şimdi veritabanını kuracak ve gerekli modülleri etkinleştirecektir. Bu birkaç dakika sürebilir.
- Site Yapılandırması:
Site name:Web sitenizin adını girin (örneğin, “Benim Drupal Sitem”).Site e-mail address:Sitenizin e-posta adresini girin.Username:Yönetici kullanıcı adı oluşturun (örneğin, “admin”).Password:Yönetici parolanızı girin ve onaylayın. Güçlü bir parola seçtiğinizden emin olun.Country:Ülkenizi seçin.Default time zone:Varsayılan zaman dilimini seçin.
Tüm bilgileri girdikten sonra “Save and continue” (Kaydet ve devam et) düğmesine tıklayın. Kurulum tamamlandığında, Drupal sitenizin ana sayfasına yönlendirileceksiniz.
Kurulum Sonrası Görevler
Drupal başarıyla kurulduktan sonra, sitenizin güvenliğini ve işlevselliğini artırmak için yapılması gereken birkaç önemli adım vardır.
settings.php Dosyası İzinlerini Geri Alma
Kurulum sırasında settings.php dosyasına yazma izni vermiştik. Kurulum tamamlandığında, güvenlik nedeniyle bu izni geri almalısınız:
sudo chmod 644 /var/www/drupal/sites/default/settings.php
Bu, dosyanın yalnızca okunabilir olmasını sağlar ve yetkisiz değişiklikleri engeller.
Güvenlik Güncellemeleri ve Modüller
Drupal paneline giriş yaptıktan sonra, sitenizin güvenliğini ve performansını artırmak için aşağıdaki adımları izleyin:
- Drupal Güncellemeleri: Drupal çekirdeğini ve yüklü modülleri düzenli olarak güncelleyin. Drupal arayüzünde mevcut güncellemeler hakkında bildirimler alacaksınız.
- Ek Modüller ve Temalar: Sitenizin işlevselliğini ve görünümünü genişletmek için Drupal.org adresinden ek modüller ve temalar indirebilirsiniz.
- Drush Kurulumu (İsteğe Bağlı ama Önerilir): Drush, Drupal için bir komut satırı aracıdır. Modül yönetimi, önbellek temizleme, veritabanı işlemleri gibi birçok görevi komut satırından hızlıca yapmanızı sağlar.
sudo apt-get install drush -yDrush kurulduktan sonra
/var/www/drupaldizinine gidipdrush statuskomutunu çalıştırarak doğru çalıştığını kontrol edebilirsiniz. - Cron Görevleri: Drupal’ın periyodik bakım görevlerini (örneğin, güncellemeleri kontrol etme, önbelleği temizleme) otomatik olarak çalıştırması için bir cron işi ayarlamanız önemlidir. Ubuntu’da cron işi ayarlamak için
crontab -ekomutunu kullanabilir ve aşağıdaki gibi bir satır ekleyebilirsiniz:0 wget -O - -q -t 1 http://your_domain_or_ip/cron.php?cron_key=YOUR_CRON_KEY >/dev/null 2>&1YOUR_CRON_KEYyerine Drupal’ınsettings.phpdosyasında bulunan veya Drupal arayüzünden alabileceğiniz gerçek cron anahtarını yazmalısınız.
Sonuç
Bu detaylı rehberde, Ubuntu 14.04 sunucusu üzerine Apache, MySQL ve PHP kullanarak Drupal 7’nin adım adım nasıl kurulduğunu öğrendiniz. Sistem güncellemelerinden başlayarak, web ve veritabanı sunucularının kurulumuna, PHP yapılandırmasına, Drupal dosyalarının indirilip yerleştirilmesine ve son olarak web tabanlı kurulum sihirbazının tamamlanmasına kadar tüm süreçleri başarıyla gerçekleştirdiniz.
Artık güçlü ve esnek bir içerik yönetim sistemi olan Drupal ile web sitenizi geliştirmeye başlayabilirsiniz. Kurulum sonrası güvenlik önlemlerini ve düzenli bakım görevlerini ihmal etmemek, sitenizin uzun ömürlü ve güvenli olmasını sağlayacaktır. Drupal’ın geniş modül ve tema ekosistemini keşfederek sitenizin potansiyelini tam olarak ortaya çıkarabilirsiniz. Unutmayın, herhangi bir web uygulamasında olduğu gibi, Drupal kurulumunuzu ve sunucunuzu güncel tutmak, güvenlik açıklarına karşı korunmanın en iyi yoludur.