• Ubuntu
  • Ubuntu Nginx, PHP 7.4, MariaDB Kurulumu

Ubuntu 18.04 ve Ubuntu 20.04 sunucuda Web sunucusu olarak Nginx, Veri tabanı olarak MariaDB ve PHP 7.4 kurulumuna değineceğim. Linux sunucuda Nginx, MySQL ve PHP bulunuyorsa buna genel olarak LEMP Stack denir. (Linux + Engine X + MySQL + PHP = LEMP)

Bu sunucu kurulumu ile PHP altyapısını kullanan Wordpress, Jomla, Flarum gibi projelerinizi çalıştırabilirsiniz.

Ön Şartlar

https://flarumtr.com/d/2035-ubuntu-sifir-sunucu-ilk-kurulumu

Yukarıdaki makalede bahsettiğim şekilde sudo yetkilerine sahip ayrıcalıklı bir kullanıcının oluşturulup, güvenlik duvarının etkin edilmesi gerekiyor.

Yeni bir kullanıcı oluşturup sudo yetkileri verdikten sonra, yeni kullanıcı olarak sunucuda yeniden oturum açın ve bundan sonraki adımlara o kullanıcı ile devam edin.

Nginx Web Sunucusu Kurulumu

Sunucu üzerine kuracağımız siteleri dünyaya yayımlamak için bir web sunucusuna ihtiyacımız var. Bu makalede ben Nginx kuracağım. Diğer makalelerimde Apache, Openlitespeed gibi diğer Web sunucusu kurulumlarına da değineceğim.

Sunucuda ilk defa oturum açtıysanız Ubuntu reposunda bulunan paketleri güncellemek iyi bir başlangıç için önemlidir. Bunu sunucuda her oturum açtığınızda yapmanızı tavsiye ederim.

sudo apt update
sudo apt install nginx

İstenildiğinde y basın. Kurulum tamamlandığında Nginx Web sunucusu aktif olarak Ubuntu 18.04 / 20.04 sunucunuzda çalışmaya başlayacaktır.

Ubuntu İlk Sunucu Kurulumu makalesinde bahsettiğim gibi güvenlik duvarı şu an sadece SSH bağlantılarına izin veriyor. Şimdi site yayını yapacağımız portların erişime açması için güvenlik duvarında Nginx’e izin vermemiz lazım. Bunun için;

sudo ufw allow 'Nginx Full'

Şimdi güvenlik duvarını kontrol edelim.

sudo ufw status

Çıktısı aşağıdaki gibi olmalı.

Status: active

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

Bu adımdan sonra web tarayıcıya ip adresini yazdığınızda aşağıdaki ekranı görüyor olmanız gerekiyor.

MariaDB Kurulumu

Sunucuda veri tabanı sunucusu olarak MariaDb kurulumu yapacağız.

sudo apt install mariadb-server mariadb-client
Kurulumun tamamlanmasının ardından MariaDB otomatik olarak çalışmaya başlayacaktır. MariaDB durum kontrolü için aşağıdaki komutu çalıştırabilirsniz.

sudo systemctl status mysql

Durum kontrolü ekranından çıkmak için CTRL - Z kullanabilirsiniz.
MariaDB kurulumu ile birlikte gelen güvenlik komut dosyasını çalıştıralım ve veri tabanı sunucusunu güvenli hale getirelim.

sudo mysql_secure_installation
Şifre henüz olmadığından ENTER basın.
Yeni şifre oluşturmak için sorulan soruya y ile cevap verelim. Ardından şifreyi belirleyin.

Şimdi bir dizi soruyu yanıtlamamız lazım. Sırasıyla

Set root password? [Y/n]: y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

PHP 7.4 Kurulumu

Aşağıdaki her komutu satır satır sırayla çalıştırın.

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

PHP 7.4 ve en çok kullanılan php eklentilerinin kurulumlarını yapalım.

sudo apt install php7.4-fpm  php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl php7.4-gmp -y

PHP 8.0 Kurulumu

sudo apt install php8.0-{fpm,common,mysql,xml,xmlrpc,curl,gd,imagick,cli,imap,mbstring,opcache,soap,zip,intl,gmp} -y

Daha sonra herhangi başka bir php eklentisinine ihtiyacınız olursa çalıştırmanız gereken komut ise şu:

sudo apt install php7.4-eklenti_adi

Daha sonradan bir php eklentisi kuraracak olursanız php-fpm’nin yeniden başlatılması gerekir. Php-fpm yeniden başlatmak için;

sudo systemctl restart php7.4-fpm

PHP yeniden otomatik başlamasını sağlamak için;

sudo systemctl enable php7.4-fpm

Sırada Ne Var?

Sunucumuz artık PHP ve MySQL veri tabanı kullanan siteleri yayımlamaya hazır. Bunda sonra Nginx’te site yayımlama konusuna değineceğiz. Böylece ilk sitenizi yayımlamış olacaksınız.

    8 ay sonra

    mekici php komutunu şu şekilde günceller mısınız?

    sudo apt -y install php8.0 php8.0-{fpm,cli,xml,common,curl,dom,gd,mbstring,mysql,tokenizer,zip,pdo}

      durpoy Bazı eklentiler halen PHP 8 uyumlu değil.

        4 ay sonra
        mekici bu tartışmayı sabitledi.
        24 gün sonra

        mekici Hocam yukarıdaki kurduğumuz tüm php eklentilerini flarum için etkinleştirmelimiyiz? Yada flarum için paylaşımlı hostinglerde etkinleştirilmesi önerilen php eklentileri nelerdir?

          Cywyn curl, dom, gd, json, mbstring, openssl, pdo_mysql, tokenizer, zip bazı hostinglerde file-info eklentisinin etkinleştirilmesi gerekebiliyor.

            2 ay sonra
            mekici, bu tartışmanın sabitlenmesini kaldırdı.
            8 ay sonra

            sudo apt -y install php8.1 php8.1-{fpm,cli,xml,common,curl,dom,gd,mbstring,mysql,tokenizer,zip,pdo}

            komut artık eklenebilir diye düşünüyorum.

            bir yıl sonra

            mekici 22.04 sürümü içinde detaylı anlatım sunar mısınız? Normalde olurdu fakat 22.04 sürümü kurduktan sonra yapamadım

            • Can bunu yanıtladı.
              5 gün sonra

              BatuhanBakay sysadmin tarafında deneyiminiz bulunmuyorsa LAMP kurulum tavsiye etmem. CyberPanel, Cloudpanel gibi web yönetim panellerini tercih ederek, Flarum’u bunlar üzerinde inşa edebilirsiniz.

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