Ubuntu 20.04/18.04 Üzerinde OpenLiteSpeed, MariaDB, PHP 8.0 Kurulumu

Merhaba arkadaşlar, bu eğitimde sizlerle Ubuntu 20.04/18.04 üzerinde LOMP yığınını (Linux, OpenLiteSpeed, MariaDB ve PHP 8.0) nasıl kurabileceğimizi öğreneceğiz.

Bir yazılım yığını, birlikte paketlenmiş bir dizi yazılım aracı demektir. LOMP, açılım olarak dinamik web sitelerine ve web uygulamalarına güç verebilen Linux, OpenLiteSpeed, MariaDB/MySQL ve PHP anlamına gelir. Burada Linux işletim sistemi, OpenLiteSpeed ​​web sunucusu, MariaDB/MySQL, veritabanı sunucusu ve PHP ise dinamik web sayfaları oluşturmaktan sorumlu sunucu tarafı betik dilidir.

Peki Neden Apache/Nginx Yerine OpenLiteSpeed ​Öneriyorsun?

LAMP yığınının (Apache) ve LEMP yığınının (Nginx) nasıl kurulacağını daha önce MUHYAL üzerinde tartışmıştık. Peki bu makalede neden OpenLiteSpeed anlatıyor ve öneriyoruz? Basit bir ana nedeni var. Performans. Diğer nedenlerini ise aşağıdan inceleyebilirsiniz.

  • Saniyede 5 kata kadar daha fazla istek yanıtlama,
  • LSAPI, mod_PHP ve PHP-FPM’den daha iyi PHP performansı sağlar,
  • Son derece düşük sunucu CPU kullanımı ve bellek ayak izi,
  • HTTP/3. OpenLiteSpeed ​​hıza odaklandığından, bu yeni teknolojiyi Nginx’ten daha hızlı benimsemiştir,
  • Dahili PageSpeed ​​ve ModSecurity modülü. Nginx kullananlar bilir, Nginx’i her yükselttiğinizde bu iki modülü yeniden derlemeniz gerekir,
  • WordPress, Magento, Joomla, Prestashop, Opencart, Drupal, xenForo, Laravel, Shopware ve MediaWiki gibi popüler web uygulamalarıyla yerleşik sayfa önbelleği entegrasyonu,
  • Anti-DDoS bağlantısı ve bant genişliği daraltma,
  • Statik dosyalar için yerleşik Brotli sıkıştırma desteği,
  • Web tabanlı yönetici paneli…

Gereksinimler

Bu öğreticiyi uygulamak için Ubuntu 20.04/18.04 işletim sistemi kurulu bir sunucuya ihtiyacınız olacaktır.

1. Adım: İşletim Sistemi Depo & Paketlerin Güncellenmesi

LOMP yığınını kurmadan önce, Ubuntu 20.04/18.04 işletim sistemimizde aşağıdaki komutu çalıştırarak depo ve yazılım paketlerini güncelleyelim.

sudo apt-get update && apt-get upgrade -y

2. Adım: OpenLiteSpeed ​​Web Sunucusu Kurulumu

OpenLiteSpeed, varsayılan olarak Ubuntu yazılım deposuna dahil değildir, bu nedenle onu kendi resmi upstream deposundan yüklememiz gerekecek.

Ubuntu sisteminize OpenLiteSpeed ​​resmi deposunu eklemek için aşağıdaki komutu çalıştırın:

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

Yukarıdaki komut, APT’nin kurulum sırasında paket bütünlüğünü doğrulayabilmesi için OpenLiteSpeed ​​GPG anahtarını Ubuntu sistemine aktaracaktır.

Aşağıdaki komutla OpenLiteSpeed kurulumunu başlatalım:

sudo apt install -y openlitespeed

Kurulduktan sonra, aşağıdaki komutu çalıştırarak OpenLiteSpeed’in açılışta otomatik başlamasını sağlayabiliriz.

sudo systemctl enable lshttpd

Ardından OpenLiteSpeed’i şu komutla başlatın:

sudo systemctl start lshttpd

Şimdi hizmetin durumunu kontrol edin:

sudo systemctl status lshttpd

Örnek komut çıktısı:

● lshttpd.service - OpenLiteSpeed HTTP Server
     Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-05-31 04:59:06 EDT; 14min ago
   Main PID: 7213 (litespeed)
     CGroup: /system.slice/lshttpd.service
             ├─7213 openlitespeed (lshttpd - main)
             ├─7224 openlitespeed (lscgid)
             ├─7253 openlitespeed (lshttpd - #01)
             └─7254 openlitespeed (lshttpd - #02)

May 31 04:59:04 focal systemd[1]: Starting OpenLiteSpeed HTTP Server...
May 31 04:59:04 focal lswsctrl[7171]: [OK] litespeed: pid=7213.
May 31 04:59:06 focal systemd[1]: Started OpenLiteSpeed HTTP Server.

Çıktıda ki “Enabled” kısmı ile hizmeti açılışta otomatik başlatmanın etkin olduğu anlamına gelir. Devamında ise OpenLiteSpeed’in sorunsuz çalıştığını görebiliyoruz. Bu ekrandan çıkmak için “q” tuşuna basabilirsiniz.

OpenLiteSpeed ​​sürümünü kontrol edin:

/usr/local/lsws/bin/openlitespeed -v

Örnek komut çıktısı:

LiteSpeed/1.6.21 Open
	module versions:
	modgzip 1.1
	cache 1.62
	modinspector 1.1
	uploadprogress 1.1
	mod_security 1.4
 (built: Tue Apr  6 13:20:57 UTC 2021) 
	module versions:
	modgzip 1.1
	cache 1.62
	modinspector 1.1
	uploadprogress 1.1
	mod_security 1.4

Varsayılan olarak OpenLiteSpeed, 8088 numaralı bağlantı noktasını dinler, bizim OpenLiteSpeed’in 80 numaralı bağlantı noktasını dinlemesini sağlamamız gerekiyor. Ana yapılandırma dosyasını nano gibi bir komut satırı metin düzenleyicisiyle düzenlemek için açın.

sudo nano /usr/local/lsws/conf/httpd_config.conf

Aşağıdaki satırları bulun:

listener Default{
    address                  *:8088
    secure                   0
    map                      Example *
}

8088’i 80 olarak değiştirin:

listener Default{
    address                  *:80
    secure                   0
    map                      Example *
}

Dosyayı kaydedin ve kapatın. Ardından OpenLiteSpeed’i yeniden başlatın.

sudo systemctl restart lshttpd

:spiral_notepad: Sunucunuzda çalışan Nginx vb. gibi başka web sunucunuz varsa, onu durdurmanız ve ardından OpenLiteSpeed’i yeniden başlatmanız gerekir.

sudo systemctl stop nginx

Şimdi tarayıcınızın adres çubuğuna Ubuntu 20.04/18.04 sunucunuzun IP adresini yazın. OpenLiteSpeed ​​Web sunucusunun düzgün çalıştığı anlamına gelen “ Congratulations” web sayfasını görmelisiniz.

Bağlantı reddedilirse veya istek tamamlanamazsa, 80 numaralı TCP bağlantı noktasına gelen istekleri engelleyen bir güvenlik duvarı olabilir. iptables güvenlik duvarı kullanıyorsanız, 80 numaralı TCP bağlantı noktasını açmak için aşağıdaki komutu çalıştırmanız gerekir.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

UFW güvenlik duvarı kullanıyorsanız, 80 numaralı TCP bağlantı noktasını açmak için bu komutu çalıştırın.

sudo ufw allow http

Varsayılan olarak, OpenLiteSpeed ​​web sunucusu, nobody kullanıcısı ve nogroup grubu olarak çalışır.

Varsayılan belge kök dizini /usr/local/lsws/Example/html 'dir.

Adım 3: MariaDB Veritabanı Sunucusunu Kurun

MariaDB, Oracle’ın MySQL’i kapalı kaynak kodlu bir ürüne dönüştürebileceğinden endişe duyan MySQL ekibinin eski üyeleri tarafından geliştirilmiştir.

MariaDB’yi Ubuntu 20.04/18.04’e kurmak için aşağıdaki komutu çalıştıralım.

sudo apt install mariadb-server mariadb-client

Kurulduktan sonra MariaDB sunucusu otomatik olarak başlatılmalıdır.

Hizmetin durumunu kontrol etmek için systemctl kullanın.

systemctl status mariadb

Örnek komut çıktısı:

● mariadb.service - MariaDB 10.3.29 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

Eğer hizmet çalışmıyorsa, şu komutla başlatın:

sudo systemctl start mariadb

MariaDB’nin başlangıçta otomatik olarak çalışmasını sağlamak için şu komutu çalıştırın:

sudo systemctl enable mariadb

Şimdi kurulum sonrası güvenlik komut dosyasını çalıştırın:

sudo mysql_secure_installation

MariaDB root şifresini girmeniz istendiğinde, root şifresi henüz ayarlanmadığı için Enter tuşuna basın. Ardından, MariaDB sunucusunun kök kullanıcı parolasını ayarlamak için y girin.

Ardından, anonim kullanıcıyı kaldıracak, uzaktan root girişini devre dışı bırakacak ve test veritabanını kaldıracak kalan tüm soruları yanıtlamak için Enter tuşuna basarak devam edebilirsiniz. Bu adım, MariaDB veritabanı güvenliği için temel bir gerekliliktir. (Y’nin büyük harfle yazıldığına dikkat edin, bu varsayılan cevap olduğu anlamına gelir.)

Varsayılan olarak, Ubuntu’daki MariaDB paketi, kullanıcı oturum açma kimliğini doğrulamak için unix_socket kullanır; bu, temel olarak, MariaDB konsolunda oturum açmak için işletim sisteminin kullanıcı adını ve parolasını kullanabileceğiniz anlamına gelir. Böylece MariaDB root şifresi olmadan giriş yapmak için aşağıdaki komutu çalıştırabilirsiniz.

sudo mariadb -u root

Çıkmak için çalıştırın:

exit;

MariaDB sunucu sürüm bilgilerini kontrol edin.

mariadb --version
mariadb  Ver 15.1 Distrib 10.3.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Gördüğünüz gibi MariaDB 10.3.29’u kurduk.

Adım 4: PHP 8.0 Kurulumu

OpenLiteSpeed’i kurduğumuzda, OpenLiteSpeed ​​için hazırlanmış bir PHP 7.3 yapısı olan lsphp73 paketini otomatik olarak kurar.

PHP 8.0’ı aşağıdaki komutla kurabiliriz.

sudo apt install lsphp80 lsphp80-mysql lsphp80-common lsphp80-opcache lsphp80-curl

PHP versiyonunu kontrol edin:

/usr/local/lsws/lsphp80/bin/php8.0 -v

Örnek komut çıktısı:

PHP 8.0.6 (cli) (built: May  7 2021 15:17:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.6, Copyright (c), by Zend Technologies

Yalnızca 5 PHP 8.0 paketi kurmamıza rağmen, OpenLiteSpeed ​​PHP yapısı birçok PHP modülüyle birlikte gelir. Aşağıdaki komutla etkinleştirilmiş PHP modüllerini kontrol edebilirsiniz.

/usr/local/lsws/lsphp80/bin/php8.0 --modules

Adım 5: PHP’yi Test Edelim

Kurulum sonrası /usr/local/lsws/Example/html dizini altında bir phpinfo.php dosyası bulunur, böylece PHP’yi OpenLiteSpeed ​​Web sunucusuyla test etmek için tarayıcı adres çubuğuna http://sunucu-ip-adresiniz/phpinfo.php girebilirsiniz.

Adrese gidince sunucunuzun PHP bilgilerini görüyor olmalısınız. Bu, PHP betiklerinin OpenLiteSpeed ​​web sunucusuyla düzgün şekilde çalışabileceği anlamına gelir. LiteSpeed ​​API (LSAPI) aracılığıyla bağlanırlar.

Kocaman tebrikler! OpenLiteSpeed, MariaDB ve PHP’yi Ubuntu 20.04/18.04’e başarıyla yüklediniz.

OpenLiteSpeed’in varsayılan olarak PHP7.3 kullandığını az önce deneyimlemiş olduk.

PHP sürümünü 8.0’a değiştirmek için yönetici panelini kullanmamız gerekir.

Adım 5: Yönetici Panelinin Yapılandırılması

Yönetici paneli için bir kullanıcı adı ve şifre belirleyin:

sudo /usr/local/lsws/admin/misc/admpass.sh

Komut sonrası adımları takip ederek bir kullanıcı adı ve bir şifre belirleyebilirsiniz.

Ardından https://sunucu-ip-adresiniz:7080/login.php adresinden yönetici paneline erişebilirsiniz. OpenLiteSpeed varsayılan olarak kendinden imzalı bir TLS sertifikası kullanır, bu nedenle web tarayıcınızda bir uyarı görebilirsiniz, bu normaldir.

:information_source: Tarayıcı uyarısı almanız halinde
Firefox’ta Gelişmiş’e tıklayın ve "Riski kabul et ve Devam et"e tıklayın.
Google Chrome’da, sunucu-ip’niz (güvensiz) ilerleyin’i tıklayın.

Yönetici Panelinin Kullanılarak PHP 8.0’a Geçiş Yapılması

PHP 8.0’ı kullanmak için, önce sunucu seviyesinde PHP8.0’ı etkinleştirmemiz gerekiyor. Server ConfigurationExternal App gidin ve yeni bir harici uygulama eklemek için + tıklayın.

Tür olarak LiteSpeed ​​SAPI App seçin ve İleri düğmesine tıklayın.

Sonrasında aşağıdaki parametreleri giriniz:

  • Name: lsphp8.0
  • Address: uds://tmp/lshttpd/lsphp80.sock
  • Max Connections: 10
  • Environment: PHP_LSAPI_CHILDREN=10
    LSAPI_AVOID_FORK=200M
  • Initial Request Timeout (secs): 60
  • Retry Timeout (secs): 0
  • Persistent Connection: Yes
  • Response Buffering: No
  • Command: lsphp80/bin/lsphp
  • Backlog: 100
  • Instances: 1
  • Priority: 0
  • Memory Soft Limit (bytes): 2047M
  • Memory Hard Limit (bytes): 2047M
  • Process Soft Limit: 1400
  • Process Hard Limit: 1500

Ayarları kaydedin. Ardından Virtual HostsExampleScript Handler sekmesine gidin ve yeni bir komut dosyası işleyici eklemek için + tıklayın.

Aşağıdaki parametreleri girin:

  • Suffixes: php
  • Handler Type: LiteSpeed SAPI
  • Handler Name: lsphp8.0

Ayarları kaydedin. Ardından, değişikliklerin etkili olması için sol üst köşedeki Graceful Restart düğmesini tıklayın. Şimdi PHP’yi OpenLiteSpeed ​​Web sunucusuyla test etmek için tarayıcı adres çubuğuna tekrar sunucu-ip-adresiniz/phpinfo.php adresini girin. Varsayılan olarak artık PHP 8.0 kullanıldığını görmelisiniz.

Notlar

OpenLiteSpeed’i bir süre kullandıktan sonra sadece test için Nginx’e geri dönmeye çalıştım. Bazı PHP modüllerinin artık etkin olmaması bana da garip geldi. OpenLiteSpeed ​​nedeniyle olup olmadığı belli değil. Tekrar eksik modülleri (mysqlnd, mysqli, mbstring, gd, json, vb.) etkinleştirmek için /etc/php/7.4/cli/php.ini ve /etc/php/7.4/fpm/php.ini dosyasını düzenlemek zorunda kaldım.

Normal bir LEMP yığını kurulumunda, PHP modüllerini etkinleştirmek için php.ini dosyasını düzenlememiz gerekmiyor, ancak bu durumda bu dosyayı düzenlememiz gerekiyor. Gerekli tüm modülleri etkinleştirmenin kolay bir yolu ise aşağıdaki iki komutu çalıştırmaktır:

cat /etc/php/7.4/mods-available/* | sudo tee -a /etc/php/7.4/fpm/php.ini
cat /etc/php/7.4/mods-available/* | sudo tee -a /etc/php/7.4/cli/php.ini

Kapanış

Umarım bu eğitim, LOMP yığınını Ubuntu 20.04/18.04 LTS’ye kurmanıza yardımcı olmuştur. Bu gönderiyi faydalı bulduysanız beğenebilir, bu makalede eksik hatalı olduğunu düşündüğünüz kısım ya da makale ile ilgili yardıma ihtiyacınız var ise aşağıdan paylaşabilirsiniz. Kendinize iyi bakın :wave: