• Flarum
  • Ubuntu 16.04 / 17.10 / 18.04 MariaDB + PHP 7.1 + Nginx + Flarum Kurulumu

Ubuntu yüklü bir sunucuya sıfırdan Maria DB, php 7.1 ve Nginx kurulumunu yapıp, bu sunucuda flarum yayınlayacağız.
SSH ile sunucunuzda root olarak oturum açın.

1. Nginx HTTP Sunucusunu Kurulumu

Nginx HTTP sunucusu, dünya çapında Apache’den sonra en çok kullanılan web sunucusudur. Apache’den çok daha hızlı ve daha az kaynak tüketir. O yüzden tercihim Nginx olacak.

Nginx HTTP’yi Ubuntu sunucusuna kurmak için aşağıdaki komutları çalıştırın …

sudo apt update
sudo apt install nginx

Kurulumun başarılı olup olmadığını test etmek için tarayıcınızın adres satırına yazın: http://ip_adresiniz

2. MariaDB Kurulumu

MariaDB veritabanı sunucusu, açık kaynak kodlu bir yazılım. Bu yüzden tercihim. Siz isterseniz farklı DB tercih edebilirsiniz.

sudo apt-get install mariadb-server mariadb-client

Şimdi, bir root şifresi oluşturarak ve uzak root erişimini engellemek ve MariaDB sunucusunu korumak için aşağıdaki komutları çalıştırın.

sudo mysql_secure_installation

Gelen sorulara aşağıdaki gibi cevap verin.

  • Enter current password for root (enter for none): Just press the Enter
  • Set root password? [Y/n]: Y
  • New password: şifre gir
  • Re-enter new password: şifreyi tekrar gir.
  • 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

MariaDB sunucusunu yeniden başlatalım.

sudo systemctl restart mariadb

3. Php 7.1 ve Gerekli Eklentilerin kurulumu

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php7.1-fpm php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-mysql php7.1-gd php7.1-xml php7.1-cli php7.1-zip php7.1-tokenizer

Şimdi php.ini dosyasında bazı değişiklikler yapmamız lazım. Bunun için;

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

php.ini dosyanızda aşağıdaki değişikleri yapıp keydedip, kapatın.

  • file_uploads =open
  • allow_url_fopen = open
  • memory_limit = 256M
  • upload_max_filesize = 100M
  • cgi.fix_pathinfo = 0
  • max_execution_time = 360

sudo apt update

4. Nginx Yeniden Başlat

Php ve ilgili modüllerin Nginx’te aktif olabilmesi için Nginx’i yeniden başlatmamız lazım.

sudo systemctl restart nginx

5. Yeni Bir Veri Tabanı oluşturma

MariaDB veritabanı sunucusunda oturum açmak için aşağıdaki komutları çalıştırın.

sudo mysql -u root -p

Sonra flarum adında bir veritabanı oluşturun.

CREATE DATABASE flarum;

Yeni parola ile flarumuser adlı bir veritabanı kullanıcısı oluşturun.

CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'şifreni_belirle';

Ardından kullanıcıya veritabanına tam erişim izni verin.

GRANT ALL ON flarum.* TO 'flarumuser'@'localhost' IDENTIFIED BY 'şifreni_burayada_gir' WITH GRANT OPTION;
Sonunda değişiklikleri kaydedin ve çıkın.

FLUSH PRIVILEGES;
EXIT;

Yeni Kullanıcı Oluşturma

Şimdi sunucumuza bir kullanıcı tanımlamalıyız.

Bunun aşağıdaki komutları sırasıyla girin.

sudo adduser yenikullanici

Eğer sudo yetkileri vermek isterseniz aşağıdaki komutu girin.

usermod -aG sudo yenikullanici

ufw app list

Çıktı arasında aşağıdaki gibi OepnSSH olmalıdır.

Output
Available applications:
  OpenSSH

Ardından;

ufw enable

ufw status

Çıktısı:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

6. Flarum Kurulumu

Flarum, bağımlılıklarını ve uzantılarını yönetmek için Composer’ı kullanır. Bu yüzden, Flarum’u yüklemeden önce, Composer’ı makinenize yüklemeniz gerekecektir. Bunu yapmak için aşağıdaki komutları çalıştırın.

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Flarum sitenizin yaşayacağı bir klasör oluşturun. Ve flarum kurulumu için talimatı verin. Her satırı sırasıyla yapın.

sudo mkdir /var/www/flarum
cd /var/www/flarum
sudo composer create-project flarum/flarum . --stability=beta

Ardından, kök klasör izinlerini değiştirmek için aşağıdaki komutları çalıştırın.

sudo chown -R www-data:www-data /var/www/flarum/
sudo chmod -R 775 /var/www/flarum/

7. Flarum Nginx Configrasyonu

Son olarak, Flarum için Nginx yapılandırma dosyasını yapılandırmamız gerekiyor. Oluşturacağımız dosya, kullanıcıların Flarum sitesine nasıl erişeceğini kontrol eder. flarum.conf adlı yeni bir yapılandırma dosyası oluşturmak için aşağıdaki komutları çalıştırın.

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

Sonra aşağıdaki içeriği kopyalayıp yapıştırın ve kaydedin. Alan adınızı değiştirmeyi unutmayın.

server {
    listen 80;
    listen [::]:80;
    root /var/www/flarum/public;
    index index.php index.html index.htm;
    server_name example.com www.example.com;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    }

    include /var/www/flarum/.nginx.conf;
}

8. Flarum Sitesini Yayınlama

Flarum sitesini etkinleştirmek için aşağıdaki komutları çalıştırın…

sudo ln -s /etc/nginx/sites-available/flarum.conf /etc/nginx/sites-enabled/

Nginx eniden başlatın.

sudo systemctl restart nginx

FİNAL

exapmle.com adresine gidin ve oluşturduğumuz veri tabanı bilgilerini kurulum talimatında uygun yerlere girin.

    • [silindi]

    Hocam çok harika bir makale.

    PHP 7.2 , 7.3 ve Maria dbninde diğer versiyonlarınında nasıl eklendiğini de anlatırsanız çok daha değerli bir makale olacaktır

    Emeğinize sağlık.

      [silindi] Hocam kurulum ile alakalı çok soru geliyor. Ortalama bir kullanıcı için kurulumda rehber olsun diya böyle bir makale yazayım dedim. Evet diğer php sürümlerinin kurulumunu da ekleyebilirim.

      @[silindi] Hocam bu arada sitenin SMTP ayarlarını yapmadım daha. Daha doğrusu bir sorun var. Halledemedim. O yüzden mail seçeneklerinizi şimdilik deaktif edin. Çünkü hata veriyor sizi mentionlayınca.

        • [silindi]

        mekici Tamamdır hocam tüm mail kısımlarını kapattım. Akşam bilgisayarda olacağım benimde bir yararim dokunsun isterim.

        Sanırım Yandex mailini kullanıyorsunuz. Tüm yapılandırmaları yaptığınız halde mailler hala problemliyse bunun birçok sebebi olabilir.. Deneme yanılma yöntemiyle bulmak gerekir.

        Birde hocam tasarım anlamında mobilde cevap yazma olayını sevmedim. Cevabı yazdıktan sonra yukarı kaydırıp göndermek gerekiyor. Bunu her kullanıcı cozemeyebilir. Aşağıya almak daha hoş olacaktır diye düşünüyorum..

          [silindi] Evet hocam mobilde öyle bir sıkıntı var.

          Aslında yandex maile yönelmek zorunda kaldım. Mailgun için gerekli tüm ayarları yapılandırdım. DNS TXT MX vs. tüm gerekli ayarları yaptım ancak yine posta göndermedi. Aynı şekilde Zoho mail'de denedim sonuç aynı. Şimdi geçici olarak yandex kullanayım dedim. Domain doğrularken yandex hata verdi. Destek bileti açtım bir hafta oldu çözemediler 🙂 Digitalocean'da böyle bir sıkıntı var. Anlamadım gitti. Siz anlıyor musunuz bu işten. Bi el atsanız 🙂

          7 ay sonra

          GRANT ALL ON flarum.* TO 'flarumuser'@'localhost' IDENTIFIED BY 'şifreni_burayada_gir' WITH GRANT OPTION;
          bu kodu yazıyorum, şu hatayı veriyor:
          ERROR 1046 (3D000): No database selected

          poyrazdursuncan@instance-1:~$ usermod -aG sudo dursun
          bu kodu da yazdığımda bu hatayı veriyor. İşlemlerime devam edemiyorum.

          usermod: Permission denied.
          usermod: cannot lock /etc/passwd; try again later.

          Yardımcı olur musunuz?

          —- düzenleme:
          root olarak girince 2. belirttiğim düzeldi.
          farklı veritabanı açarak denedim düzeldi.

          2 ay sonra

          Tüm adımları tek tek uyguladım. Flarum kurulum aşamasında bu hatayı alıyorum;

          Problem 1
              - flarum/pusher v0.1.0-beta.3 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - flarum/pusher v0.1.0-beta.5 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - flarum/pusher v0.1.0-beta.6 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - flarum/pusher v0.1.0-beta.8 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - flarum/pusher v0.1.0-beta.8.1 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - flarum/pusher v0.1.0-beta.9 requires pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[2.6.1, 2.6.2, 2.6.3, 2.6.4, v2.2.0, v2.2.1, v2.3.0, v2.4.0, v2.4.1, v2.4.2, v2.5.0, v2.5.0-rc1, v2.5.0-rc2, v2.5.0-rc3, v2.5.0-rc4, v2.6.0].
              - pusher/pusher-php-server v2.6.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.5.0-rc4 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.5.0-rc3 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.5.0-rc2 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.5.0-rc1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.5.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.4.2 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.4.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.4.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.3.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.2.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server v2.2.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server 2.6.4 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server 2.6.3 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server 2.6.2 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - pusher/pusher-php-server 2.6.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
              - Installation request for flarum/pusher ^0.1.0 -> satisfiable by flarum/pusher[v0.1.0-beta.3, v0.1.0-beta.5, v0.1.0-beta.6, v0.1.0-beta.8, v0.1.0-beta.8.1, v0.1.0-beta.9].

          curl kuruyorum çıktı olarak;

          curl is already the newest version (7.58.0-2ubuntu3.8).
          git is already the newest version (1:2.17.1-1ubuntu0.5).
          0 upgraded, 0 newly installed, 0 to remove and 61 not upgraded.

          Kurulu olduğunu söylüyor. Yardımlarınızı bekliyorum.

          4 ay sonra

          mekici cgi.fix_pathinfo = 0

          bunu neden yapmamız gerekiyor bilginiz var mı?

          9 ay sonra

          mekici Flarum ile biraz alakasız ama size bir sorum olacak. Aynı bu işlemleri takip ederek bir flarum forumu kurdum. Şimdi de sunucuma başka bir domainin yönlendirmesini daha yaptım. Bu domaine statik bir website kurmak istiyorum. Sadece html/css/js kodları yer alacak herhangi bir veritabanı kullanılmayacak. sites-available dizini ile bir şeyler yapmam lazım sanırım ama yanlış bir şey yapıp foruma zarar vermek istemiyorum. Bana önerebileceğiniz yazılı ya da videolu bir kaynak var mı? Teşekkürler.

            gorunurad yeni klasör oluşturma adımından sonrası her site için geçerlidir. Sudo mkdir /folder ile yeni klasör ardından sahip izinleri ve chmod sonrasında da nginx site conf ile yayına alma

            mekici sudo nano /etc/nginx/sites-available/flarum.conf

            Statik sitemi kurarken buradaki conf dosyasını kendi elimle mi kurmalıyım? Dosya oluşturma, sahip izinleri ve chmod ayarını yaptım da .conf dosyası yok. Bildiğim kadarıyla nano komutu var olan bir dosyayı editlemeye yarıyor.

              mekici sudo systemctl restart nginx komutunu çalıştırmalı mıyım en son?

                gorunurad evet çalıştırman gerekiyor. Ama öncesinde nginx -t çalıştırıp hata olup olmadığını kontrol et. Yoksa tüm siteler yayından kalkar

                Böyle bir hata verdi nginx -t komutundan sonra. Ne yapmalıyım?

                nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
                2020/12/27 17:57:02 [warn] 29009#29009: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
                2020/12/27 17:57:02 [emerg] 29009#29009: BIO_new_file("/etc/letsencrypt/live/FLARUMSITE.com/fullchain.pem") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/letsencrypt/live/FLARUMSITE.com/fullchain.pem','r') error:2006D002:BIO routines:BIO_new_file:system lib)
                nginx: configuration file /etc/nginx/nginx.conf test failed

                conf dosyasının içeriği bu şekilde. Bundan kaynaklı olabilir mi @mekici hocam?

                server {
                    listen 80;
                    listen [::]:80;
                    root /var/www/siteadi;
                    index index.html index.htm;
                    server_name siteadi.com www.siteadi.com;
                }
                  Hadımköy Kombi Servisi Minecraft Türk Sunucular