7 заметок с тегом

PHP

Изменить размер лимит upload_max_filesize для phpmyadmin в WHM/cPanel

WHM Tweak Settings upload_max_filesize for phpmyadmin
Один из клиентов попросил изменить данный лимит для загрузки крупного дампа через phpmyadmin, но т.к. WHM/cPanel огромный комбайн, то конечно же данный лимит изменяется не в /etc/php.ini и даже не в /etc/php/php.ini   Для изменения лимита переходим в Tweek Settings - PHP и изменяем параметры POST size, к примеру ставим 128 Mb и UPLOAD size, установив 96 Mb. Почему? Не забываем правило memory_limit >= post_max_size >= upload_max_filesize   Ну и далее сохраняемся. Все, готово.

Собрать php из исходников в отдельной директории

Собрать php из исходников в отдельной директории

Для сканирования сайта актуальной версией ai-bolit пришлось собрать php из исходников, т.к. на сервере была установлена, Вы не поверите, версия php 5.2. Можно возразить - а как же docker - собрал контейнер и понеслось. Таки да, но не в этом случае.
Поэтому приступаем к сборке:
Я собрал версию php 5.6, но согласно данного гайда можно собрать любую.
Создаем директорию для сборки

mkdir /opt/php56


Скачиваем исходник

wget -O php-5.6.32.tar.gz http://nl1.php.net/get/php-5.6.32.tar.gz/from/this/mirror


Распаковываем

tar -zxvf php-5.6.32.tar.gz


Переходим в директорию

cd /opt/php56/php-5.6.32/


и приступаем к сборке

./configure --prefix=/opt/php56 --exec-prefix=/opt/php56 --sysconfdir=/opt/php56 --with-libdir=/usr/lib64 --disable-rpath --with-config-file-path=/opt/php56 --with-config-file-scan-dir=/opt/php56/php.d --with-zlib

make 

make install


Хочу заметить, что для ai-bolit нужно расширение zlib поэтому мне пришлось пересобирать повторно с ключом --with-zlib

prefix - директория установки архитектурно независимых файлов;

exec-prefix - директорию установки архитектурно зависимых файлов, если не указывается, то равно prefix;

sysconfdir - директория с файлами конфигурации;

with-libdir - расположение библиотек;

disable-rpath - директива запрещает поиск библиотек исполняемых файлов в дополнительных каталогах;

with-config-file-path - директива указывает каталог, в котором размещен файл конфигурации PHP php.ini;

with-config-file-scan-dir - директива устанавливает путь сканирования файлов конфигурации;

2017   ai-bolit   make   make install   PHP

Если не работает php-cgi в ISPmanager v4 Lite после обновления PHP

Вставляем в директиву виртуального хоста в /etc/httpd/conf/httpd.conf для CentOS / RH для Ubuntu / Debian /etc/apache2/apache.conf

AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /php-bin/php
Action application/x-httpd-php /php-bin/php

  Для php 7.x:

AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /php-bin/php
Action application/x-httpd-php /php-bin/php

 

Оптимальные настройки для Bitrix в связке nginx + fpm

Если будут использоваться на сервере только магазины/сайты на 1С Битрикс, то сразу обновить PHP до 5.6! Также хочу заметить, что данные параметры применялись для VPS RAM 2 Gb и более, 2 ядра CPU и более. Как результат тест выдавал около 60-70 единиц. MySQL

[mysqld]

table_cache=256
key_buffer_size=32M
sort_buffer=8M
max_allowed_packet = 1M
read_buffer_size=8M
query_cache_size=48M
query_cache_type=1
tmp_table_size=8m
join_buffer_size = 2M

innodb_buffer_pool_size=128M
innodb_additional_mem_pool_size=20M
innodb_file_io_threads=8
innodb_lock_wait_timeout=50
innodb_log_file_size=128M
innodb_log_buffer_size=16M
innodb_flush_log_at_trx_commit=0

ZendOPcache

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=500000
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.file_update_protection=10

PHP.ini

pcre.backtrack_limit = 1000000
;pcre.recursion_limit = 14000
pcre.recursion_limit = 100000
realpath_cache_size = 4096k

2016   1С Битрикс   Bitrix   MySQL   nginx   opcache   PHP   php-fpm

Очистка файлов сессий PHP

Для очистки большого количества файлов сессий PHP, из директории с этими файлами выполняем команду в директории /tmp/ (может отличаться):

find . -name "sess*" -print0 | xargs -0 /bin/rm

Забываем о головной боли.
2016   find   PHP   session   tmp

Опасные функции PHP

Отключаем опасные функции PHP для усложнения жизни любителям поломать сайт

disable_functions = exec,system,passthru,readfile,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,parse_ini_file,show_source,curl_exec,pcntl_exec,expect_popen,eval

Для Joomla parse_ini_file лучше не отключать, т. к. возникнут проблемы Расшифровка функций:

exec — вызов внешней программы


ini_get — получает значение опции конфигурации


ini_get_all — получает все опции конфигурации


parse_ini_file — разбирает файл конфигурации


passthru — вызов внешней программы и вывод «сырых» результата на дисплей


php_uname — возвращает информацию об ОС, на которой php был построен


popen — открывает файловый указатель процесса


proc_open — выполняет команду и открывает файловый указатель для ввода/вывода


shell_exec — выполняет команду в оболочке/shell и возвращает полный вывод в виде строки


show_source — вывод исходного текста текущей веб страницы


system — вызов внешней программы и вывод результата на дисплей


Также стоит подумать над отключением таких функций:

diskfreespace — псевдоним функции disk_free_space


disk_free_space — получить размер доступного пространства в каталоге


disk_total_space — возвращает общий размер диска


eval — вычисляет строку, заданную в code_str, как код PHP (eval ( string code_str))


fileperms — получить информацию о правах на файл


fopen — открывает файл или URL


opendir — возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir()


phpinfo — выводит всю информацию об php, ОC


phpversion — выводит версию php


posix_getpwuid — возвращает информацию о пользователе по его user id


posix_getgrgid — возвращает информацию о группе по её group id


posix_uname — получает системное имя, возвращает хэш строк с информацией о системе


2016   PHP
Ранее Ctrl + ↓