VPS uzerinde Flarum kurulumu ve PHP forum yapilandirmasi
VPS uzerinde PHP, Composer ve MariaDB kullanarak Flarum kurulumunu adim adim ogrenin. /public dizinini TLS ile sunma, e-posta ayarlari ve eklenti hatalarini giderme rehberi.
PHP ve MariaDB kullanarak bir VPS üzerinde Flarum kurulumu
Flarum'u bir VPS üzerine kurduğunuzda; Docker, Ruby veya ayrı bir iş çalıştırıcı (job runner) gerektirmeyen, PHP ve MariaDB üzerinde çalışan bir forum elde edersiniz. Tercih edilmesinin temel nedeni budur. Bir VPS üzerinde Discourse kurulumu, Ruby, PostgreSQL, Redis ve bir arka plan çalıştırıcısı içeren bir Docker yığını gerektirir; yedekleme veya e-posta servisi eklemeden önce 2 GB RAM pratik alt sınırdır. Discourse, günde binlerce gönderinin yapıldığı yoğun topluluklarda bu kaynak kullanımını hak eder. Birkaç yüz kişilik bir forumda ise bu, her ay ödeme yaptığınız ancak hiç kullanmadığınız bir makine gücüdür. Flarum, halihazırda çalıştırıyor olabileceğiniz bir PHP yığınına sığar; bu sayede nginx ve MariaDB içeren 1 GB'lık bir VPS, onu mevcut diğer servislerinizin yanında barındırabilir. Eğer seçim aşamasındaysanız, kendi kendine barındırılan forum yazılımlarının daha geniş karşılaştırması alanın geri kalanını kapsamaktadır.
Bu kılavuz, kurulumu şu anda 1.8 serisi olan Flarum 1.x sürümüne sabitlemektedir. Ağustos 2026 itibarıyla Flarum 2.0 hala bir aday sürüm (release candidate) olduğundan, başkalarının bağlı olduğu bir forum için çalıştırılması gereken sürüm 1.8'dir. Burada eklentiler, çekirdek sürümden daha önemlidir ve çoğu eklenti yazarı henüz 2.0 sürümüne geçiş yapmamıştır.
Flarum 1.8 için sunucu gereksinimleri
Flarum'un belgelenmiş gereksinimleri PHP 7.3 veya daha yeni bir sürüm, MySQL 5.6+ veya MariaDB 10.0.5+ ve nginx ya da Apache ile mod_rewrite kullanımıdır. Ubuntu 24.04, PHP 8.3 ve MariaDB 10.11 sürümleriyle gelir; bu nedenle dağıtım paketleri, herhangi bir üçüncü taraf depo gerektirmeden her iki gereksinimi de karşılar. Flarum'un ihtiyaç duyduğu PHP eklentileri şunlardır: curl, dom, fileinfo, gd, json, mbstring, openssl, pdo_mysql, tokenizer ve zip. Ayrıca kabuk erişimine de ihtiyacınız vardır, çünkü Composer burada isteğe bağlı değildir: her Flarum eklentisi bir Composer paketidir ve Composer çalıştırmadan eklenti eklemenin bir yolu yoktur.
Flarum sıradan bir PHP uygulamasıdır. Eğer halihazırda Ubuntu 24.04 üzerinde bir LAMP yığını çalıştırıyorsanız, sonraki iki bölümdeki çoğu bileşen zaten kuruludur ve veritabanı kısmına hızlıca göz atabilirsiniz.
PHP ve Flarum'un gerektirdiği eklentilerin kurulumu
sudo apt update
sudo apt install -y nginx mariadb-server composer
sudo apt install -y php8.3-fpm php8.3-cli php8.3-curl php8.3-gd php8.3-mbstring php8.3-mysql php8.3-xml php8.3-zip
php -m | grep -E 'curl|dom|gd|mbstring|pdo_mysql|zip'
composer --versionPaket isimleri, Flarum'un listesiyle birebir eşleşmez. dom eklentisi php8.3-xml içinde yer alır; fileinfo, json, openssl ve tokenizer ise Ubuntu üzerinde PHP 8.3 içine derlenmiş durumdadır, bu nedenle bunlar için ayrıca kurulacak bir paket yoktur. grep komutu altı satır çıktı vermeli ve composer --version komutu 2.x sürümünü bildirmelidir. Eksik bir eklentiyi şimdi düzeltmek gerekir; çünkü Composer, eklenti olmadan Flarum'u kurmayı reddeder ve hata mesajında eksik olan eklentinin adını belirtir:
Problem 1
- flarum/core[v1.8.0, ..., v1.8.17] require ext-gd * -> it is missing from your system.
Install or enable PHP's gd extension.Komut satırı PHP'si ile FastCGI süreç yöneticisinin (PHP-FPM) aynı sürümde olduğunu doğrulayın. Composer komut satırı ikili dosyası altında çalışırken forumunuz FPM altında çalışır, bu nedenle php -v ve sudo php-fpm8.3 -v sürümleri birbiriyle uyumlu olmalıdır. Üçüncü taraf bir depodan birden fazla PHP sürümü yüklenmiş makinelerde bu sürümler birbirinden kopabilir; bu durumda bir sürüm için yüklediğiniz eklenti diğer sürüm tarafından görülmez.
Veritabanını ve özel bir veritabanı kullanıcısını oluşturun
sudo mariadb-secure-installation
sudo mariadbCREATE DATABASE flarum CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'flarum'@'localhost' IDENTIFIED BY 'use-a-long-random-password';
GRANT ALL PRIVILEGES ON flarum.* TO 'flarum'@'localhost';
FLUSH PRIVILEGES;
EXIT;Flarum için root yerine özel bir veritabanı kullanıcısı tanımlayın. Yetkilendirme yalnızca flarum.* üzerinde geçerli olmalıdır; böylece yazmadığınız bir eklentide oluşabilecek SQL injection açığı, diğer veritabanlarınıza erişemez. Karakter seti de önemlidir: utf8mb4, emoji ve Latin alfabesi dışındaki karakterleri doğru şekilde saklar. MySQL'in eski utf8 karakter seti ise üç baytlık bir kodlamadır ve dört baytlık bir karakterle karşılaştığında gönderiyi keser. Devam etmeden önce kullanıcının çalıştığını doğrulayın.
mariadb -u flarum -p flarum -e 'SELECT DATABASE();'Bu komut flarum çıktısını vermelidir. ERROR 1045 (28000): Access denied for user 'flarum'@'localhost' hatası, parolanın yanlış olduğunu veya kullanıcının localhost dışındaki bir ana makine (host) için oluşturulduğunu gösterir.
Composer kullanarak Flarum'u 1.8 sürümüne sabitleyerek bir VPS üzerine kurun
Öncelikle kodun sahibi olacak bir sistem kullanıcısı oluşturun. Composer'ı root olarak çalıştırmak, vendor/ ve storage/ dizinlerinde root sahipli dosyalar bırakır; bu durum, PHP'nin daha sonra kendi önbelleğini yazamamasına ve forumun her isteğe 500 hatası ile yanıt vermesine neden olur.
sudo useradd --system --home-dir /srv/flarum --shell /bin/bash flarum
sudo install -d -o flarum -g flarum -m 755 /srv/flarum
sudo -iu flarumBu son komut sizi /srv/flarum dizini içerisinde flarum kullanıcısı olarak bir kabuğa düşürür. Kılavuzun sonuna kadar olan her komut, sudo ile başlamadığı sürece bu kullanıcı ile çalıştırılmalıdır.
composer create-project flarum/flarum:^1.8.0 .^1.8.0 kısıtlaması, sürüm sabitleme işlemidir. Bu kısıtlama 1.8.x yama sürümlerini kabul eder ve 2.0 sürümünü reddeder; 2.0 sürümü bir aday sürüm (release candidate) olduğu sürece istediğiniz durum budur. Composer iskelet yapıyı indirir, flarum/core ve bağımlılıklarını çözer; sonuçta elinizde public/, storage/, vendor/, composer.json ve bir flarum komut satırı betiği kalır.
Küçük bir VPS üzerinde bu adımda işlemler kesintiye uğrayabilir ve iki farklı hata birbirine benzer görünür. PHP Fatal error: Allowed memory size of 134217728 bytes exhausted, PHP'nin kendi memory_limit değeridir ve komutun önüne COMPOSER_MEMORY_LIMIT=-1 eklemek, tek bir çalıştırma için bu sınırı kaldırır. Herhangi bir PHP hatası olmaksızın kendi satırında görünen çıplak bir Killed, çekirdeğin bellek yetersizliği nedeniyle süreci sonlandırdığı (OOM killer) anlamına gelir; bunu dmesg | tail ile doğrulayabilirsiniz. Bu durum, makinenin gerçekten RAM'inin tükendiği anlamına gelir; bu yüzden swap alanı ekleyin. PHP sınırını yükseltmek durumu daha da kötüleştirir, çünkü PHP çekirdek müdahale etmeden önce daha fazla bellek talep eder.
Neden yalnızca /public dizini web'e açık olmalıdır
Proje kök dizini, veritabanı parolanızın düz metin olarak bulunduğu config.php dosyasını, tüm bağımlılıkları içeren vendor/ dosyasını ve günlük kayıtları ile önbelleğe alınmış oturumları barındıran storage/ dizinini tutar. Bunların hiçbiri genel internete açık olmamalıdır. Flarum, web üzerinden erişilebilir olan her şeyi public/ adlı tek bir alt dizinde tutar; bu dizin index.php, bir assets/ klasörü ve çok az başka öğe içerir. Web sunucusu kök dizinini /srv/flarum/public olarak ayarladığınızda, dizin ağacının geri kalanı, hatırlamanız gereken bir kurala gerek kalmaksızın, yapısal olarak HTTP üzerinden erişilemez hale gelir.
Bunun yerine kök dizini /srv/flarum olarak ayarlarsanız, oluşacak zarar gerçektir. /config.php dosyasını talep etmek yararlı bir sonuç döndürmez, çünkü PHP dosyayı çalıştırır ve yalnızca bir dizi döndürür. Ancak /storage/logs/flarum.log, bir yabancıya yığın izlemelerinizi (stack traces) ve veritabanı hatalarınızı verir; /composer.lock ise onlara çalıştırdığınız her paketin tam sürümünü söyler ki bu da denenebilecek bilinen güvenlik açıklarının bir listesidir.
PHP-FPM için özel bir havuz oluşturma
Flarum'un üç dizine yazma erişimine ihtiyacı vardır: yükleyicinin config.php oluşturabilmesi için proje kök dizini; günlükler ve önbellek için storage/; ve yüklenen avatarlar ile logolar için assets/. Dosyalar flarum kullanıcısına ait olduğundan, en temiz çözüm flarum kullanıcısı olarak çalışan bir PHP-FPM havuzu oluşturmaktır. nginx, www-data kullanıcısı olarak çalışmaya devam eder ve yalnızca okuma işlemi yapar.
/etc/php/8.3/fpm/pool.d/flarum.conf dosyasını oluşturun:
[flarum]
user = flarum
group = flarum
listen = /run/php/php8.3-fpm-flarum.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = ondemand
pm.max_children = 10
pm.process_idle_timeout = 30s
php_admin_value[memory_limit] = 256M
php_admin_value[upload_max_filesize] = 16M
php_admin_value[post_max_size] = 17Msudo systemctl restart php8.3-fpm
ls -l /run/php/php8.3-fpm-flarum.sockSoket, srw-rw---- 1 www-data www-data olarak listelenmelidir. Ana süreç root olarak çalışır ve soketi oluşturur; bu sayede sahipliği www-data kullanıcısına devredebilirken, çalışan süreçler flarum olarak yürütülür. Soket mevcut değilse, sudo journalctl -u php8.3-fpm -n 30 hata mesajı olarak FPM rejected çıktısını verir. pm = ondemand, çalışan süreçleri yalnızca bir istek geldiğinde başlatır; bu sayede sessiz bir forum, ziyaretçiler arasında neredeyse hiç bellek tüketmez.
Nginx sunucu bloğu
Flarum, proje kök dizininde .nginx.conf adında bir Nginx kod parçacığı ile gelir. Bu dosya; yeniden yazma (rewrite) kurallarını, önbellek başlıklarını ve sıkıştırma ayarlarını içerir. Bu içeriği kopyalamak yerine dahil edin; böylece Flarum güncellemeleriyle gelen değişiklikler, herhangi bir düzenleme yapmanıza gerek kalmadan sunucunuza yansır.
server {
listen 80;
listen [::]:80;
server_name forum.example.com;
root /srv/flarum/public;
index index.php;
client_max_body_size 16M;
include /srv/flarum/.nginx.conf;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm-flarum.sock;
}
}Bunu /etc/nginx/sites-available/flarum olarak kaydedin ve ardından etkinleştirin.
sudo ln -s /etc/nginx/sites-available/flarum /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxnginx -t, syntax is ok ve test is successful isteklerine yanıt vermelidir. include satırı, genellikle gözden kaçırılan kısımdır ve bu satırın eksikliği çok belirgin bir soruna yol açar: ana sayfa sorunsuz yüklenir ancak tüm tartışma bağlantıları Nginx üzerinden 404 hatası döndürür. Flarum, /d/1-hello-world gibi bir URL'yi PHP içerisinde yönlendirir. Bu yol disk üzerinde fiziksel bir dosya değildir; bu nedenle kod parçacığındaki try_files $uri $uri/ /index.php?$query_string kuralı olmadan Nginx, d adında bir dizin arar, bulamaz ve PHP'ye sormadan 404 yanıtı döner. Apache, aynı yönlendirmeyi zaten public/ dizininde bulunan .htaccess dosyası üzerinden gerçekleştirir; bu dosya yalnızca ilgili <Directory> bloğunda AllowOverride All ayarı yapılmışsa devreye girer.
Yükleyiciyi çalıştırmadan önce TLS ekleyin
Sertifika işlemlerini kurulumdan sonra değil, şimdi yapın. Flarum, kurulum sırasında kendi temel URL adresini config.php dosyasına yazar ve bu URL'yi tarayıcınızdaki adresten alır. Kurulumu http:// üzerinden yaparsanız, Flarum'un oluşturduğu tüm varlık URL'leri http:// ile başlar. Bu durumda TLS (transport layer security) eklediğinizde, tarayıcı bu istekleri karma içerik (mixed content) olarak engelleyecek ve forum, JavaScript olmadan, biçimlendirilmemiş metin şeklinde yüklenecektir. Öncelikle nginx üzerinde Let's Encrypt için certbot kurulumu adımlarını tamamlayın, https://forum.example.com adresinin bir sayfa sunduğunu doğrulayın ve ardından buraya geri dönün.
Eğer kurulumu zaten düz HTTP üzerinden yaptıysanız, onarım tek satırlık bir işlemdir. /srv/flarum/config.php dosyasını düzenleyin, url anahtarının 'url' => 'https://forum.example.com', değerini içerdiğinden emin olun ve ardından flarum kullanıcısı olarak php flarum cache:clear komutunu çalıştırın.
Yükleyiciyi çalıştırın ve config.php dosyasını kilitleyin
Tarayıcınızda https://forum.example.com adresini açın. Flarum web yükleyicisi sizden veritabanı adını, oluşturduğunuz veritabanı kullanıcısını ve parolasını, forum başlığını ve yönetici hesabı bilgilerinizi isteyecektir. Yükleyici, config.php dosyasını yazar ve gerekli tabloları oluşturur. İşlem tamamlandığında, veritabanı parolanızı içeren dosyayı koruma altına alın.
sudo chmod 640 /srv/flarum/config.phpDosya, FPM'in çalıştırıldığı kullanıcı olan flarum tarafından okunabilir ve yazılabilir durumda kalır; sunucudaki diğer tüm hesaplar için ise erişilemez hale getirilir. Ardından kurulumu kabuk üzerinden kontrol edin.
php flarum infoBu komut; çekirdek sürümünü, PHP sürümünü, etkinleştirilen eklentileri, posta sürücüsünü ve kullanılan dizin yollarını yazdırır. Bir sorun yaşandığında çalıştırılması gereken ilk komut budur ve size yardımcı olacak herkesin isteyeceği ilk bilgileri sağlar.
Kayıt ve parola sıfırlama e-postaları neden sessizce başarısız olur
Bu bölüm, forumunuzun ilk haftasını atlatıp atlatamayacağını belirler. Yeni bir forumun gönderdiği ilk iki e-posta, kayıt onayı ve parola sıfırlama iletileridir; her ikisi de bir yabancının topluluğunuzun gerçek olup olmadığına karar verdiği kritik anda gönderilir. Her ikisi de sessizce başarısız olur. E-postayı almayan kişi size ulaşamaz ve yönetici panelinizde hiçbir uyarı ışığı yanmaz.
Flarum, Yönetim ve ardından E-posta altında yapılandırılan dört farklı posta sürücüsüne sahiptir: smtp, mail, mailgun ve log. smtp seçeneğini tercih edin ve iletileri gerçekten teslim edecek bir posta servisine yönlendirin. mail sürücüsü, iletiyi yerel bir sendmail ikili dosyasına iletir; ancak bu dosya yeni kurulmuş bir Ubuntu VPS üzerinde mevcut olmadığından ileti hiçbir yere ulaşmaz ve herhangi bir hata üretilmez. log sürücüsü ise ileti gövdesini storage/logs/ dosyasına yazar ve hiçbir yere göndermez; çünkü bu sürücü yalnızca geliştirme aşaması için tasarlanmıştır.
Ayarları kaydedin ve aynı sayfadaki Test E-postası Gönder düğmesine basın. Bu düğme, sahip olduğunuz tek geri bildirim mekanizmasıdır; bu nedenle kimseyi davet etmeden önce mutlaka kullanın. İleti ulaşmazsa günlük kayıtlarını inceleyin.
tail -n 50 /srv/flarum/storage/logs/flarum.logReddedilen bir bağlantı, geri çevrilen bir oturum açma denemesi veya TLS anlaşma hatası, denenen ana bilgisayar ve port bilgileriyle birlikte burada listelenir. Connection could not be established with host smtp.example.com ifadesini içeren bir satır, portun engellendiğini veya yanlış olduğunu gösterir; bunun yaygın nedeni, servis sağlayıcıların varsayılan olarak 25 numaralı giden portu engellemesidir. Şifreleme alanı tls olarak ayarlanmış 587 numaralı port, neredeyse tüm posta servisleriyle çalışan standart kombinasyondur.
Posta sistemi çalışmadığında, kayıt olan bir ziyaretçi Flarum'un genel hata başlığı olan Oops! Something went wrong. Please reload the page and try again. ile karşılaşır; çünkü onay e-postası gönderilirken istek hata verir. Her iki durumda da kullanıcı sisteme giriş yapamaz ve bu durumu size bildirmek için ileti göndermez.
Postanın kabul edilmesi, gönderilmesinden ayrı bir sorundur. Alan adınız için SPF veya DKIM kayıtları yayınlanmamış bir VPS adresinden gelen postalar spam klasörüne düşer veya herhangi bir geri dönen ileti (bounce) olmaksızın doğrudan silinir. Bu durumda günlük kayıtlarınız gönderimin başarılı olduğunu gösterse bile alıcı hiçbir şey görmez. Self-hosted uygulamalardan güvenilir şekilde e-posta gönderme rehberi, hangi DNS kayıtlarının yayınlanması gerektiğini ve hangi aktarım (relay) servislerinin kullanılmaya değer olduğunu açıklar.
Eklentiler Composer paketleridir, bu nedenle yükseltmeler bir komutla yapılır
Flarum'da bir eklenti, bir Composer paketidir. Yükleme düğmesi veya bir klasöre bırakılacak zip dosyası yoktur. Bu, bilinçli bir tasarım kararıdır: sürümler birbirine göre çözümlenir, tam küme composer.lock dosyasında kaydedilir ve bir PHP kütüphanesine bağımlı olan eklenti, ilgili kütüphaneyi düzgün bir şekilde yükler. Bunun bedeli, bir eklenti eklemenin flarum kullanıcısı olarak üç komut çalıştırmak anlamına gelmesidir.
composer require 'fof/upload:*'
php flarum migrate
php flarum cache:clearArdından Yönetim ve ardından Eklentiler altından etkinleştirin. Her komut farklı bir iş yapar. composer require kodu diske yerleştirir. php flarum migrate, eklentinin beraberinde getirdiği veritabanı migrasyonlarını çalıştırır; eklenti kendi tablolarını bu şekilde oluşturur. php flarum cache:clear, tarayıcının yüklediği derlenmiş JavaScript ve CSS paketlerini yeniden oluşturur. Sonuncusunu atlamak klasik bir kafa karışıklığına yol açar: eklenti listelenir, anahtar açıktır ancak tarayıcıyı kaç kez yenilerseniz yenileyin hiçbir şey değişmez.
Bir eklentiyi kaldırmak tersi yönde işler. Önce yönetici panelinden devre dışı bırakın, ardından paketi kaldırın. Flarum, eklentinin tablolarını kasıtlı olarak yerinde bırakır, böylece daha sonra yeniden etkinleştirdiğinizde veri kaybı yaşanmaz. Tabloları da silmek isterseniz, kodu kaldırmadan önce migrasyonlarını geri alın.
php flarum migrate:reset --extension fof-upload
composer remove fof/upload
php flarum cache:clearBu komuttaki eklenti kimliği, eğik çizginin tire ile değiştirilmiş halidir. Yazmak yerine tıklamayı tercih ederseniz, composer require 'flarum/extension-manager:*' Composer'ı sarmalayan resmi bir yönetici sayfası ekler. Bu sayfa, web kullanıcısı ile aynı işlemleri çalıştırır, aynı bellek ve yazma izinlerine ihtiyaç duyar ve aynı şekillerde başarısız olur; bu nedenle bir şeyler ters gittiğinde komut satırı güvenilir yol olmaya devam eder.
Composer update neden Flarum sürümünü yükseltmeyi reddediyor
Flarum ve tüm eklentileri yükseltmek, bir Composer komutu ve ardından iki Flarum komutu ile gerçekleştirilir. Öncelikle veritabanı yedeğini alın.
composer update --prefer-dist --no-plugins --no-dev -a --with-all-dependencies
php flarum migrate
php flarum cache:clearİşlemin başarılı olduğunu varsaymak yerine çıktıyı okuyun; çünkü asıl önemli durum, Composer'ın herhangi bir işlem yapmayı reddettiği zamandır:
Your requirements could not be resolved to an installable set of packages.Bu mesaj, yüklü bir eklentinin geçiş yapmak istediğiniz sürümü dışarıda bırakan bir flarum/core kısıtlaması tanımladığı anlamına gelir. Composer bu kısıtlamayı ihlal etmeyeceği için, eklenti yazarının çalışmayacağını belirttiği bir kombinasyonu oluşturmak yerine tüm kurulumu eski sürümde tutar. Sorumlu paketi bulun.
composer why-not flarum/core 1.8.17Çıktı, o sürümü engelleyen her paketi ve her birinin tanımladığı kısıtlamayı listeler. Buradan itibaren seçenekleriniz, yazarın uyumlu bir sürüm yayınlamasını beklemek ya da eklentiyi kaldırıp onsuz devam etmektir. Bu, Composer modelinin bir bedelidir ve başkalarının güvendiği bir forumda on beş eklenti kurmadan önce bunu anlamak önemlidir. Yakın zamanda yeni bir sürüm yayınlamış eklentileri tercih edin ve liste uzunluğunu okuyabileceğiniz kadar kısa tutun.
Nelerin yedeklenmesi gerektiği
Veritabanını ve proje dizinini yedekleyin. Geri kalan her şey yeniden oluşturulabilir.
mariadb-dump -u flarum -p --single-transaction flarum > flarum-$(date +%F).sql
sudo tar czf flarum-files.tgz -C /srv flarumEski sistemlerde mariadb-dump, mysqldump olarak adlandırılır; Ubuntu 24.04 üzerinde her iki isim de çalışır. Veritabanı tüm gönderileri, tüm kullanıcıları ve tüm ayarları barındırır. Proje dizini ise config.php, composer.json (çalıştırdığınız eklentilerin asıl kaydını tutan dosya) ve yüklenen avatarlar ile logoların bulunduğu assets/ dizinini içerir. vendor/ dizinini yedeklemeyi atlayabilirsiniz, çünkü composer install bunu composer.lock üzerinden yeniden oluşturur ve storage/ kendi kendini yeniler. Her iki dosyayı da sunucudan başka bir yere kopyalayın; çünkü koruduğu makinede tutulan bir yedek, gerçek bir yedek değildir. Geri yükleme işlemi; aynı sürümde temiz bir Flarum kurulumu, composer install, kaydedilen dosyaların yerlerine konulması ve SQL dosyasının yüklenmesi anlamına gelir.
FAQ
Flarum 1 GB RAM kapasiteli bir VPS üzerinde çalışabilir mi?
Evet, küçük bir topluluk için çalışabilir. Flarum normal çalışma düzeninde istekleri yanıtlayan PHP-FPM ve MariaDB servislerinden oluşur; pm = ondemand sayesinde PHP işleyicileri yalnızca bir kullanıcı sayfayı okuduğu sırada aktif olur. En yüksek kaynak tüketimi kurulum aşamasında gerçekleşir: composer create-project tüm bağımlılık ağacını bellekte çözümler ve bu işlem, sistemin out-of-memory (OOM) killer mekanizması tarafından sonlandırılmaya en müsait adımdır. Kurulumdan önce bir swap dosyası ekleyin veya Composer işlemini daha yüksek kapasiteli bir makinede gerçekleştirip oluşan dizin yapısını sunucunuza kopyalayın.
Ana sayfa çalışırken tartışma bağlantıları neden 404 hatası veriyor?
Nginx sunucu bloğunuzda include /srv/flarum/.nginx.conf; eksiktir. Flarum, /d/1-hello-world gibi URL yapılarını PHP içerisinde işler; bu yollar disk üzerinde fiziksel bir dosya değildir. İlgili kod parçacığındaki try_files $uri $uri/ /index.php?$query_string kuralı olmadan Nginx, d adında bir dizin arar, bulamaz ve PHP'yi hiç çağırmadan 404 hatası döndürür. Apache üzerinde aynı yönlendirme public/.htaccess ile sağlanır; ancak <Directory> bloğunda AllowOverride All ayarı yapılmadığı sürece bu kural göz ardı edilir.
HTTPS'yi etkinleştirdikten sonra forumum neden tüm stilini kaybetti?
Flarum, temel URL bilgisini kurulum sırasında kullandığınız adresten alır ve bunu config.php içerisinde saklar. Eğer kurulumu düz HTTP üzerinden yaptıysanız, Flarum http:// şeklinde varlık (asset) URL'leri üretmeye devam eder. Tarayıcılar, HTTPS sayfa içerisinde bu tür HTTP içerikleri "mixed content" olarak algılayıp engellediği için sayfa stilsiz görünür. /srv/flarum/config.php dosyasındaki url anahtarını https:// adresiyle güncelleyin ve dosya sahibi olan kullanıcı yetkisiyle php flarum cache:clear komutunu çalıştırın.
Kayıt onay e-postaları neden kimseye ulaşmıyor?
Öncelikle posta sürücüsünü kontrol edin. mail sürücüsü, yeni kurulmuş bir Ubuntu VPS üzerinde bulunmayan yerel bir sendmail ikili dosyasına ihtiyaç duyar; log sürücüsü ise e-postaları storage/logs/ dosyasına yazar ve dışarıya hiçbir şey göndermez. smtp sürücüsüne geçiş yapın, çoğu sağlayıcı 25 numaralı portu engellediği için şifreleme türünü tls olarak ayarlayıp 587 numaralı portu kullanın ve Send Test Mail butonuna basın. Eğer günlük kayıtları başarılı bir gönderim gösteriyor ancak e-posta yine de ulaşmıyorsa, sorun yapılandırmadan ziyade teslim edilebilirlik ile ilgilidir; bu durumda gönderim yapan alan adınız için SPF ve DKIM kayıtlarını yayınlayın.
Flarum 1.8 mi yoksa 2.0 mı kurmalıyım?
1.8 sürümünü kurun. Ağustos 2026 itibarıyla Flarum 2.0 bir release candidate aşamasındadır ve daha da önemlisi, birçok eklenti hala 1.x sürümünde kalan flarum/core kısıtlamasına sahiptir. Bugün 2.0 kurmak, eklentilerin birbiriyle güncellenemediği bir forum yapısına yol açar; bu durum tam olarak composer why-not aracının teşhis etmek için var olduğu hata türüdür. Sürümünüzü flarum/flarum:^1.8.0 ile sabitleyin ve kullandığınız eklentiler 2.0 sürümlerini yayınladığında güncellemeyi tekrar değerlendirin.