Відмінності між версіями «Php-fpm»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
 
(Не показано 4 проміжні версії ще одного користувача)
Рядок 2: Рядок 2:
  
 
== Підготовка  ==
 
== Підготовка  ==
 +
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
 +
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
 +
dnf module list php
 +
dnf module enable php:remi-7.4
  
−
Необхідні пакети можна взяти тут ftp://centos.alt.ru/pub/php-fpm/
+
yum install php php-cli php-fpm  
 +
yum install php-mbstring php-opcache php-sodium php-xml php-gd php-pear php-pecl-apcu php-mysqlnd php-json php-intl php-pdo ImageMagick php-curl
  
−
Налаштування php-fpm.conf (змінюємо відповідні входження)<br>
+
setfacl -m u:apache:rwx /var/lib/php/opcache
 +
setfacl -m u:apache:rwx /var/lib/php/session
 +
setfacl -m u:apache:rwx /var/lib/php/wsdlcache
 +
 
 +
== Налаштування php-fpm.conf ==
 +
(змінюємо відповідні входження)<br>
 
<pre>&lt;value name="listen_address"&gt;/var/run/php-fpm&lt;/value&gt;
 
<pre>&lt;value name="listen_address"&gt;/var/run/php-fpm&lt;/value&gt;
 
&lt;value name="owner"&gt;nginx&lt;/value&gt;
 
&lt;value name="owner"&gt;nginx&lt;/value&gt;
 
&lt;value name="group"&gt;nginx&lt;/value&gt;</pre>
 
&lt;value name="group"&gt;nginx&lt;/value&gt;</pre>
−
Налаштування nginx<br>
+
 
 +
== Налаштування nginx ==
 
  server {
 
  server {
 
  listen 80;
 
  listen 80;
Рядок 17: Рядок 28:
 
  include fastcgi_params;
 
  include fastcgi_params;
 
   
 
   
−
  '''# Корінь де буде лежати сайт
+
  '''# Корінь де буде лежати сайт'''
−
'''root /srv/www/test/htdocs;
+
root /srv/www/test/htdocs;
 
   
 
   
−
  '''# Всю статику віддаємо nginx  
+
  '''# Всю статику віддаємо nginx'''  
−
'''location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|bmp|swf)$ {
+
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|bmp|swf)$ {
 
     root /srv/www/zg/htdocs;
 
     root /srv/www/zg/htdocs;
 
  }
 
  }
 
   
 
   
−
  '''# Перенаправлення всіх запитів на index.php,
+
  '''# Перенаправлення всіх запитів на index.php'''
−
'''if (!-e $request_filename) {
+
if (!-e $request_filename) {
 
     rewrite ^.*$ /index.php last;
 
     rewrite ^.*$ /index.php last;
 
  }
 
  }
 
   
 
   
−
  '''# корінь ссайту
+
  '''# корінь сайту '''
−
'''location / {
+
location / {
 
     root /srv/www/zg/htdocs;
 
     root /srv/www/zg/htdocs;
 
     index index index.html index.htm index.php;
 
     index index index.html index.htm index.php;
 
  }
 
  }
 
   
 
   
−
  '''# Передача файлів .php на інтерфейс fastCGI (php-fpm)
+
  '''# Передача файлів .php на інтерфейс fastCGI (php-fpm) '''
−
'''location ~ \.php$ {
+
location ~ \.php$ {
−
fastcgi_pass unix:/var/run/php-fpm;
+
    fastcgi_pass unix:/var/run/php-fpm;
−
fastcgi_index index.php;
+
    fastcgi_index index.php;
−
fastcgi_param SCRIPT_FILENAME /srv/www/test/htdocs$fastcgi_script_name;
+
    fastcgi_param SCRIPT_FILENAME /srv/www/test/htdocs$fastcgi_script_name;
−
include fastcgi_params;
+
    include fastcgi_params;
 
  }
 
  }
 
  }
 
  }
−
Запуск сервісів
+
 
 +
== Запуск сервісів ==
 
  service nginx start
 
  service nginx start
 
  service php-fpm start
 
  service php-fpm start

Поточна версія на 09:31, 16 лютого 2021

Замітка розрахована на тих, хто хоче вижати максимум продуктивності для своєї конфігурації. Також вона буде корисна і власникам VPS, обмежені ресурси яких роблять традиційну зв'язку apache + php ще менш придатною до використання. Описувана у статті конфігурація побудована на CentOS 5.4

Підготовка

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module list php
dnf module enable php:remi-7.4
yum install php php-cli php-fpm 
yum install php-mbstring php-opcache php-sodium php-xml php-gd php-pear php-pecl-apcu php-mysqlnd php-json php-intl php-pdo ImageMagick php-curl 

setfacl -m u:apache:rwx /var/lib/php/opcache setfacl -m u:apache:rwx /var/lib/php/session setfacl -m u:apache:rwx /var/lib/php/wsdlcache

Налаштування php-fpm.conf

(змінюємо відповідні входження)

<value name="listen_address">/var/run/php-fpm</value>
<value name="owner">nginx</value>
<value name="group">nginx</value>

Налаштування nginx

server {
listen 80;
server_name test; 
access_log /var/log/test.log;
error_log /var/log/test-access.log;
include fastcgi_params;

# Корінь де буде лежати сайт
root /srv/www/test/htdocs;

# Всю статику віддаємо nginx 
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|bmp|swf)$ {
    root /srv/www/zg/htdocs;
}

# Перенаправлення всіх запитів на index.php
if (!-e $request_filename) {
    rewrite ^.*$ /index.php last;
}

# корінь сайту 
location / {
    root /srv/www/zg/htdocs;
    index index index.html index.htm index.php;
}

# Передача файлів .php на інтерфейс fastCGI (php-fpm) 
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /srv/www/test/htdocs$fastcgi_script_name;
    include fastcgi_params;
}
}

Запуск сервісів

service nginx start
service php-fpm start