• DestekKurulum
  • Sıfırdan Ubuntu Flarum Kurulumu (Hatasız Kurulum!)

[reply]Domain’i Sunucumuzun IP adresine yönlendirmediysek şuradaki işlemleri yapalım;

Eğer ki domainimizi IP adresine yönlendirmediysek şuradaki adımları uygulayarak domain yönlendirme işlemi yapalım.

Domain Yönlendirildikten Sonra Hiç Beklemeden Nginx’i Sunucuza Kurun.

Aksi taktirde IP adresine yönlendirme yapsanız da sunucunuzda çalışan bir web servisi olmadığı için sitenizi ziyaret ettiğinizde error kısmında connection refused tarzında hatalar alırsınız.

web servis hizmeti olan nginx kurulumunu yapalım.

  1. sudo apt update ile sunucunuzu ve ubuntuyu güncelleme işlemini ilk olarak yapalım.

  2. sudo apt install nginx ile sunucuya nginx kurulumunu gerçekleştirelim.

Ardından mariaDB Kurulumuna geçelim.

  1. sudo apt-get install mariadb-server mariadb-client Komutu ile mariaDB kurulumunu yapalım.

  2. sudo mysql_secure_installation komutu ile mariaDB’yi korumaya alalım.

  3. Enter current password for root (enter for none): Direk Enter’a basıp geçin

  4. Set root password? [Y/n]: Y

  5. New password: Bir parola oluşturun.(Parola siz yazarken görünmeyecektir. fakat yazacaktır.)

  6. Re-enter new password: Oluşturduğunuz parolayı tekrar girin.

  7. Remove anonymous users? [Y/n]: Y

  8. Disallow root login remotely? [Y/n]: Y

  9. Remove test database and access to it? [Y/n]: Y

  10. Reload privilege tables now? [Y/n]: Y

sudo systemctl restart mariadb MariaDB sunucusuna res atın.

PHP 8.0 Kurulumunu Gerçekleştirelim.(En aşağı PHP 8.0 Kurmanızı tavsiye ederim).

  1. sudo apt-get install software-properties-common komutunu çalıştıralım.

  2. sudo add-apt-repository ppa:ondrej/php komutunu çalıştıralım.

  3. sudo apt update ile tekrardan sunucumuzu güncelleyelim.

  4. sudo apt install php8.0-fpm php8.0-common php8.0-mbstring php8.0-xmlrpc php8.0-soap php8.0-mysql php8.0-gd php8.0-xml php8.0-cli php8.0-zip php8.0-tokenizer kodu ile PHP 8.0 ve modüllerini yükleyelim.

  5. sudo apt-get install php8.0-curl Curl modülünü yükleyelim.

  6. sudo apt-get install php8.0-mbstring Komutunu yükleyelim.

Filezilla ile sunucunuza bağlanamıyorsanız veya bağlansanız da değişiklik yapamıyorsanız alttaki adımları uygulayın. Böyle bir sorununuz yoksa direkt FileZilla programı ve yapılacak değişiklikler. bölümünden devam edin.

  1. sudo nano /etc/ssh/sshd_config Yazarak ilgili dizindeki sshd_config dosyasının içeriğine ulaşalım.

  2. Klavyedeki Ok(Yön) Tuşları ile hareket ederek#PermitRootLogin yazan yeri bulalım.

  3. Yukarıdaki #PermitRootLogin ifadesini PermitRootLogin yes olarak değiştirelim. (Yanında ne yazdığının önemi yok silin ve PermitRootLogin yes ifadesi ile değiştirin. Görünümü şöyle olmalıdır.

Not : PermitRootLogin’in başındaki diyez(#) işaretini silmeyi unutmayın aksi taktirde yes de deseniz aktif olmayacaktır. (#) deaktif demektir.

  1. CTRL + X’e basın. Gelen uyarıya Y Kaydetme uyarısını ise Enter’a basarak onaylayın. ve çıkın.

  2. sudo su - diyerek root hesabına geçin.

  3. whoami diyerek kim olduğunuzu sorgulayın çıktı şöyle olmalıdır.;

root

  1. sudo passwd root Diyerek parola değiştirme işlemine başlayın.
New password: Parolanızı girin (Parola görünmeyecektir fakat yazma işlemi gerçekleşecektir.)
Retype new password: (Parolanızı tekrar girin)
passwd: password updated successfully => Başarılı bir biçimde parolanızı değiştirdiyseniz alacağınız çıktı budur.

FileZilla programı ve yapılacak değişiklikler.

Şimdi FileZilla programını varsa açın yoksa buraya tıklayarak indirin.

Dosya > Site Yöneticisi bölümüne girin. Ardından Site Ekle butonuna tıklayın. Ve aşağıdaki biçimde kendinize göre doldurun.

  1. /etc/php/8.0/fpm dizinine gidin

  2. php.ini isimli dosyayı açın ve içindeki şu ayarları CTRL+F yaparak aşağıdakileri ile değiştirin.

file_uploads =On

allow_url_fopen = On

memory_limit = 256M

upload_max_filesize = 100M

cgi.fix_pathinfo = 0

max_execution_time = 360
  1. sudo service nginx restart komutu ile nginx’i yeniden başlatın.

Yeni bir veritabanı oluşturalım.

  1. sudo mysql -u root -p komutu ile mysql’a giriş yapın. Şifrenizi isteyecek mariadb kurarken şifre oluşturmuştuk o şifreyi girin.

  2. CREATE DATABASE databaseadiniziburayagirin; ile yeni bir veritabanı oluşturun.

  3. CREATE USER 'databasekullaniciadi'@'localhost' IDENTIFIED BY 'şifrenizi buraya girin'; yeni bir veritabanı kullanıcısı oluşturun.

  4. GRANT ALL ON databaseismi.* TO 'databasekullaniciadi'@'localhost' IDENTIFIED BY 'şifrenizi tekrar yazın' WITH GRANT OPTION; Oluşturduğunuz veri tabanı kullanıcısını tam yetkilendirin.

  5. FLUSH PRIVILEGES; komutunu yazın.

  6. EXIT; ile çıkış yapın.

Flarum kurulumunu yapalım.

İlk öncelikle composer kurulumunu yapalım.

  1. sudo apt install curl git komutunu çalıştıralım.

  2. curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer komutu ile composer kurulumunu tamamlayalım.

  3. sudo apt-get install unzip komutu ile unzip’i kuralım.

  4. sudo mkdir /var/www/flarum komutu ile bir klasör oluşturalım.

  5. cd /var/www/flarum Komutu ile oluşturduğumuz dizine erişelim.

  6. sudo composer create-project flarum/flarum . komutu ile flarum kurulumunu gerçekleştirelim.

Eğer ki bir uyarı gelirse Y veyahut yes diyerek onaylayın.

Şimdi dosya izinlerini ayarlayalım.

  1. sudo chown -R www-data:www-data /var/www/flarum/ komutunu yazalım.

  2. sudo chmod -R 775 /var/www/flarum/ Komutu ile tüm dosyaların izinlerini flarumu çalıştırabilecek şekilde ayarlayalım.

Şimdi Nginx’i Flarum için hazırlayalım.

  1. FileZilla’dan /etc/nginx/sites-available dizinine gidelim.

  2. Sağ tıklayıp dosya oluştur diyelim.

  3. flarum.conf isminde bir dosya oluşturalım ve içine aşağıda ki kod satırlarını ekleyelim sonra kendimize göre düzenleyelim ve ardından kaydedip çıkalım.

    server {
        listen 80;
        listen [::]:80;
        root /var/www/flarum/public;
        index index.php index.html index.htm;
        server_name websiteniz.com www.websiteniz.com;
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        }
    
        include /var/www/flarum/.nginx.conf;
    }

Web sitesini yayınlayalım.

  1. sudo ln -s /etc/nginx/sites-available/flarum.conf /etc/nginx/sites-enabled/ Komutu ile web sitesini yayınlayalım.

  2. sudo systemctl restart nginx ve sudo service nginx restart komutlarını çalıştıralım.

  3. Web sitemize giriş yapalım örn : websiteniz.com

  4. Gelen ekranı aşağıda ki resime göre doldurun ve ardından Install Flarum’a tıklayın.

Artık kurulumunuz hazır!

Not : Flarum PHP 7.1 ve üzeri destekliyoruz dese de üçüncü partikül çalıştırıcılar PHP 7.1 desteklemediği için kurulum sırasında hata alınıyor. Bu sebepten dolayı PHP sürümünüz en aşağı 7.2 olmalı! Yoksa Composer ve içinde bulunan sympony partikülü çalışmayacağı için yükleme sağlanamayacaktır.

Not 2 : Flarum en düşük 2 GB Ram’li sunucularda çalışır. 1 GB Ram’li sunuculara flarum kurmak için swap ayarlaması yapmanız gerekmektedir. Bu sebepten dolayı tercih ettiğiniz sunucu en düşük 2 GB olmasını öneriyorum. İyi kullanmalar 🙂
[/reply]

    Yukarıdaki makale ile Flarum’u kurduğunuzu varsayarak, kurulum sonrasında yapmanız gereken bir kaç ayardan bahsetmeye çalışacağım.

    Flarum sadece tek kaynaktan çalıştığı için (Flarum, config.php’de belirtilen URL dışındaki URL’lerde çalışmaz.) diğer site URL’lerini config.php’de belirttiğimiz URL’ye yönlendireceğiz. NGİNX, htaccess desteklemediği için 301 yönlendirme işlemini site yayınlama dosyasında yapmamız gerekiyor. config.php’de site URL’sinin https://siteadi.com olduğunu varsayıyorum. Şimdi geriye kalan URL’leri https://siteadi.com’a yönlendireceğiz.

    http://www.siteadi.com ---> https://siteadi.com
    https://www.siteadi.com --->https://siteadi.com
    http://siteadi.com ---> https://siteadi.com 

    yani hepsi https://siteadi.com’a yönelendirilecek.

    NGİNX 301 YÖNLENDİRMESİ NASIL YAPILIR?

    Bunu iki farklı şekilde yapabiliriz. İsterseniz SSH ile, isterseniz Filezilla ile flarum.conf dosyasını indirip düzenleme yaparak yapabiliriz. Ben her ikisine de anlatacağım.

    SSH ile 301 yönlendirmesi nasıl yapılır?

    Site yayın dosyasına flarum.conf adını verdiğinizi varsayıyorum, farklı bir isim verdiyseniz flarum yerine kendi kullandığınız adı yazın. Adın ne olduğunu bilmiyorsanız filezilla ile aşağıdaki yolu takip ederek bulabilirsiniz.

    /etc/nginx/sites-available

    1. SSH ile sunucuda oturum açın.
    2. sudo nano /etc/nginx/sites-available/flarum.conf komutunu girin. NightKing yukarıda belirttiği
      server {
          listen 80;
          listen [::]:80;
          root /var/www/flarum/public;
          index index.php index.html index.htm;
          server_name websiteniz.com www.websiteniz.com;
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php8.0-fpm.sock;
          }
      include /var/www/flarum/.nginx.conf;
      }

    dosya açılacak. Biz bu dosyada 301 yönlendirmesi yapacağız. Bunun için;

    server {
    	listen 80;
    	server_name flarumtr.com www.flarumtr.com;
    	return 301 https://flarumtr.com$request_uri;
    }
    
    server {
    	listen 443 ssl;
    	server_name www.flarumtr.com;
    	ssl_certificate /etc/letsencrypt/live/flarumtr.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/flarumtr.com/privkey.pem;
    	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    	return 301 https://flarumtr.com$request_uri;
    }
    
    server {
    	listen 443 ssl;
    	server_name flarumtr.com;
    	ssl_certificate /etc/letsencrypt/live/flarumtr.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/flarumtr.com/privkey.pem;
            include /etc/letsencrypt/options-ssl-nginx.conf;
            ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    	root /var/www/flarumtr/public;
    	index index.php index.html index.htm index.nginx-debian.html;
    	location ~ \.php$ {
    		include snippets/fastcgi-php.conf;
    		fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
    	}
    	location = /sitemap.xml { try_files $uri $uri/ /index.php?$query_string; }
    	location ~ /\.ht {deny all;}
            location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {expires 365d;}
    	include /var/www/flarumtr/.nginx.conf;
    }

    Yukarıda flarumtr.com ve www.flarumtr.com alan adlarını kendi alan adınız ile değiştirin. Tabi bunun öncesinde Let’s Encrypt SSL kurmuş olmanız gerekiyor. Dosyayı yukarıdaki kodlarla değiştirip kaydedip kapatın. Şimdi terminalde nginx -t yazın. Eğer aşağıdaki gibi bir uyarı aldıysanız sorun yok, tekrardan terminalde systemctl restart nginx komutunu çalıştırın.

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    Farklı bir hata uyarısı alırsanız bir şeyler yanlış gitmiştir, ayarlarınızı eski haline getirin. Hata aldığınız halde systemctl restart nginx derseniz siteniz yayından kalkar, Nginx bozulur.

    Aşağıdaki satırlar ne işe yarıyor

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    Daha fazla bilgi için bakınız: https://scotthelme.co.uk/content-security-policy-an-introduction/

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

    Sitemap eklentisini çalışması için yukarıdaki satırın eklenmesi gerekiyor. Eğer sitemap kurmamış iseniz düzenlemeden önce yukarıdaki satırı kaldırınız.

    Fİlezilla ile Nasıl Yapılır

    Aslında Filezilla ile yapacağımız işlem yukarıdaki anlatımla ile hemen hemen aynı. Sadece Filezilla ile site yayınlama dosyasını PC indirip yukarıda bahsettiğim düzenlemeleri yapıp dosyayı yerine upload etmek ile olacak.

    1. Filezilla Programı ile sunucuda oturum açın.
    2. Oturum açma sırasında sunucuya bağlanamadı hatası alırsanız, site IP kısmını sftp://ip_adresiniz şeklinde giriniz.
    3. Sonra aşağıdaki yolu takip ederek site yayınlama dosyasını bilgisayarınıza indirin.

    /etc/nginx/sites-available

    Sonrasında Yukarıda bahsettiğim kodları düzenleyip dosyayı kaydettikten sonra/etc/nginx/sites-available dizinne geri yükleyin. Ardından SSH ile sunucuda oturum açıp nginx -t dedikten sonra bir hata mesajı vermiyorsa systemctl restart nginxdemek yeterli olacak.

    Bu işlemlerin ardından siteniz sadece https://siteadi.com’dan yayın hayatına devam edecek.

    Bitti mi hayır. Bundan sonra ayrı bir derste NGINX optimizasyonu konusuna değineceğim. Herkese iyi forumlar….

    @profilim

      teşekkürler. site için plesk ya da cpnale kursak sıkıntı olur mu

        muhammedinan Web sitesi çalışmaz. Plesk ve cpanel apache veya litespeed kullanıyor sanırım. Burdaki web modülü nginx üzerine inşa edilmiş bir anlatım.

        2 ay sonra

        Sitemap ve yönlendirme yapamamıştım, oldu hocam. Teşekkürler.

        2 ay sonra

        teşekkürler, iyi iş 😄

        25 gün sonra

        Sagol dostum, bende ubuntu yeni kullanmaya başlayacağım.

        18 gün sonra

        Sıfırdan kurulum için çok yardımcı oldu, teşekkürler.

          14 gün sonra
          5 gün sonra
          7 gün sonra
          2 ay sonra

          mekici include /etc/letsencrypt/options-ssl-nginx.conf;
          bu satır ile ilgili hata alıyorum. Bu dosya dizinde de yok zaten.

          Ben bi önceki hatayı da düzelttim. Şimdi flarum kurdum. 2. subdomaini nasıl ayarlayıp aktif edeceğim? Bu konuda da yardım eder misiniz?
          Subdomain oluşturma nasıl bi de onu anlatır mısınız?

          Hadımköy Kombi Servisi Minecraft Türk Sunucular