Flarum Kurulum için gereksinimler:
- Ubuntu 18.04 ile birlikte gelen minimum 2GB RAM bulunan bir sunucu
- SSH ile sunucuya erişebilmeniz için Termius veya Putty programı (Bilgisayarınızda Linux veya MacOS kullanıyorsanız bunlardan birini yüklemenize gerek yok.)
- MySQL 5.6+ veya MariaDB 10.0.5+ (Süper performans için biz MariaDB kuracağız.)
- Php7.1+ (Güncel en iyi PHP sürümü konusunda belirttiğimiz gibi yine en başarılı performansı elde edebilmek adına PHP 7.4-FPM kuracağız. :) )
Başalamadan önce,
- Paylaşımlı hostinge Flarum kurulumu oldukça zor ve sürdürebilirlik açısından sorunlar yaratacaktır. Bizzat geliştiricileri/kullanıcıları tarafından sunucu üzerinde barındırılması şiddetle tavsiye edilir.
- Anlatımı Vultr üzerinden yapacağız. Siz dilerseniz farklı bir sunucu firması da tercih edebilirsiniz. Ek olarak WMAracı üzerinden uygun fiyata sunucu tedarik edebileceğiniz pek çok firma mevcuttur. Kendi araştırmalarınıza göre dilediğiniz firmadan sunucunuzu tedarik edebilirsiniz. Sunucunuzun işletim sisteminin Ubuntu 18.04 olmasına dikkat ediniz.
- İşlem sırasına dikkat etmelisiniz. Aksi halde kurulum düzgün bir şekilde gerçekleşmeyebilir.
Flarum kurulumu
- Vultr'a alttaki linkten üye oluyoruz.
- Resimdeki işaretli alana tıklayarak ilk sunucumuzu oluşturacağız.
- - Choose Server: Cloud Computing seçebilirsiniz. Eğer siteniz ABD lokasyonunda hizmet verecek ise Cloud Computing yerine High Frequency seçeneğini seçebilirsiniz. Her ikisi de oldukça performanslıdır.
- Ortalama 5-10 dakikalık bir beklemenin ardından sunucu tamamen kullanıma hazır hale geldi.
- Henüz oluşturduğumuz sunucuya bağlanmadan önce, kullanacağımız domainin nameserver adreslerini Vultr'a yönlendirmemiz gerekiyor. Örneğin domaini Godaddy'den satın aldıysanız, Godaddy yönetim panelindeki DNS ayarlarından alttaki nameserverları halihazırda bulunanların yerine tanımlamalısınız.
- Bir süre bekledikten sonra DNS Checker sitesinden ns adreslerinizin tüm ülkelerden yönlendirildiğine emin olun. (Bu aşamada yönlendirmeler uzun sürebileceği için bir süre beklemeniz gerekebilir.)
- DNS menüsünden Add Domain butonuna tıklıyoruz,
- Domain başarılı bir şekilde eklendi. Son olarak ipv6 adresini de DNS kayıtlarına eklememiz gerekiyor. ipv6 adresimiz, sunucumuz oluşturulduktan sonra bize gelen e-postanın içerisinde yazmaktadır. Kopyalıyoruz,
- Artık nihayet sunucuya bağlanıp kurulum aşamasına geçebiliriz. Vultr'da Products menüsünden sunucunuza tıkladığınızda ip adresinizi ve şifrenizi bulabilirsiniz.
- Windows kullanıyorsanız eğer Flarum kurulum gereksinimlerinde bahsettiğimiz Termius ya da Putty programlarından birini kurduktan sonra SSH ile ip adresi üzerinden sunucumuza alttaki komut yardımıyla bağlanıyoruz. (Linux veya MacOS kullanıcıları, işletim sistemi ile birlikte yerleşik olarak gelen Terminal'i kullanabilirler.)
- Alttaki ekran karşıladıysa eğer sunucuya sorunsuz bir şekilde bağlandığınızı gösterir. Yapmamız gereken ilk işlem sunucu paketlerini güncellemek ve sunucuyu yeniden başlatmak olacak.
- Tekrar sunucuya bağlanıyoruz.
- Nginx kurulumunu gerçekleştiriyoruz.
- Artık PHP7.4-FPM paketini yükleyebiliriz. İlk olarak gerekli repoları sunucuya ekleyeceğiz.
- Yüklememiz gereken bir diğer uygulama olan MariaDB'yi kuruyoruz. Kurulum anında sizden şifre belirlemenizi isteyecek. Yazacağınız MariaDB erişim şifresini not alın.
- MariaDB başarılı bir şekilde kuruldu. Artık MariaDB'ye bağlanabiliriz. Alttaki komutu yazdıktan sonra sizden az önce oluşturduğunuz şifreyi isteyecek.
- Nginx'in varsayılan olarak gelen dosyalarını siliyoruz.
- Let's Encrypt ücretsiz SSL sertifikasını için gerekli uygulamaları yükleyebiliriz.
- Artık Flarum dosyalarını yükleyerek kurulumu gerçekleştirebiliriz.
- https:// üzerinden domainimizi ziyaret ederek kurulumu gerçekleştiriyoruz. Bu esnada veritabanımızı oluşturken not aldığımız veritabanı bilgilerini yazacağız. Tıpkı WordPress gibi kurulumu gerçekleştiriyoruz.
İlk ay için geçerli 50$ hediye kredi veren özel link: https://www.vultr.com/?ref=7814960-4F
Normal link: https://vultr.com/
- Server Location: Türkçe bir forum kuracaksanız Frankfurt lokasyonu gayet başarılıdır.
- Server Type: Ubuntu 18.04 x64 seçilecek.
- Server Size: Aylık 5$'lık paket başlangıç ve deneme için yeterli olacaktır. Fakat eğer eklentiler yükleyecekseniz minimum 2GB RAM tavsiye ediyoruz.
- Additional Features: Enable ipv6 seçeneğini seçiyoruz, ekstra yedekleme hizmeti isterseniz sunucunuzun %20'si kadar ek maliyetle yani aylık 1$'a işaretlemenizi tavsiye ederiz. Otomatik yedekleme özelliğini dilerseniz sonradan da açabilirsiniz.
- Server Hostname & Label: Bu kısma ise sunucunuzun adının ne olmasını istiyorsanız onu yazabilirsiniz.
Her şey hazırsa eğer, en son Deploy Now butonuna tıklayarak sunucumuzu oluşturabiliriz.
- ns1.vultr.com
- ns2.vultr.com
gelen sayfada site ismini ve sunucu ip adresinizi yazdıktan sonra Add butonuna basıyoruz.
Kopyaladığımız ipv6 adresini, DNS kayıtlarımızın arasına -tıpkı resimdeki gibi- ekleyip + işaretine tıklıyoruz. İşlem tamam.
ssh root@136.244.84.119
- Sunucuya ilk kez bağlandığınız için (yes/no)? şeklinde devam edip etmek istemediğinizi soracak. yes yazıp enter tuşuna basın.
- Sonrasında sizden sunucu şifresini isteyecek. Şifreyi yazıp tekrar enter tuşuna basıyoruz. (Yazarken veya kopyalarken şifreniz ekranda gözükmeyecektir, bu normal bir durumdur.)
Sunucu paketlerini güncelleyebilmek için çalıştırmanız gereken komut;
sudo apt update && sudo apt upgrade -y
Eğer güncelleme anında görseldeki gibi bir onay kutusu ile karşılaşırsanız, Yes seçeneğini seçip enter tuşuna basabilirsiniz.
Güncellemeler tamamlandıysa eğer sudo reboot komutu ile sunucuyu yeniden başlatabiliriz. Komutu yazdıktan sonra yeniden başlatılacağı için sunucuyla bağlantınız kesilecek.
sudo reboot
ssh root@136.244.84.119
Sırasıyla Fail2ban korumasını sunucumuza kuruyoruz ve başlatıyoruz.
sudo apt install fail2ban
sudo service fail2ban start
sudo apt-get install nginx -y
Kurulum tamamlandıktan sonra NGINX'in düzgün bir şekilde kurulduğundan emin olmalıyız.
nginx -v
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
PHP7.4-FPM ve gerekli eklentilerini kurabiliriz.
sudo apt-get install php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip -y
sudo apt install mariadb-server -y
sudo mysql_secure_installation
- Enter current password for root (enter for none): Enter tuşuna basıyoruz.
- Set root password? [Y/n]: Tekrar enter tuşuna basın.
- New password: Bir şifre belirleyin ve enter tuşuna basın.
- Re-enter new password: Şifrenizi tekrar girip enter tuşuna basın.
Sonrasında size alttaki dört soruyu ayrı ayrı soracak. Sırasıyla Y yazıp enter tuşuna tıklıyoruz.
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
sudo mysql -u root -p
Şifrenizi girdik ve artık Flarum için gerekli veritabanımızı oluşturabiliriz. Veritabanımızın ismi flarum olsun. Siz farklı bir isim kullanabilirsiniz.
create database flarum;
Veritabanımız oluşturuldu. Yeni veritabanımız için bir kullanıcı ve şifre gerekiyor, onları da alttaki komutu çalıştırarak oluşturabiliriz.
grant all on flarum.* to serdar@localhost identified by 'wmaraci';
Yukarıda yazdığımız son iki komuta göre oluşturduğumuz veritabanı bilgileri şu şekildedir:
- Veritabanı adı: flarum
- Veritabanı kullanıcısı: serdar
- Veritabanı şifresi: wmaraci
Özellikle şifre oluştururken rakamlar ve büyük küçük harfler kullanabilirsiniz fakat sembol kullanmamaya dikkat edin. Kendinize göre oluşturduğunuz bu bilgileri not alın, kaybetmeyin. Flarum kurulumu için bu bilgilere ihtiyacımız olacak.
Veritabanı ile ilgili gerekli her şeyi oluşturduk. Yapılandırdıktan sonra çıkış yapabiliriz.
flush privileges;
exit;
rm /etc/nginx/sites-available/default && rm /etc/nginx/sites-enabled/default
Flarum için Nginx kurallarını tanımlayacağız.
sudo nano /etc/nginx/sites-available/flarum
Üstteki kodu yazıp enter tuşuna bastıktan sonra tıpkı aşağıdaki görsel gibi boş bir metin editörü karşınıza gelecek.
NOT: Nano metin editörü farenize tam duyarlı değildir. Bu yüzden kelimeler ve harfler arasında imlecinizi hareket ettirebilmek için klavyenizin ↑, ↓, ← ve → yön tuşlarını kullanabilirsiniz. Kopyala/Yapıştır işlemleri için CTRL + C (kopyala), CTRL + V tuşları işinizi görecektir.
Alttaki kodu, site ismini kendinizinkiyle değiştirdikten sonra direk olarak bu metin editörüne yapıştırın.
ÖNEMLİ NOT: Kodun içerisinde dikkatinizi çekmek adına altını çizdiğimiz wmaraci.com ve www.wmaraci.com kısımlarını kendi sitenizinkiyle değiştirmeyi unutmayın.
server {
listen 80;
listen [::]:80;
server_name wmaraci.com www.wmaraci.com;
root /var/www/html/flarum/public;
index index.php index.html index.htm;
gzip_vary on;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(css|js|ico|gif|jpeg|jpg|webp|png|svg|eot|otf|woff|woff2|ttf|ogg)$ {
expires max;
log_not_found off;
add_header Cache-Control "public";
add_header Pragma "public";
}
# Gizli dosyaların guvenligi
location ~ /\. {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
log_not_found off;
access_log off;
allow all;
}
}
Yapıştırma işlemini tamamadıysanız, klavyenizden sırasıyla CTRL + O ve enter tuşlarına basarak kaydedin. Son olarak kaydettiğimiz bu dosyanın sembolik versiyonunu aşağıdaki komut ile oluşturuyoruz.
ln -s /etc/nginx/sites-available/flarum /etc/nginx/sites-enabled/
sudo add-apt-repository ppa:certbot/certbot -y
sudo apt update
sudo apt install python-certbot-nginx -y
SSL sertifikası oluşturup domain adresimize tanımlıyoruz. Komutu çalıştırdıktan sonra size soracağı sorulara resimdeki gibi yanıt vermelisiniz.
certbot --nginx -d wmaraci.com -dwww.wmaraci.com
İşlemleri uyguladıktan sonra size HTTPS yönlendirmesinin yapılması adına son bir soru soracak. SSL yönlendirmesi için 2 yazıp enter'a basıyoruz.
SSL sertifikamız başarılı bir şekilde yüklendi ve HTTPS yönlendirmesi aktif edildi. Artık sertifikanız düzenli olarak otomatik bir şekilde arka planda yenilenecek. Sizin bir işlem yapmanıza gerek yoktur.
sudo apt install zip unzip -y
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
sudo mkdir /var/www/html/flarum
cd /var/www/html/flarum
sudo composer create-project flarum/flarum . --stability=beta
Yazma izinlerini yapılandırıyoruz.
sudo chown -R www-data:www-data /var/www/html/flarum/
sudo chmod -R 755 /var/www/html/flarum/
Artık NGINX, PHP ve MySQL'u yeniden başlatabiliriz.
sudo service nginx reload
systemctl restart php7.4-fpm.service
systemctl restart mysql
logout komutu ile sunucudan çıkabiliriz.
logout
Son teknolojiyle donatılmış, ışık hızında performansıyla dikkat çeken Flarum forum sitemiz başarıyla kuruldu.
Flarum Demosu
Admin Paneli Demosu
ÖNEMLİ NOT: Bu aşamaya kadar sorunsuz geldiyseniz eğer, Vultr panelinizin Snapshot menüsünden sunucunuzun anlık görüntüsünü (yedeğini) almalısınız. Çünkü bundan sonrasında eklenti / dil dosyası yüklerken oluşabilecek hatalarda sitenize erişemeyebilirsiniz. Bu yüzden olası sorunda Snapshot özelliği sayesinde anında sunucunuzu tekrar eski haline getirebileceksiniz. Kısacası sunucuyu sıfırlayıp yukarıdaki tüm bu işlemleri tekrar etmek zorunda kalmazsınız. Snapshot oluştur butonuna tıkladıktan sonra tamamlanması 10-15 dakika sürmektedir. Snapshot güvencemiz hazırsa artık dil ve eklenti dosyalarını yükleyebiliriz.
Flarum Türkçe Dil Ekleme
- Flarum varsayılan olarak İngilizce dil ile birlikte gelmektedir. Flarum'u Türkçe yapabilmek için eklenti yüklememiz gerekiyor. Konunun en başında bahsettiğimiz gibi minimum 2GB RAM kaynağı bulunan bir sunucunuzun olmasını öneriyoruz.
- 1GB RAM gücüne sahip sunucu için hemen yukarıda swap oluşturduk. Artık sunucuya alttaki Türkçe dil dosyalarını yükleyebiliriz.
(Sunucusunda 2GB ve üzeri RAM bulunanlar sadece bu aşamayı atlayıp ikiden devam edebilir.)
Eğer 1GB RAM'e sahip bir sunucunuzda Türkçe dil ve benzer eklentiler yüklemek istiyorsanız sunucunun swap özelliğini kullanabilirsiniz.
dd if=/dev/zero of=/swapfile count=2048 bs=1M
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
cd /var/www/html/flarum
composer require tolgaaaltas/flarum-ext-turkish
Flarum sitenizi ziyaret ettiğinizde Türkçe seçeneğinin geldiğini göreceksiniz.
NOT: Bu aşamada dil dosyası yükledik. Eklenti yükleyeceğiniz zaman da bu aşamanın aynısını uygulamalısınız. Sadece "composer require nrucel/flarum-turkish" komutu yerine yükleyeceğiniz eklentinin komutunu çalıştıracaksınız o kadar.
Ekstra Bilgiler
- E-posta için Yandex Domain kullanabilirsiniz. Ücretsizdir.
- Cloud teknolojisi sayesinde yüksek network gücüne sahip, kesintisiz, güvenli ve veri kaybının yaşanmadığı bir sunucunuz olmuş oldu.
- NGINX web server kullandığımız için artık htaccess dosyasına elveda diyebiliriz. Zaten htaccess'e ihtiyacınız olmayacak, https yönlendirmesine kadar yapılmış durumda.
- Orjinal Flarum demosunu kendi sitelerinden inceleyebilirsiniz.
- Standart olarak gelen MySQL'a oranla daha performanslı çalışan MariaDB yükledik.
- Eğer sunucunuzu Vultr, DigitalOcean gibi firmalardan tedarik ettiyseniz multi hesap oluşturmamalısınız. Çoklu hesap tespiti durumunda hesaplarınız kapatılacaktır.
- İçerik tamamen özgündür ve çeşitli testler yapılarak hazırlanmıştır.
- Bazaar isimli eklentideki uyumsuzluklar sebebiyle yüklememenizi öneririz. Yükleyecekseniz de öncesinde sunucunuzun snapshot yedeğini oluşturmalısınız.
Kurulum anında sorun yaşamanız halinde yorum olarak sorabilirsiniz. Yaşadığınız hata durumunu detaylı olarak ve mümkünse ekran görüntüsü ile birlikte konunun altına yazarsanız çözüm bulabiliriz.