Lighttpd'yi PHP ve MariaDB ile CentOS/RHEL 8/7'ye Yükleme


Lighttpd, diğer web sunucularına kıyasla daha az bellek kullanımına sahip, hızın kritik olduğu ortamlar için tasarlanmış açık kaynaklı, güvenli, hızlı, esnek ve daha optimize edilmiş bir web sunucusudur.

Etkili CPU yükü yönetimiyle tek bir sunucuda 10.000'e kadar bağlantıyı paralel olarak yönetebilir ve FastCGI, SCGI, Kimlik Doğrulama, Çıkış Sıkıştırma, URL Yeniden Yazma ve çok daha fazlası gibi gelişmiş özelliklerle birlikte gelir.

Lighttpd, aynı donanımla diğer alternatif web sunucularına kıyasla birkaç kat daha iyi performansı ölçeklendirmemize olanak tanıyan yüksek hızlı io altyapısı nedeniyle her Linux sunucusu için mükemmel bir çözümdür.

Bu eğitimde, Lighttpd'yi PHP, PHP-FPM ve MariaDB ile <'ye nasıl yükleyeceğinizi açıklayacağız. linux-console.net ana bilgisayar adı ve 192.168.0.103 IP adresiyle güçlü>CentOS/RHEL 8/7 dağıtımları.

Adım 1: Lighttpd Web Sunucusunu Kurun

1. Lighttpd'yi yüklemek için öncelikle aşağıdaki yum komutunu kullanarak sistem yazılım paketlerinizi ve mevcut depolarınızı güncellemeniz gerekir.

yum -y update

2. Daha sonra sisteminizde EPEL deposunu etkinleştirmeniz ve aşağıdaki komutları kullanarak yazılım paketlerini güncellemeniz gerekir.

yum -y install epel-release
yum -y update

3. EPEL deposunu etkinleştirdikten sonra, artık aşağıdaki komutu çalıştırarak Lighttpd'yi yükleyebilirsiniz.

yum install lighttpd

4. Lighttpd paketleri yüklendikten sonra hizmeti başlatabilir ve önyükleme sırasında otomatik olarak başlamasını etkinleştirebilir ve aşağıdaki komutları kullanarak durumu doğruladığınızdan emin olabilirsiniz.

systemctl start lighttpd
systemctl enable lighttpd
systemctl status lighttpd

5. Şimdi aşağıdaki komutu kullanarak sisteminizde yüklü olan Lighttpd sürümünü doğrulayın.

lighttpd -v

lighttpd/1.4.55 (ssl) - a light and fast webserver

6. Artık güvenlik duvarınızda HTTP ve HTTPS trafiğine izin vermeniz gerekiyor.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

7. Şimdi tarayıcınızı açın ve Lighttpd web sunucunuzun çalıştığını görmek için aşağıdaki URL'nin üzerine gelin.

http://Your-Domain.com
OR
http://Your-IP-addr

Lighttpd için varsayılan belge kök dizini /var/www/lighttpd/'dir ve ana yapılandırma dosyası /etc/lighttpd/lighttpd.conf altında bulunur.

Adım 2: CentOS 7'de MariaDB'yi MySQL olarak kurmak

8. Ardından, aşağıdaki komutları kullanarak Lighttpd için MySQL desteğini yükleyin.

yum -y install mariadb mariadb-server

9. Kurulum tamamlandıktan sonra aşağıdaki komutları kullanarak MariaDB'yi başlatın, etkinleştirin ve durumunu doğrulayın.

systemctl start mariadb.service
systemctl enable mariadb.service
systemctl status mariadb.service

10. Son olarak aşağıdaki komutu vererek MariaDB kurulumunuzun güvenliğini sağlamanız gerekecektir.

mysql_secure_installation

MariaDB kurulumunuzla ve onu nasıl güvence altına almak istediğinizle ilgili birkaç farklı soru sorulacak. Veritabanı kök kullanıcı parolasını değiştirebilir, test veritabanını devre dışı bırakabilir, anonim kullanıcıları devre dışı bırakabilir ve kök oturum açma işlemini uzaktan devre dışı bırakabilirsiniz.

Örnek Çıktı
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): Enter OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorization. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

11. MySQL sunucusuna bağlanmayı deneyin ve terminalde aşağıdaki komutları kullanarak veritabanı sunucunuzdaki mevcut veritabanlarını inceleyin.

mysql -u root -p
Örnek Çıktı
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]>

Adım 3: CentOS 7'de FastCGI ile PHP ve PHP-FPM'nin kurulması

12. FastCGI desteğiyle PHP-FPM'yi etkinleştirmek için öncelikle gerekli uzantılarla birlikte PHP'yi yüklemeniz gerekir. aşağıdaki komutu kullanarak.

yum -y install php php-mysqlnd php-pdo php-gd php-mbstring

13. PHP yüklendikten sonra, şimdi Lighttpdiçin PHP-FPM ve FastCGI desteğini etkinleştirin >, bunu yapmak için bu paketleri de yüklemeniz gerekir.

yum -y install php-fpm lighttpd-fastcgi

14. Şimdi /etc/php-fpm.d/www.conf adlı bir dosyayı açın.

vi /etc/php-fpm.d/www.conf

Kullanıcıyı ve grubu Lighttpd olarak ayarlayın.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = lighttpd
; RPM: Keep a group allowed to write in log dir.
group = lighttpd

Ayrıca, PHP-FPM varsayılan olarak /var/run/php/php7.0-fpm.sock soketini kullanır, PHP-FPM yapmanız gerekir Güçlü> TCP bağlantısı kullanmak için. listen satırının aşağıdaki gibi görünmesini sağlayın:

;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000 

15. Şimdi PHP-FPM hizmetini başlatın ve aşağıdaki komutları kullanarak önyükleme sırasında otomatik olarak başlamasını etkinleştirdiğinizden emin olun.

systemctl start php-fpm.service
systemctl enable php-fpm.service

Adım 4: Lighttpd'de FastCGI ile PHP ve PHP-FPM'yi etkinleştirme

16. Burada /etc/php.ini, /etc/lighttpd/modules.conf ve adlı üç dosyayı değiştirmemiz gerekiyor. Lighttpd için PHP desteğini etkinleştirmek için /etc/lighttpd/conf.d/fastcgi.conf.

İlk dosyayı /etc/php.ini açın.

vi /etc/php.ini

line cgi.fix_pathinfo=1 yazan aşağıdaki satırın yorumunu kaldırın.

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1

Daha sonra /etc/lighttpd/modules.conf adlı ikinci dosyayı açın.

vi /etc/lighttpd/modules.conf

include “conf.d/fastcgi.conf” yazan aşağıdaki satırın yorumunu kaldırın.

##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"

Daha sonra /etc/lighttpd/conf.d/fastcgi.conf adlı üçüncü dosyayı açın.

vi /etc/lighttpd/conf.d/fastcgi.conf

Şimdi aşağıdaki kapsayıcıyı dosyanın altına ekleyin ve kaydedin.

fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Değişiklikleri yansıtmak ve PHP desteğini etkinleştirmek için Lighttpd hizmetini yeniden başlatın.

systemctl restart lighttpd

Adım 5: Lighttpd'de FastCGI Desteği ile PHP ve PHP-FPM'yi test etme

17. Yukarıda söylediğimiz gibi Lighttpd için varsayılan belge kökü /var/www/lighttpd/'dir. Yani burada bu dizine bir phpinfo.php dosyası oluşturacağız.

vi /var/www/lighttpd/info.php

Aşağıdaki satırları buna ekleyin. Bu küçük kod parçası, PHP kurulumuyla ilgili bilgileri sürümleriyle birlikte görüntüleyecektir.

<?php
phpinfo();
?>

18. Tarayıcınızı açın ve aşağıdaki bağlantılara gidin.

http://Your-Domain.com/info.php
OR
http://Your-IP-addr/info.php

Zaten etkinleştirilmiş olan diğer birçok modülle birlikte PHP, PHP-FPM ve MySQL'in çalışma bilgilerini göreceksiniz.