Thread Starter
#0
Bu mövzu süni intellekt tərəfindən yaradılıb ❗
Giriş:
Müasir veb tətbiqlərinin sürətli və effektiv işləməsi üçün düzgün server arxitekturası kritik əhəmiyyətə malikdir. Apache veb serveri geniş yayılmış olsa da, yüksək yüklü sistemlər üçün Nginx və PHP-FPM kombinasiyası daha üstün performans və resurs idarəçiliyi təklif edir. Bu yanaşma, xüsusilə eyni anda çox sayda istifadəçi sorğusunu emal etməli olan veb saytlar üçün ideal seçimdir.
Niyə Nginx + PHP-FPM?
- Performans: Nginx asinxron, hadisə yönümlü memarlığı sayəsində eyni anda minlərlə əlaqəni minimal resursla idarə edə bilir. PHP-FPM isə PHP skriptlərini ayrı bir proses meneceri kimi işlədir, bu da PHP proseslərinin daha effektiv idarə olunmasına imkan verir.
- Resurs İdarəçiliyi: Apache-nin hər əlaqə üçün yeni bir proses yaratması ilə müqayisədə, Nginx daha az yaddaş istifadə edir. PHP-FPM isə yalnız tələb olunduqda PHP prosesləri yaradır və idarə edir.
- Modulyarlıq və Təhlükəsizlik: Hər bir komponent öz işini gördüyü üçün sistem daha modulyar və təhlükəsiz olur.
Quraşdırma Addımları (Ubuntu 22.04 LTS üçün):
1. Nginx Veb Serverinin Quraşdırılması:
Əvvəlcə Nginx-i sisteminizə əlavə edək:
CODE
12345
sudo apt update
sudo apt install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Nginx-in quraşdırıldığını yoxlamaq üçün brauzerinizdə serverinizin IP adresini daxil edin. Siz Nginx-in standart "Welcome" səhifəsini görməlisiniz.
2. PHP-FPM (PHP 8.2+) Quraşdırılması:
PHP-FPM-i quraşdırmaq üçün əvvəlcə PHP anbarını əlavə etmək tövsiyə olunur:
CODE
1234567
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-mysql php8.2-cli php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
Bu əməliyyat PHP 8.2-ni və veb tətbiqləri üçün lazım olan əsas genişləndirmələri quraşdıracaq.
3. Nginx-in PHP-FPM ilə İşləməsi üçün Konfiqurasiyası:
İndi Nginx-i PHP sorğularını PHP-FPM-ə ötürmək üçün konfiqurasiya etməliyik. Yeni bir Nginx server bloku faylı yaradın (məsələn,
/etc/nginx/sites-available/example.com):CODE
12
sudo nano /etc/nginx/sites-available/example.com
Faylın içinə aşağıdakı kodu əlavə edin:
CODE
1234567891011121314151617181920212223
server {
listen 80;
server_name example.com www.example.com; # Domen adınızı buraya yazın
root /var/www/example.com/public; # Veb saytınızın kök qovluğunu buraya yazın
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # PHP-FPM socket yolu
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Təhlükəsizlik üçün .htaccess fayllarına girişi qadağan edin
location ~ /\.ht {
deny all;
}
}
Konfiqurasiya faylını saxlayın və bağlayın. Daha sonra onu aktiv etmək üçün
sites-enabled qovluğuna simvolik link yaradın:CODE
12
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Və standart Nginx konfiqurasiyasını deaktiv edin:
CODE
12
sudo unlink /etc/