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.