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
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.
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 Configuration
→ External 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 Hosts
→ Example
→ Script 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