Takip et

Sistem Hazırlığı ve Temel Bileşenlerin Kurulumu

Bu rehber, Ubuntu 12.04 işletim sistemine sahip bir Sanal Özel Sunucu (VPS) üzerinde Moodle’ı Git üzerinden kurmayı, veritabanı olarak PostgreS

Bu rehber, Ubuntu 12.04 işletim sistemine sahip bir Sanal Özel Sunucu (VPS) üzerinde Moodle’ı Git üzerinden kurmayı, veritabanı olarak PostgreSQL, web sunucusu olarak Nginx ve PHP-FPM kullanarak yapılandırmayı adım adım açıklamaktadır. Ubuntu 12.04’ün artık desteklenmeyen eski bir sürüm olduğunu ve güvenlik riskleri taşıyabileceğini unutmamak önemlidir. Bu rehber, belirli bir eski ortam gereksinimi olan kullanıcılar için hazırlanmıştır. Mümkünse, daha güncel bir Ubuntu sürümü ve Moodle versiyonu kullanmanız şiddetle tavsiye edilir.

Sistem Hazırlığı ve Temel Bileşenlerin Kurulumu

Moodle kurulumuna başlamadan önce sunucunuzu güncellemeli ve gerekli tüm yazılımları kurmalısınız. Bu bölümde PostgreSQL, Nginx, PHP-FPM ve Git kurulumlarını ele alacağız.

Sistemi Güncelleme

Herhangi bir kuruluma başlamadan önce paket listelerinizi güncelleyin ve mevcut paketleri yükseltin:

sudo apt-get update
sudo apt-get upgrade -y

PostgreSQL Veritabanı Kurulumu ve Yapılandırması

Moodle için bir veritabanına ihtiyacımız var. PostgreSQL’i kuracağız ve Moodle için özel bir kullanıcı ve veritabanı oluşturacağız.

sudo apt-get install postgresql postgresql-contrib -y

Şimdi Moodle için bir veritabanı kullanıcısı ve veritabanı oluşturalım. postgres kullanıcısına geçerek bu işlemleri yapabiliriz:

sudo -i -u postgres
createuser -P moodleuser

Komut sizden moodleuser için bir parola belirlemenizi isteyecektir. Güçlü bir parola seçtiğinizden emin olun.

createdb -O moodleuser moodledb

Bu komut, moodleuser kullanıcısının sahibi olduğu moodledb adında bir veritabanı oluşturur. İşlemler bittikten sonra exit komutuyla postgres kullanıcısından çıkış yapabilirsiniz:

exit

Nginx Web Sunucusu Kurulumu

Nginx, hafif ve yüksek performanslı bir web sunucusudur. Kurulumu oldukça basittir:

sudo apt-get install nginx -y

Kurulum tamamlandıktan sonra Nginx servisini başlatın ve sistem başlangıcında otomatik başlamasını sağlayın (varsayılan olarak zaten böyledir):

sudo service nginx start

PHP-FPM ve Gerekli PHP Uzantılarının Kurulumu

Moodle, PHP tabanlı bir uygulamadır ve doğru PHP sürümü ile gerekli uzantılara ihtiyaç duyar. Ubuntu 12.04 varsayılan olarak PHP 5.3.x ile gelir, bu da Moodle 2.x serisi için uygundur. Moodle 3.x ve üzeri genellikle daha yeni PHP sürümlerini (5.6.5+ veya 7.x) gerektirir. Bu rehberde, Ubuntu 12.04’ün desteklediği PHP 5.3.x ile uyumlu Moodle 2.x serisini hedefliyoruz. PHP-FPM (FastCGI Process Manager) Nginx ile PHP uygulamalarını çalıştırmak için kullanılır.

sudo apt-get install php5-fpm php5-pgsql php5-gd php5-curl php5-xmlrpc php5-intl php5-mbstring php5-zip php5-soap -y

Bu komut, PHP-FPM’i ve Moodle’ın çalışması için gerekli olan yaygın PHP uzantılarını kuracaktır. Kurulumdan sonra PHP-FPM servisini başlatın:

sudo service php5-fpm start

Git Kurulumu

Moodle’ı Git deposundan çekmek için Git’e ihtiyacımız var:

sudo apt-get install git -y

Moodle Kurulumu ve İlk Yapılandırma

Şimdi Moodle dosyalarını Git deposundan çekme, veri dizini oluşturma ve temel config.php dosyasını yapılandırma adımlarına geçelim.

Moodle Dosyalarını Çekme

Moodle dosyalarını /var/www/html/moodle dizinine indireceğiz. Bu dizini web sunucumuzun kök dizini olarak kullanacağız.

sudo mkdir -p /var/www/html
cd /var/www/html
sudo git clone git://git.moodle.org/moodle.git

Şimdi Moodle dizinine geçin ve uygun bir Moodle 2.x sürümünü seçin. Ubuntu 12.04’teki PHP 5.3.x ile uyumlu olarak Moodle 2.9’u kullanacağız:

cd moodle
sudo git branch -a
sudo git checkout MOODLE_29_STABLE

Moodle Data Dizinini Oluşturma

Moodle, yüklenen dosyaları, geçici verileri ve oturum bilgilerini depolamak için web sunucusunun doğrudan erişemeyeceği ayrı bir veri dizinine ihtiyaç duyar. Bu, güvenlik açısından önemlidir.

sudo mkdir /var/www/moodledata

Dizin İzinlerini Ayarlama

Moodle’ın dosya sistemi üzerinde yazma ve okuma işlemleri yapabilmesi için web sunucusu kullanıcısına (genellikle www-data) uygun izinleri vermelisiniz:

sudo chown -R www-data:www-data /var/www/html/moodle
sudo chmod -R 755 /var/www/html/moodle
sudo chown -R www-data:www-data /var/www/moodledata
sudo chmod -R 777 /var/www/moodledata # Moodle kurulumu için geçici olarak 777, daha sonra 770 veya 750'ye düşürülebilir.

Önemli Not: moodledata için 777 izni, kurulum sırasında sorun yaşanmaması için genellikle önerilir. Kurulum tamamlandıktan sonra, güvenlik için bu izni 770 veya 750’ye düşürmek ve www-data grubuna ait olduğundan emin olmak daha iyidir.

Moodle config.php Dosyasını Oluşturma

Moodle’ın veritabanı bağlantı bilgilerini ve diğer temel ayarlarını içeren bir config.php dosyası oluşturmalıyız. Moodle, bu dosyanın bir örneğini config-dist.php olarak sağlar.

cd /var/www/html/moodle
sudo cp config-dist.php config.php
sudo nano config.php

Açılan config.php dosyasında aşağıdaki satırları kendi veritabanı bilgilerinizle güncelleyin:

dbtype    = 'pgsql';       // 'pgsql' for PostgreSQL
$CFG->dblibrary = 'native';     // 'native' or 'ado'
$CFG->dbhost    = 'localhost';    // Veritabanı sunucusu
$CFG->dbname    = 'moodledb';     // Oluşturduğunuz veritabanı adı
$CFG->dbuser    = 'moodleuser';   // Oluşturduğunuz veritabanı kullanıcısı
$CFG->dbpass    = 'your_moodleuser_password'; // Veritabanı kullanıcısı parolası
$CFG->prefix    = 'mdl_';         // Moodle tabloları için önek (isteğe bağlı)

$CFG->wwwroot   = 'http://your_domain.com'; // Moodle sitenizin URL'si
$CFG->dataroot  = '/var/www/moodledata';  // Moodle veri dizini
$CFG->admin     = 'admin';

require_once(dirname(__FILE__) . '/lib/setup.php');

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

your_moodleuser_password kısmını daha önce PostgreSQL için belirlediğiniz parola ile, your_domain.com kısmını ise kendi alan adınız veya sunucunuzun IP adresi ile değiştirmeyi unutmayın. Dosyayı kaydedip kapatın (Ctrl+O, Enter, Ctrl+X).

Nginx ve PHP-FPM Yapılandırması

Moodle’ın web üzerinden erişilebilir olması için Nginx’i yapılandırmamız ve PHP-FPM ile düzgün bir şekilde iletişim kurmasını sağlamamız gerekiyor.

Nginx Sanal Host Yapılandırması

Moodle için yeni bir Nginx sanal host dosyası oluşturalım:

sudo nano /etc/nginx/sites-available/moodle.conf

Dosyanın içine aşağıdaki içeriği yapıştırın. your_domain.com kısmını kendi alan adınızla değiştirin:

server {
    listen 80;
    server_name your_domain.com; # Alan adınızı veya IP adresinizi yazın
    root /var/www/html/moodle;
    index index.php index.html index.htm;

    client_max_body_size 100M; # Yükleme boyutunu Moodle ihtiyaçlarınıza göre ayarlayın

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^/(build|cache|config|data|lib|local|vendor)/ {
        deny all;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock; # Ubuntu 12.04 için PHP-FPM socket yolu
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Dosyayı kaydedin ve kapatın.

Sanal Hostu Etkinleştirme ve Nginx’i Yeniden Başlatma

Yeni yapılandırma dosyasını etkinleştirmek için bir sembolik bağlantı oluşturun ve varsayılan Nginx sitesini devre dışı bırakın:

sudo ln -s /etc/nginx/sites-available/moodle.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

Nginx yapılandırmasının doğru olduğundan emin olmak için test edin ve ardından Nginx servisini yeniden başlatın:

sudo nginx -t
sudo service nginx restart

PHP-FPM Ayarları (İsteğe Bağlı ama Önerilir)

PHP-FPM’in Moodle için yeterli kaynaklara sahip olduğundan emin olmak için bazı ayarları kontrol edebilirsiniz. php.ini dosyasını düzenleyin:

sudo nano /etc/php5/fpm/php.ini

Aşağıdaki değerleri Moodle’ın gereksinimlerine ve sunucunuzun kaynaklarına göre ayarlayın:

  • memory_limit = 256M (Minimum 128M, daha büyük siteler için 512M veya 1G)
  • upload_max_filesize = 100M
  • post_max_size = 100M
  • max_execution_time = 300
  • max_input_vars = 5000 (Moodle 2.9 için önerilir)

Değişiklikleri kaydettikten sonra PHP-FPM servisini yeniden başlatın:

sudo service php5-fpm restart

Moodle Web Kurulumu ve Son Ayarlar

Artık Moodle’ın web arayüzünü kullanarak kurulumu tamamlayabilir ve son ayarları yapabiliriz.

Web Tarayıcısı Üzerinden Kurulumu Tamamlama

Bir web tarayıcısı açın ve Moodle sitenizin URL’sine gidin (örneğin, http://your_domain.com). Moodle kurulum sihirbazı sizi karşılayacaktır.

  1. Dil Seçimi: Tercih ettiğiniz dili seçin ve “Sonraki” butonuna tıklayın.
  2. Yolların Onaylanması: Moodle yollarının doğru olup olmadığını kontrol edin (wwwroot, dataroot). “Sonraki” butonuna tıklayın.
  3. Veritabanı Ayarları: Veritabanı türü olarak PostgreSQL seçili olmalı ve daha önce config.php dosyasında belirlediğiniz veritabanı kullanıcı adı, parolası, veritabanı adı gibi bilgilerin doğru olduğunu onaylayın. “Sonraki” butonuna tıklayın.
  4. Lisans Anlaşması: Moodle lisans anlaşmasını kabul edin ve “Devam et” butonuna tıklayın.
  5. Sunucu Gereksinimleri Kontrolü: Moodle, sunucunuzun gerekli tüm gereksinimleri karşılayıp karşılamadığını kontrol edecektir. Her şeyin yeşil olduğundan emin olun. Sarı veya kırmızı uyarılar varsa, bunları düzeltmeniz gerekebilir (örn. eksik PHP uzantıları). “Devam et” butonuna tıklayın.
  6. Kurulum: Moodle, veritabanı tablolarını oluşturacak ve varsayılan verileri yükleyecektir. Bu biraz zaman alabilir. İşlem bittiğinde “Devam et” butonuna tıklayın.
  7. Yönetici Hesabı Oluşturma: Yönetici hesabınız için bir kullanıcı adı, güçlü bir parola, e-posta adresi ve diğer bilgileri girin. Bu bilgilerle Moodle’a giriş yapacaksınız. “Profili güncelle” butonuna tıklayın.
  8. Site Ayarları: Sitenizin adını, kısa adını ve diğer temel ayarları girin. “Değişiklikleri kaydet” butonuna tıklayın.

Tebrikler! Moodle kurulumunuz tamamlandı ve sitenizin ana sayfasına yönlendirileceksiniz.

Moodle Cron Job Kurulumu

Moodle’ın arka plan görevlerini (e-posta gönderme, yedekleme, bildirimler vb.) düzenli olarak çalıştırması için bir cron job ayarlamanız gerekir. Bu, Moodle’ın sağlıklı çalışması için hayati öneme sahiptir.

sudo crontab -e -u www-data

Açılan dosyaya aşağıdaki satırı ekleyin ve kaydedin:

    * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null

Bu cron job, her dakika www-data kullanıcısı altında Moodle cron betiğini çalıştıracaktır.

Sonuç ve Sıkça Sorulan Sorular (SSS)

Bu rehberde, Ubuntu 12.04 VPS üzerinde Nginx, PostgreSQL ve PHP-FPM kullanarak Git üzerinden Moodle kurulumunu tamamlamış oldunuz. Moodle 2.9 sürümünü tercih ederek eski işletim sistemiyle uyumluluğu sağladık. Kurulum sonrası moodledata dizininin izinlerini gözden geçirmeyi ve güvenlik önlemleri almayı unutmayın.

Önemli Uyarı: Ubuntu 12.04’ün destek ömrü sona ermiştir. Bu, güvenlik güncellemeleri ve yamalar almayacağı anlamına gelir. Üretim ortamlarında kullanılması şiddetle tavsiye edilmez ve ciddi güvenlik riskleri taşır. Mümkün olan en kısa sürede daha güncel bir Ubuntu sürümüne ve Moodle versiyonuna geçiş yapmanız önerilir.

Sıkça Sorulan Sorular (SSS)

S: Moodle’ın desteklediği PHP sürümü nedir?
C: Bu rehberde kullanılan Moodle 2.9, PHP 5.3.3 veya üzeri bir sürüm gerektirir. Daha yeni Moodle sürümleri (örneğin Moodle 3.x), PHP 5.6.5 veya 7.x serisini gerektirir. Güncel Moodle sürümleri için en son PHP 7.x veya 8.x sürümleri önerilir.

S: moodledata dizini neden web kökünde olmamalıdır?
C: moodledata dizini, kullanıcıların yüklediği dosyaları, geçici verileri ve diğer hassas bilgileri içerir. Bu dizinin doğrudan web sunucusu tarafından erişilebilir olmaması, kötü niyetli kullanıcıların bu dosyalara doğrudan URL üzerinden erişmesini engelleyerek önemli bir güvenlik katmanı sağlar. Web sunucusu sadece Moodle’ın PHP betikleri aracılığıyla bu dizine erişebilmelidir.

S: Nginx 502 Bad Gateway hatası alırsam ne yapmalıyım?
C: Bu hata genellikle Nginx’in PHP-FPM ile iletişim kuramadığı anlamına gelir. Kontrol etmeniz gerekenler:

  • PHP-FPM servisinin çalışıp çalışmadığı: sudo service php5-fpm status
  • Nginx yapılandırmanızdaki fastcgi_pass yolunun (unix:/var/run/php5-fpm.sock) doğru olup olmadığı.
  • /etc/php5/fpm/pool.d/www.conf dosyasında listen yönergesinin aynı yola ayarlı olup olmadığı.
  • PHP-FPM veya Nginx hata günlüklerini kontrol etmek (/var/log/nginx/error.log, /var/log/php5-fpm.log).

S: Moodle cron görevi neden önemlidir?
C: Moodle, arka planda çalışan birçok göreve sahiptir (e-posta gönderme, bildirimler, forum özetleri, yedeklemeler, ders etkinliklerinin güncellenmesi vb.). Bu görevler, cron job aracılığıyla düzenli aralıklarla tetiklenir. Cron görevi ayarlanmazsa, Moodle siteniz düzgün çalışmayacak veya bazı özellikleri eksik kalacaktır.

S: Ubuntu 12.04 kullanmanın riskleri nelerdir?
C: Ubuntu 12.04 (Precise Pangolin) için ana destek 2017’de, genişletilmiş güvenlik desteği (ESM) ise 2019’da sona ermiştir. Bu, işletim sisteminin artık güvenlik güncellemeleri, hata düzeltmeleri veya yazılım yamaları almadığı anlamına gelir. Bu durum, sunucunuzu bilinen güvenlik açıklarına karşı savunmasız bırakır ve saldırılara açık hale getirebilir. Ayrıca, eski yazılım versiyonları modern uygulamalarla uyumluluk sorunları yaşayabilir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık