Get Social

Сборка PHP 7.4 с помощью phpbrew на сервере Ubuntu/Debian (Vesta CP)

Возникла задача поставить PHP 7.4 на сервер Ubuntu (также можно и на Debian). Ставить буду через phpbrew с учётом того, что используется Vesta CP для управления сервером.

Предварительная подготовка phpbrew на сервере Ubuntu/Debian под управлением Vesta CP

1. Перейдём в папку /root

cd /root

2. Подготовим phpbrew для компиляции. Ставить будем в альтернативную папку: /usr/local/php

phpbrew init --root=/usr/local/php
  
export PHPBREW_ROOT=/usr/local/php

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

phpbrew update

3. При первой попытке собрать PHP 7.4 у меня выдало ошибку.

ошибка сборки Phpbrew на Vesta (Debian/Ubuntu) – “No package oniguruma found” (pkg-config)

Как побороть?

Сначала находим и ставим нужный пакет, который требуется для удовлетворения зависимости:

# apt search oniguruma
Sorting... Done
Full Text Search... Done
libjruby-joni-java/oldstable,oldstable 2.1.11-2 all
 Java port of Oniguruma regexp library

libonig-dev/oldstable,oldstable,now 6.1.3-2 amd64 [installed]
 regular expressions library — development files

libonig4/oldstable,oldstable,now 6.1.3-2 amd64 [installed,automatic]
 regular expressions library

libonig4-dbg/oldstable,oldstable 6.1.3-2 amd64
 regular expressions library — debugging symbols

lua-rex-onig/oldstable,oldstable 2.7.2-4 amd64
 Onig regular expressions library for the Lua language

Ставится командой:

apt install libonig-dev

Затем редактируем команду сборки, учитывая, что пишут на GitHub:

Вот готовая команда для сборки:

phpbrew install 7.4 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg=/usr --with-freetype=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --enable-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic

В конце создадим символическую ссылку, чтобы потом настроить конфигурацию в Vesta CP:

ln -s /usr/local/php/php/php-7.4.8 /usr/local/php/php74

Почему Sphinx не работает на Ubuntu / Debian?

Eсли sphinx служба запускается, но поиск по сайту ничего не выдаёт (и ошибку в том числе), проблема может быть в следующем:
systemctl status sphinxsearch
Когда проверяете статус службы – обратите внимание на строку

...
... To enable sphinxsearch, edit /etc/default/sphinxsearch and set START=yes
...

В этом случае просто отредактируйте файл /etc/default/sphinxsearch и поменяйте значение параметра “START=no” на “START=yes”.
Всё!

Ошибка mod_fcgid: HTTP request length 137536 (so far) exceeds MaxRequestLen (131072)

mod_fcgid: HTTP request length 137536 (so far) exceeds MaxRequestLen (131072)

После установки панели ISPmanager Lite 5.126.2 с пробной лицензией на 2 недели (это удобно, так как за это время можно спокойно купить и активировать лицензию) я столкнулся с этой ошибкой. В этом случае php настроен в режиме FastCGI.

При попытке запустить веб-приложение, получаем (в логах или в debug):

mod_fcgid: HTTP request length 132992 (so far) exceeds MaxRequestLen (131072), referer: http...

В браузере вы можете получить малоинформативное сообщение:

Error 500, Internal server error

Вернёмся к логам:

1-я цифра – всегда разная и зависит от запроса от вашего приложения

2-я цифра – 131072 – это значение MaxRequestLen по-умолчанию.

Ошибка HTTP request length 132992 (so far) exceeds MaxRequestLen (131072) говорит о том, что ваш запрос превысил значение по умолчанию

Значит решением будет – увеличить этот параметр.

Конечно, можно его вставить практически где угодно в конфиге apache. Можно в настройках вашего хоста.

Но лучше всего править конфиг самого модуля FastCGI:

/etc/apache2/mods-available/fcgid.conf (если у вас Debian, Ubuntu и другие их производные)
/etc/httpd/conf.d/fcgid.conf (если у вас CentOS, Fedora и подобные им)

Чтобы выбрать подходящее значение параметра MaxRequestLen, посмотрите свой php.ini

upload_max_filesize = 2M

Для этого значения подойдёт: 2M = 2097152 байт. Добавьте в ваш файл fcgid.conf

FcgidMaxRequestLen 2097152

Остаётся перезапустить apache:

apachectl restart

 

Страницы:12345