LINUX.ORG.RU
ФорумAdmin

Поломался php?

 , , ,


0

3

Сегодня заметил, что не поулчается загрузить плагин размером более 2Мб. Странно, думаю я, смотрю в глобальный и локальный конфиги:

# cat /etc/php5/cgi/php.ini | grep upload_max_filesize
upload_max_filesize = 128M
# cat /var/www/php-bin/site.com/php.ini | grep upload_max_filesize
upload_max_filesize = 128M
Вроде всё нормально, должно загружаться. Смотрю phpinfo, там показывает значение 2M. Почему так, не понял вообще. И это не только для этой директивы, пых вообще игнорирует всё, что я прописываю в глобальном конфиге. Для выставления нужного значение нужно создавать кастомный конфиг в /etc/php5/cgi/conf.d/

Последнее что было, это обновление php 8 июля.

Как быть, не сервер же перезагружать? Постоянно править локальный php.ini тоже не комильфо.

★★★★★

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

Может в нем ошибка?

goingUp ★★★★★
()
Ответ на: комментарий от Amet13

Я правильно понял, что если в конфиге хоть одна маленькая ошибка, то он игнорируется?

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Каким образом я могу проверить конфиг на ошибки? Пробовал так:

# php -l /etc/php5/cgi/php.ini
PHP Parse error:  syntax error, unexpected 'and' (T_LOGICAL_AND) in /etc/php5/cgi/php.ini on line 202
# cat -n /etc/php5/cgi/php.ini | grep 202 
202	; <? and ?> tags as PHP source which should be processed as such. It's been

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13
# cat /etc/php5/cgi/php.ini | grep -v "^;" | grep -v "^$" | php -l
No syntax errors detected in -
Amet13 ★★★★★
() автор топика
Ответ на: комментарий от xtraeft
Configuration File (php.ini) Path	/etc/php5/cgi
Loaded Configuration File	/var/www/php-bin/site/php.ini
Scan this dir for additional .ini files	/etc/php5/cgi/conf.d
Amet13 ★★★★★
() автор топика

Для выставления нужного значение нужно создавать кастомный конфиг в /etc/php5/cgi/conf.d/

Да. И это отлично! Делай так.

anonymous
()
Ответ на: комментарий от anonymous

Почему? Поясните пожалуйста, ведь иногда нужно переопределить глобальные директивы в локальном конфиге. А так это сделать не получится.

Amet13 ★★★★★
() автор топика

Может ещё это

$ grep 1024M -R /etc/php
/etc/php/cgi-php5.5/php.ini:memory_limit = 1024M
/etc/php/cgi-php5.5/php.ini:post_max_size = 1024M
/etc/php/cgi-php5.5/php.ini:upload_max_filesize = 1024M
/etc/php/cli-php5.5/php.ini:memory_limit = 1024M
/etc/php/cli-php5.5/php.ini:post_max_size = 1024M
/etc/php/cli-php5.5/php.ini:upload_max_filesize = 1024M

backbone ★★★★★
()
Ответ на: комментарий от backbone

Там всё нормально, проверял.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

К тому же, если прописать всё в кастомном, то вообще ничего не работает.

Amet13 ★★★★★
() автор топика

Смотрю phpinfo, там показывает значение 2M. Почему так, не понял вообще.

Тебя удивляет ограничение?

swwwfactory ★★
()
Ответ на: комментарий от xtraeft

Его удивляет, почему его не получается изменить.

права скорее всего или не тот php.ini

locate php.ini

strace

Или тогда-уж поотключать все конфиги...

swwwfactory ★★
()
Ответ на: комментарий от swwwfactory

права

Так и должно ведь быть? -rw-r--r-- 1 root root 65907 Июл 11 16:22 /etc/php5/cgi/php.ini

strace

Поясните подробнее пожалуйста.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Поясните подробнее пожалуйста.

сделать php-скрипт, вызывающий strace с нужным и актуальным pid

вывести выдачу strace в файл - там, если повезет будет некоторая инфа отладочная. Хотя уже php.ini прочитается раньше, или закэшируется - тогда стрейс бесполезен. Нужно подставить в strace именно актуальный pid того процесса, который читает php.ini, а там может быть под-процесс. Искать что-то типа strace apache...

Еще вариант: запусти встроенный веб-сервер php - проверить там аплоад... и там проще strace запустить.

Так и должно ведь быть? -rw-r--r-- 1 root root 65907 Июл 11 16:22 /etc/php5/cgi/php.ini

в общем да, так, хотя cgi несколько необычно: везде php-fpm, cli и редко apache2

Еще не мешало бы убедиться, что что сервер полностью перегружался, (без подвисших демонов - такое бывает)

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от swwwfactory

Спасибо.

Еще не мешало бы убедиться, что что сервер полностью перегружался, (без подвисших демонов - такое бывает)

А из-за чего такое бывает? Была мысля о перезагрузке сервера, но оставляю это на самый крайний случай.

в общем да, так, хотя cgi несколько необычно: везде php-fpm, cli и редко apache2

Дефолтный ISPmanager, не я эти режимы выбирал, но админить приходится мне.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

А из-за чего такое бывает?

типично: недостаточно протестированный продукт или продукты-жизнедеятельности-код, кривые дистры, нештатная ситуация, разрешение dns-адресов, сетевые маршруты и конфликт адресов, занятые порты или драка за них, невозможность закрыть файл/сокет, нет места, ресурсов

Посмотри sudo lsof, sudo netstat -tupln

Кстати насчет перезагрузки - как обстоят дела с принятием новых параметров php.ini? Попробуй поменяй в конфиге что-то заурядное и попытайся увидеть это в скрипте, что изменения приняты.

swwwfactory ★★
()
Ответ на: комментарий от xtraeft

Имеют. Они переопределяют диретивы глобального конфига. Так как большинство значений для всех сайтов одинаковые, удобно было бы их прописать в глобальном конфиге, а то что меняется - в локальном.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от xtraeft

А как можно разработчикам отписать? Или вообще к кому по такому поводу обращаться? Я думаю, что такое только у меня и разработчики напишут «УМВР», так как причину я так и не выяснил.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

http://php.net/manual/ru/configuration.file.php

Там написано что пых шарится везде в поисках конфигурационных директив. Однако почему-то написано про ОДИН файл. Попробуй для одного хоста вообще удалить все дополнительные конфиги, чтобы пых хавал только глобальный, проверь, подметь какие-то значения, а потом добавь еще один конфиг или директиву в хосте и посмотри заменило ли оно значения. Ну и естессно в файле должны быть только переопределяемые значения, а не целый файл с полным набором опций (вдруг у тебя не так).

swwwfactory - cgi несколько необычно: везде php-fpm

Ты удивишься, но fpm это и есть cgi - смотри

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Делал так толку ноль.

Примечательно ещё то, что если в /etc/php5/cgi/ удалить php.ini или написать какую-то ересь, то ему вообще пофиг, пых как-будто знать не знал про этот файл.

Ещё я заметил, если в ISPmanager переключиться вместо CGI на Apache2, то все настройки работают. А в CGI - нет.

Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)

Как можно определить откуда косяк? От ISPmanager'а или от самого php? Или где можно почитать об этом?

Amet13 ★★★★★
() автор топика

Ещё заметил, что в режиме не CGI, а в режиме Apache2 директива в phpinfo():

Loaded Configuration File /etc/php5/apache2/php.ini
Тогда как в режиме CGI:
Loaded Configuration File /var/www/php-bin/example/php.ini
Содержимое файла (то, что по дефолту создаёт ISPmanager):
# cat /var/www/php-bin/example/php.ini
sendmail_path = "/usr/sbin/sendmail -t -i -f admin@example.com"
session.save_path = "/var/www/example/data/bin-tmp"

Amet13 ★★★★★
() автор топика

Кури доку по опачу. Как он конфиги загужает, как их инклудит и т.п. Все уже давно разжевано на всех языках мира.

И только потом смотри на ISPmanager и прочие поделки.

anonymous
()
Ответ на: комментарий от xtraeft

Где можно прочитать о разнице между ними? Возможно мне удастся перевести все сайты на этот модуль.

Почитал, о том, что различие между ними как раз-таки в том, что можно прописывать локальные настройки для каждого сайта в случае с CGI, а это всё-таки сервере шаред-хостинга очень важно. Пока наверное остановлюсь на вариант прописывания настроек в локальные конфиги для каждого сайта.

Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)
Ответ на: комментарий от Amet13

прописывать локальные настройки для каждого сайта в случае с CGI,

Нужно чтобы юзеры сами прописывали, или администратор для каждого вхоста разные лимиты-настройки делал? Если второе, то можно в конфиге апача настраивать пхп для каждого вхоста. Пример из моего конфига:

<VirtualHost 1.2.3.4:81 >
        ServerName domain.net
        AssignUserID username username
        CustomLog /var/www/httpd-logs/domain.net.access.log combined
        DocumentRoot /var/www/username/data/www/domain.net
        ErrorLog /var/www/httpd-logs/domain.net.error.log
        ServerAdmin webmaster@domain.net
        AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
        AddType application/x-httpd-php-source .phps
        php_admin_value open_basedir "/var/www/username/data:.:/tmp"
        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.net"
        php_admin_value upload_tmp_dir "/var/www/username/data/mod-tmp"
        php_admin_value session.save_path "/var/www/username/data/mod-tmp"
        ServerAlias www.domain.net
</VirtualHost>
Тоже ispmanager на этом сервере стоит, кстати. Апач mpm-itk + php как мод апача.

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 2)
Ответ на: комментарий от xtraeft

Нужно чтобы юзеры сами прописывали, или администратор для каждого вхоста разные лимиты-настройки делал?

Админы, чтобы тыкали значения в ISPmanager для каждого хоста.

Amet13 ★★★★★
() автор топика

Только лёг спать и до меня допёрла мысль. А должен ли вообще php-cgi юзать этот глобальный конфиг php.ini, ведь вся суть этого режима в том, что для каждого хоста - отдельный конфиг.

И такой вопрос, к примеру я всё-таки хочу некоторые директивы чтобы были одинаковые во всех хостах. Могу ли я добавить где-то в конфигах ISPmanager, что при создании нового хоста, помимо дефолтных:

sendmail_path = "/usr/sbin/sendmail -t -i -f admin@example.com"
session.save_path = "/var/www/example/data/bin-tmp"
добавлять, к примеру:
zlib.output_compression = Off
zlib.output_compression_level = -1

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

А должен ли вообще php-cgi юзать этот глобальный конфиг php.ini

Не должен, вроде как. У тебя в админах проблема.
cgi для шареда сосет, mod_php решает ;)

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

Ты издеваешься. Шаблоны у них конечно есть, если до завтра не найдешь - найду за тебя, так уж и быть.

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

Шаблоны у них конечно есть, если до завтра не найдешь - найду за тебя, так уж и быть.

Честно, не нашёл. Только вот это. Но оно вроде как мне не подходит.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Я выше ссылку давал на тред, там есть такой пост http://forum.ispsystem.com/ru/showpost.php?p=53783&postcount=6

Хм, хотя это работает вроде как для новых пользователей. Попробуй, может для вхостов тоже сработает.

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.