LINUX.ORG.RU

5
Всего сообщений: 189

Где php.ini?

Была установлена php-fpm 7.4(php.ini в папке етс пхп), понадобился php-fpm 5.6, удалил на всякий случай 7.4 и поставил через aur 5.6 версию, позже понял что без 7.4 не обойтись и повторно поставил 7.4 и тут нужно сконфигурировать его но php.ini нет в папке /etc/php

удалил 5.6 версию и поставил 7.4 заново, не помогло, поставил обратно 5.6 версию и опять казус - нет php.ini

итог - у пхп 7.4(/etc/php/) и php-fpm 5.6(/etc/php56/) пропали php.ini после удаления и последующей переустановки

2 вопроса осталось:

1 какого php.ini не появляется после переустановки php(это сломало мне всю логику, почему так?) уже скопировал эти злосчастные php.ini с другого компьютера

2 The mysqli extension is missing. Please check your PHP configuration(и это только на пхп 7.4, на пхп 5.6 все нормально)

похоже где то что то пошло не так, по пути /usr/lib/php/modules/ пустота, там только библиотека gd

система арч

 ,

Regulo ()

Непонятки с php.ini

Доброго времени суток всем. Чет я совсем запутался. Система debian 10 связка nginx+php7.3+php-fpm+mysql

Сайт на битрикс. В проверке системы начал выкидывать:

Обязательные параметры PHP	
Ошибка! Параметр opcache.revalidate_freq = 2, требуется off
Значение max_input_vars должно быть не ниже 10000. Текущее значение: 1000

При чем phpinfo действительно показывает что:

Loaded Configuration File 	/etc/php/7.3/fpm/php.ini
max_input_vars	1000	1000
opcache.revalidate_freq	2	2

Но

:/etc/php/7.3/fpm# cat php.ini | grep max_input_vars
max_input_vars = 10000
:/etc/php/7.3/fpm# cat php.ini | grep opcache.revalidate_freq
opcache.revalidate_freq=0

Кому верить?

Хм. phpMyadmin вывалил

Fatal error: Uncaught UnexpectedValueException: Overloading of string functions using mbstring.func_overload is not supported by phpseclib. in /usr/share/phpMyAdmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php on line 11

хотя:

/etc/php/7.3/fpm# cat php.ini | grep mbstring.func_overload
 mbstring.func_overload = 0

но в phpinfo опять mbstring.func_overload 2 2

 , , , ,

julixs ()

Docker+php-fpm работа через сокет с несколькими сайтами

Здравствуйте. Пытаюсь настроить Docker+php-fpm при работе через сокет. Несколько сайтов, для каждого сайта создавать собственный [pool] со своим пользователем. У кого есть опыт данной настройки? Проблемы встают с добавление данных пользователей в dockerfile

 ,

adkondr ()

joomla+nginx+php-fpm перестала работать ЧПУ после ухода от apache

Необходимо настроить ЧПУ на сайте. Сайт работал на joomla+nginx (статика)+apache. После переноса на другой VPS перестала работать ЧПУ. Ранее ЧПУ был настроен чере mod-rewrite apache+htaccess, но ввиду перехода на php-fpm на него нужно перенести существующие настройки с apache

 , ,

adkondr ()

NGINX + php-fpm + домашняя директория

Ранее все работало, конфиги все те же, nginx + php-fpm запущен под моим пользователем, сайт лежит в домашней директории, иначе постоянно просит пароль, пробовал добавлять своего пользователя в группу http, не помогло

в логах ошибка - [error] 798#798: *6 FastCGI sent in stderr: «Primary script unknown» while reading response header from upstream, client: 127.0.0.1, server: adminer, request: «GET /adminer.php HTTP/1.1», upstream: «fastcgi://unix:/run/php-fpm/php-fpm.sock:», host: server { listen 80; server_name adminer; root /home/56/websites/adminer; index index.php index.html index.htm; charset utf-8;

конфиг сайта

server {
        listen       80;
        server_name  adminer;
        root /home/56/websites/adminer;
        index index.php index.html index.htm;
        charset utf-8;

        location / {
            try_files $uri $uri/ =404;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            include fastcgi.conf;
        }
}

если запустить php из консоли в папке сайта то сайт работает(php -S localhost:8080)

я это так вижу - в конфиги занесли что то новое и теперь нужно его сконфигурировать(раньше все без проблем работало) или же обходной путь - держать сайты на /usr/share/nginx/html/ и как то дать своему пользователю запись на эти папки

мой старый аккаунт был заблокирован так как я неправильно сделал название профиля, поэтому создал новый, не хочется ставить убунту из за такого пустяка

Система Arch

решение - отключить protect home в /etc/systemd/system/multi-user.target.wants/php-fpm.service сервис должен быть включен в автозагрузку

 ,

Regulo ()

Веб сервер на арч

чую они что то изменили в конфигах, недавно только все работало, кониги все те же, сервер запущен подо мной, сайты лежат в хоум директории

2019/12/31 23:46:21 [error] 798#798: *6 FastCGI sent in stderr: «Primary script unknown» while reading response header from upstream, client: 127.0.0.1, server: admin, request: «GET /adminer.php?username=root HTTP/1.1», upstream: «fastcgi://unix:/run/php-fpm/php-fpm.sock:», host:

server { listen 80; server_name admin; root /home/56/websites/admin; index index.php index.html index.htm; charset utf-8;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        #fastcgi_index index.php;
        include fastcgi.conf;
    }

}

если запустить пхп из консоли в папке сайта то все работает(php -S localhost:8080)

можно конечно изучить документацию но ведь новый год как никак

 

fdvscasffgbd1 ()

PHP_FPM вместо MOD_PHP у CENTOS/RHEL8. Что лучше?

Добрый день, разворачиваю веб-сервер APACHE + PHP на RHEL8.1 Заметил, что при установке PHP ставится также PHP_FPM и похоже он используется как основной, т.е. APACHE+PHP_FPM вместо того как раньше было APACHE+MOD_PHP

Вопрос заключается в том, что насколько PHP_FPM в данном случае лучше, по своим небольшим знаниям я думаю что PHP_FPM используется больше в связке с NGINX, но у меня нет в планах использовать NGINX.

Мне по идее нужно как раньше, по старинке APACHE + MOD_PHP

Также читал вроде как связка APACHE+PHP_FPM медленнее работает чем APACHE+MOD_PHP

 , ,

strelkovandreyv ()

php-fpm

Развренули новый сервер, и стали получать такую ошибку:

[05-Nov-2019 15:10:15] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers),
 spawning 8 children, there are 8 idle, and 41 total children

На старом, все нормально работало. Конфиги при этом одинаковые!

После увеличения параметров:

pm.max_children = 150 (было 50)
pm.start_servers = 10 (было 5)
pm.max_spare_servers = 70 (было 35)

ситуация не изменилась. Куда смотреть?

 

anonymus123 ()

php-fpm загрузка видео mkv

Всем привет! Господа знатоки, помогите разобраться. У меня установлено облако nextcloud 16. Характеристики железа: 4 ГБ RAM, Celeron J1800, HDD 6TB WDradpro Настроено все по мануалу https://www.c-rieger.de/nextcloud-installation-guide-ubuntu/ Проблема вот какая. Когда я загружаю файлы в облако, в частности фильмы .mkv, которые весят 35Гб, а затем смотрю их, то у меня начинает дико тормозить все облако. Я вижу в htop, что у меня php-fpm pool, процессы все заняты, то есть состояние R. При этом, я закрываю например видео, а они все равно там ещё примерно час висят. Не могу понять как мне настроить php-fpm так, чтобы он так дико не грузил все? Nginx 1.17.4 + php-fpm 7.3.10.

 , ,

reevz ()

nginx, php-fpm, две сетевых карты с разными адресами - запутанный трафик, как решить?

Всем привет. Имею при себе nginx и php-fpm. Также у меня две сетевых карты с разными айпи адресами. На одной серый, на другой белый. У меня трафик уходит с серого, а нужно с белого.

По запросу с стороны php скрипта делается опрос удалённого сервера по udp и обратно должен придти результат, но не доходит.

1. В виртуальном хосте nginx указан белый адрес:

server
{
        listen 195.112.97.123:80;

2. В php-fpm (etc/php/7.2/fpm/pool.d/www.conf):

listen = 195.112.97.123:9000

По факту:

netstat -anoptu

tcp        0      0 195.112.97.123:80       0.0.0.0:*               LISTEN      711/nginx: master p  off (0.00/0/0)
tcp        0      0 195.112.97.123:9000     0.0.0.0:*               LISTEN      746/php-fpm: master  off (0.00/0/0)

Трафик уходит такого вида:

udp        0      0 192.168.1.200:51442     176.12.33.34:7066      ESTABLISHED 821/php              off (0.00/0/0)
udp        0      0 192.168.1.200:42282     176.12.33.34:7066      ESTABLISHED 821/php              off (0.00/0/0)

Кто-то боролся с подобным?

 , ,

BitSum ()

Проблема со связкой Nginx + Php-fpm

Всем доброго времени суток. Есть задача: необходимо реализовать location, чтобы при обращении my.site.ru/php, происходил проксирование на интерпритатор php, а при обращении my.site.ru/<другой ЯП> проксирование на порт, при обращении к корню должна отдаваться стандартная страница nginx’а. Со вторым пунктом проблем нет. А вот с 1-м и 3-м есть затруднения. Встречал тут темы с проблемами с nginx+php-fpm, но опираясь на них не смог решить проблему. Получалось реализовать так, что при запросе на корень сайта и location /php отдавалось одно и тоже. А вот разделить не получается. Сейчас у меня при запросе на корень отдаётся стандартная страница Nginx’а, при запросе на location /ruby запрос проксируется в приложению ruby по порту, а вот при запросе на location /php получаю ошибку 404 Not Found. Я понимаю, что это говорит о том, что файл не найден, но не могу понять причину. На данный момент конфиг Nginx’а выглядит так:


server {
  listen 80;

  server_name my.site.ru;

  root /usr/share/nginx/html;

  location / {
        index index.html index.php;
  }


   location ~ \.php$ {
    fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_intercept_errors on;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
   }

  location = /ruby {
    proxy_pass http://127.0.0.1:8080;
  }
}

 ,

Marmon ()

php fpm убить запрос если клиент отсоединился

Есть связка nginx+php-fpm. Хочу чтобы убивались запросы со стороны php, если клиент отсоединился

Например клиент запрашивает http://host/script.php

wget --read-timeout=1 --no-check-certificate -t 1 https://host/script.php

Через 1 сек. клиент закрывает соединение(--read-timeout=1), но nginx не закрывает соединение с сокетом /run/php-fpm.sock
netstat -nap | grep php | grep CONNECTED | grep -v mast
unix  2      [ ]         STREAM     CONNECTED     51186    21008/php-fpm: pool  /run/php-fpm.sock

и скрипт продолжает работать

Сам script.php засыпает за 10000 сек.
<?php
sleep(10000);


fastcgi_ignore_client_abort on в nginx не помогает

Да, можно поставить в самом php лимиты max_execution_time или request_terminate_timeout, но хотелось бы чтобы nginx закрывал сам соединение c php, если клиент уже отсоединился и не ждет результата работы скрипта

 ,

gobot ()

aerospike php error

есть 2 сервера, на одном все работает, на другом в логах ошибки

2019/08/07 12:59:43 [error] 1247#1247: *818680 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Failed to connect in /var/www/asp.php:61
Stack trace:
#0 /var/www/asp.php(61): Aerospike->__construct(Array)
#1 {main}
  thrown in /var/www/asp.php on line 61" while reading response header from upstream, client: 1.2.3.4, server: *.example.com, request: "GET /asp/75702373089/.jpg HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "send.example.com", referrer: "https://test.com/firebase.js"

aerospike стоит одинаковой версии

ii  aerospike-server-community       4.2.0.3-1                          amd64        The Aerospike distributed datastore allows fully scalable and reliable data storage with elastic server properties.
ii  aerospike-tools                  3.15.3.8                           amd64        Aerospike server tools.

модуль php был скопирован с работающего сервера, где нет ошибок

cat /etc/php/7.0/fpm/conf.d/aerospike.ini
extension=aerospike.so
aerospike.udf.lua_system_path=/usr/local/aerospike/lua
aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua
aerospike.shm.use = 1

1.2.3.4 - - [07/Aug/2019:12:59:43 +0300] "GET /asp/75702373089/.jpg HTTP/1.1" 500 5 "https://test.com/firebase.js" "Mozilla/5.0 (Linux; Android 9; RMX1825) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36"
1.2.3.4 - - [07/Aug/2019:12:59:44 +0300] "GET //images/usr.58db988a0ac8c/hahzlxfavmkstudzdwmqcxtl.jpg HTTP/1.1" 200 78076 "https://test.com/firebase.js" "Mozilla/5.0 (Linux; Android 9; RMX1825) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36"

после 500, сразу отдается 200 код

php -v
PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies

подскажите куда еще посмотреть, какие библиотеки надо сравнить?

 ,

Garcia ()

PHP-FPM и количество обработанных запросов в секунду

Всем доброго времени суток.

Подскажите, хочу посчитать производительность php-fpm на сервере.

Есть статистика, которую можно получить от самого php-fpm:

{
    "pool":"www",
    "process manager":"ondemand",
    "start time":1563956404,
    "start since":364330,
    "accepted conn":61204,
    "listen queue":0,
    "max listen queue":0,
    "listen queue len":0,
    "idle processes":2,
    "active processes":1,
    "total processes":3,
    "max active processes":85,
    "max children reached":0,
    "slow requests":510
}

Я правильно понимаю, что если accepted conn поделить на start since, то собственно и получу количество обработанных запросов в секунду?

И, возможно кто-то подскажет, можно ли от php-fpm получить время ответа в ms?

 ,

hanharr ()

PHP-FPM Работа с разных Lan interface

Подскажите! можно ли конкретному домену на сервере присвоить исходящий интерфейс. что-бы скрипты php типа file_get_content и.т.д работали с заданного интерфейса. задача каждому сайту выдать исходящий свой айпи

CURL proxy не в счет.

 

shrmvl ()

CMS Magento 2 Centos 7 + nginx + php-fpm

Здравствуйте, уже который день играюсь с серваком Centos 7 и мне могу разобраться до конца. Опишу проблему вкратце: 1. Хочу использовать Centos 7 с панелью управления. 2. Выбрал VESTA, установка nginx + php-fpm 3. После установки vesta под домен автоматически создаеться директория /var/www/html которую домен почему-то по умолчанию подхватывает. 4. Когда сервер свежий я первым делом запускаю yum update и обновляю все пакеты 5. После установки php (7.2), php-fpm, ngix и прочих модулей почему-то в системе оказываеться httpd, я не могу просто понять почему! Откуда оно береться? Я мониторил все команды которые я запускаю, ну нет там запроса yum install httpd и т.д. Я хочу использовать просто nginx + php-fpm, «не нужон» мне этот apache, для движка использую совсем другую директорию, не хочу я привязываться к дефолтной /var/www/html

Самый главный вопрос, возможно ли работа nginx + php-fpm без httpd ? И будет ли работать панель управления VESTA без httpd ? Пожалуйста, помогите.

Пока продолжил тестировать наконец-то я понял что httpd подитягиваеться VESTA... Как мне избавить от httpd и дать понять серверу чтобы он работал только через nginx и php-fpm?

 , , ,

Codov ()

php-fpm core dump

добавил

cat /proc/sys/kernel/core_pattern
/tmp/core.%e.%p.%t

в конфиг php-fpm.conf

rlimit_core = unlimited

ulimit -c unlimite

все перезапустил

в логах

WARNING: [pool www] child 9193 exited on signal 11 (SIGSEGV - core dumped) after 40.309703 seconds from start
NOTICE: [pool www] child 10337 started

но в /tmp/ пусто

попробовал еще добавить в /etc/sysctl.conf

kernel.core_pattern = /tmp/core.%e.%p.%h.%t
fs.suid_dumpable = 1
kernel.core_uses_pid = 1

в /etc/security/limits.conf

*       -       core    unlimited
root    -       core    unlimited

попробовал через тестовый файл сделать core файл, все создается в /tmp, но от php-fpm нет coredump, почему он не создается?

 , ,

Garcia ()

centos7 php-fpm webp

есть centos7+centos-webpanel.com +php-fpm
как подключить webp https://php5.kiev.ua/php7/function.imagewebp.html
вроде в mod_php для апача по умолчанию есть webp

 , ,

kommersant ()

nginx редирект любого каталога на index.php

есть рабочий конфиг

location ~ ^/ajax/not/ {
   fastcgi_index  index.php;
   try_files $uri $uri/ /ajax/not/index.php?$query_string;
   fastcgi_pass   unix:/var/run/php-fpm.sock;
   fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
   include        fastcgi_params;
}
можно как-то это правило модифицировать, если добавятся еще несколько каталогов в ajax, что бы в конфиге не добавлять похожие правила, например

location ~ ^/ajax/set/ {
   fastcgi_index  index.php;
   try_files $uri $uri/ /ajax/set/index.php?$query_string;
   fastcgi_pass   unix:/var/run/php-fpm.sock;
   fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

а сделать одно общее правило для таких случаев?

 , ,

Garcia ()

Через 332 дня аптайма затупил NGinx. В чем может быть причина?

Сайт на Nginx + PHP5.6, в последние пару месяцев было ~5000 уникумов в день, ~7000 страниц.

# uptime
 10:31:36 up 332 days, 21:49,  1 user,  load average: 2.12, 2.12, 2.09


Сегодня Nginx выдал ошибку:

504 Gateway Time-out nginx/1.6.2


По htop вижу, что память выжрал php-fpm. Всего на сервере 1Gb, использовано:

# free -h
             total       used       free     shared    buffers     cached
Mem:          1.0G       923M        83M        68M        65M       713M
-/+ buffers/cache:       145M       862M
Swap:           0B         0B         0B


У php-fpm вижу 1 процесс со статусом D. Процесс, имеющий статус S может получить статус D спустя некоторое время. Пример с процессом 23265:

# ps aux | grep php-fpm
root       460  0.0  1.3 105288 14024 ?        Ss    2018  33:25 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 23232  0.6  3.3 116828 34536 ?        S    09:20   0:33 php-fpm: pool www                                 
www-data 23237  0.6  3.3 116860 34648 ?        S    09:21   0:29 php-fpm: pool www                                 
www-data 23240  0.7  3.2 116780 33752 ?        S    09:22   0:32 php-fpm: pool www                                 
www-data 23264  0.5  3.3 116568 34312 ?        D    09:27   0:23 php-fpm: pool www                                 
www-data 23265  0.6  3.3 116816 34748 ?        S    09:27   0:26 php-fpm: pool www                                 
root     23992  0.0  0.2   4556  2108 pts/0    S+   10:39   0:00 grep php-fpm

# ps aux | grep php-fpm
root       460  0.0  1.3 105288 14024 ?        Ss    2018  33:25 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 23232  0.7  3.3 116828 34536 ?        S    09:20   0:35 php-fpm: pool www                                 
www-data 23237  0.6  3.3 116676 34464 ?        S    09:21   0:31 php-fpm: pool www                                 
www-data 23240  0.7  3.2 116700 33816 ?        S    09:22   0:35 php-fpm: pool www                                 
www-data 23264  0.5  3.3 116568 34396 ?        S    09:27   0:26 php-fpm: pool www                                 
www-data 23265  0.6  3.3 116816 34748 ?        D    09:27   0:29 php-fpm: pool www                                 
root     24029  0.0  0.2   4556  2152 pts/0    S+   10:44   0:00 grep php-fpm


Вот. Что все это значит? Перед тем как я сделаю ребут, хотел бы понять что произошло, чего серверу не хватило.

Хотя, перед ребутом я попробую перезапустить php-fpm, может и ребутиться ненадо. Но хотелось бы понять в чем причина 504-й ошибки.



Перемещено leave из web-development

 ,

Xintrea ()