Configure error the http gzip module requires the zlib library

Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS/AlmaLinux) При установке nginx штатными средствами ОС в Linux ( apt, aptitude, yum, dnf ) нет возможности сконфигурировать его установку, чтобы добавить или убрать какие-либо модули и nginx устанавливается «как есть». Что же делать, если нам необходимо добавить какой-либо модуль? Правильно, нужно пересобрать nginx вручную. О том, как это […]

Содержание

  1. Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS/AlmaLinux)
  2. Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS /AlmaLinux)
  3. How to compile dynamic modules for NGINX (HTTP Redis as an example)
  4. Configure
  5. NGINX update
  6. Issues and problems
  7. «Configure» issues
  8. Connectivity issues
  9. Русские Блоги
  10. Ubuntu Nginx ./configure: error: the HTTP gzip module requires the zlib library. You can either.
  11. Интеллектуальная рекомендация
  12. IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS
  13. Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis
  14. 1086 Не скажу (15 баллов)
  15. Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных
  16. PureMVC Learning (Tucao) Примечания
  17. Install and compile nginx 1.14 on Ubuntu 18.04 LTS server
  18. Install and compile Nginx 1.14
  19. Login as root/super user
  20. Create Nginx system user
  21. Install dependency packages
  22. Download and install nginx 1.14
  23. Download Nginx Source package
  24. Decompress the downloaded Nginx source package
  25. Compiling/Installing from Nginx source files
  26. Create systemd service script file for nginx
  27. Check and confirm Nginx defualt port and webpage
  28. Why we install dependencies package before compiling nginx source code
  29. Do’nt be greedy, share the knowledge!
  30. Related
  31. Comments
  32. 2 responses to “Install and compile nginx 1.14 on Ubuntu 18.04 LTS server”
  33. Русские Блоги
  34. 【nginx】./configure: error: the HTTP gzip module requires the zlib library. You can either
  35. Интеллектуальная рекомендация
  36. IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS
  37. Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis
  38. 1086 Не скажу (15 баллов)
  39. Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных
  40. PureMVC Learning (Tucao) Примечания

Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS/AlmaLinux)

При установке nginx штатными средствами ОС в Linux ( apt, aptitude, yum, dnf ) нет возможности сконфигурировать его установку, чтобы добавить или убрать какие-либо модули и nginx устанавливается «как есть».

Что же делать, если нам необходимо добавить какой-либо модуль? Правильно, нужно пересобрать nginx вручную. О том, как это правильно сделать в Linux, рассказываем в статье.

Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS /AlmaLinux)

Предположим, для примера, что нам необходимо добавить в nginx модуль http_mp4_module. Вывод команды nginx -V покажет нам, что nginx собран без него.

Сохраним вывод команды nginx -V в какой-нибудь текстовый редактор — эта информация нам пригодится при конфигурировании. Видим, что версия nginx у нас установлена 1.18.0 — скачиваем такую же версию:

Распакуем архив и перейдём в папку nginx-1.18.0:

Далее для сборки нам потребуется установить в систему дополнительные пакеты.

Для Debian/Ubuntu выполняем:

После предложения продолжить установку — Do you want to continue? [Y/n] — нажимаем Y .

Для CentOS/AlmaLinux выполняем:

После предложения продолжить установку — Is this ok [y/d/N] — нажимаем y .

После установки пакетов приступаем к конфигурированию nginx с добавлением модуля http_mp4_module.

Для этого копируем из текстового редактора вывод команды nginx -V , начиная с —prefix= и до первого —add-module= (все присутствующие в выводе —add_module= нам не нужны). После чего пишем в консоли ./configure и вставляем скопированное из редактора. В нашем случае есть вывод:

поэтому просто копируем все, кроме этой строки.

В конец строки добавляем —with-http_mp4_module чтобы получилось так:

Нажимаем Enter и ждём окончания процесса.

В процессе конфигурирования возможно будут появляться ошибки. Способы их устранения описаны ниже.

Для Debian/Ubuntu исправляется установкой libpcre++-dev:

Для CentOS/AlmaLinux исправляется установкой pcre-devel:

Источник

How to compile dynamic modules for NGINX (HTTP Redis as an example)

Connecting additional modules to NGINX is not the most trivial thing for web developers. Consider this task in the example build NGINX with the HTTP Redis module (ngx_http_redis).

Previously, to connect modules to NGINX, it was necessary to fully compile both the web server and the required modules, but starting from version 1.9.11, you don’t have to do that. Just use the make modules command, but you need to correctly configure the entire NGINX build.

So, first you need to know which version of NGINX is installed. If less than 1.9.11, then read Installing the latest NGINX.

Download and unpack to the home directory the same version of NGINX (in our case 1.13.5):

Download and unpack HTTP Redis module:

So, we should have:

1. Installed and running NGINX> = 1.9.11

2. NGINX distribution of the same version as in clause 1

3. Downloaded HTTP Redis module

Now we can compile the module and connect it in the nginx.conf file with the command load_module my_module.so.

We need to know the current NGINX build configuration (remember result of this command):

Go to the directory where you unpacked the downloaded NGINX:

Preparing for the build. It takes place in two stages: «configure» and «make«.

Configure

You need to run the ./configure command with the options that were shown in nginx -V. In my case (Ubuntu 16, nginx 1.13.5) it looks like:

At the end, the path to the dynamic module is added, which needs to be compiled (we are in the

/nginx-1.13.5 directory). Don’t forget to add it:

Press Enter. If you are lucky and there are no errors in the output, great!

Next, make a module:

If there are no errors, you will have a file:

nginx-1.13.5/objs/ngx_http_redis_module.so

To connect this module to NGINX, you need to add a line with load_module to the /etc/nginx/nginx file.conf. To the top. Specify the full path to the file:

If there is no error message, then everything is worked! You can copy the ngx_http_redis_module.so file to a more suitable place. And do not forget to change the path to it in nginx.conf.

NGINX update

The module is tied to a specific version of NGINX, if we update it, then most likely it will stop working. So you need the NGINX package to put on hold — block package from updates:

Issues and problems

«Configure» issues

1. The build configuration fails, the ./configure command returns an error (you cannot run make modules after this).

Errors like this:

In this example, if we change the configuration (to pass ./configure) and put —without-http_gzip_module, most likely, at the connection stage, the module will not work with nginx (see below).

In the process, there may be different requirements for libraries that are needed for the NGINX build (or not).These packages may need to be installed (or may already be installed):

1. «./configure: error: C compiler cc is not found»

4. HTTP XSLT module requires the libxml2/libxslt

5. «. the HTTP image filter module requires the GD library»

7. PAM authentication module

Connectivity issues

When the module was compiled but the connection to NGINX is not working:

— Module module-name.so was compiled, but when you restart NGINX, a message is displayed that the version is not correct. In this case it’s necessary to double-check and download the appropriate version.

— «is not binary compatible» an error like this:

This means that the module build is configured incorrectly. You need to deal with ./configure options: incorrectly copied, not all dependencies installed and so on.

Источник

Русские Блоги

Ubuntu Nginx ./configure: error: the HTTP gzip module requires the zlib library. You can either.

NGINX действительно прост в использовании системы Ubuntu (UBLENMAP), первая проблема PCRE довольно хорошо решена, но сайт Zlib не знает, где скачать:


Установить zlib

wget http://www.zlib.net/zlib-1.2.11.tar.gz (Я не обновил 3 года, по оценкам, это окончательная версия.Официальный сайт)

Декомпрессия

Введите монтаж сборник папок

Затем скомпилировать снова nginx Возьми это
demo

Интеллектуальная рекомендация

IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS

Используйте iview, чтобы сделать небольшой инструмент. Чтобы не затронуть другие платформы, загрузите JS и CSS CDN на локальные ссылки. В результате значок шрифта не может быть загружен. Просмо.

Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis

1 Обзор Серверная программа, которая обычно запускалась раньше, открылась сегодня, и неожиданно появилась эта ошибка. Интуитивно понятно, что не хватает связанных с Spring пакетов, но после удаления п.

1086 Не скажу (15 баллов)

При выполнении домашнего задания друг, сидящий рядом с ним, спросил вас: «Сколько будет пять умножить на семь?» Вы должны вежливо улыбнуться и сказать ему: «Пятьдесят три». Это.

Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных

В конкурсе Algorith Algorith Algorith Algorith Algorith 2019 года используется многофункциональная уборка номера ускорения. Будет использовать панды. Но сама панда, кажется, не имеет механизма для мно.

PureMVC Learning (Tucao) Примечания

Справочная статья:Введение подробного PrueMVC Использованная литература:Дело UnityPureMvc Основная цель этой статьи состоит в том, чтобы организовать соответствующие ресурсы о PureMVC. Что касается Pu.

Источник

Install and compile nginx 1.14 on Ubuntu 18.04 LTS server

This post will help you to install and compile nginx 1.14 on Ubuntu 18.04 LTS server. We always recommend to our readers that whenever you use any ubuntu server always go for latest LTS edition.

When you install nginx by compiling from source package, it gives you one major benefit and that is adding extra module after installation. When you install by using package manager tool like yum,apt, dnf etc., you will get blocker when you need to install additional module in nginx. Yes! package manager provides easy control on package and it is faster too.

Disclaimer: We are installing Nginx on DigitalOcean droplet(server)

Install and compile Nginx 1.14

Follow the given below steps to install Nginx from source package on Ubuntu 18.04 LTS .

Login as root/super user

Login to server as root. In case, you are login as non-root user then you have to switch to super user (It need sudeors access).

To become super user from non-root user, here is the command.

You can either use sudo with all command which you run and requires super user access.

Create Nginx system user

Run the given below command for creating new nginx system user. This user will be used for installing the nginx.

Install dependency packages

Install all the dependencies. These all packages are listed because we will add related modules. In other words you can also say that these dependencies are related to some Nginx module.

Download and install nginx 1.14

In this section, we will read how to install and compile nginx 1.14 .
Always remember that with every new nginx release some changes are introduced and hence it might also reflect on list of modules which will be added during compilation.

Download Nginx Source package

Always download and install stable and latest nginx source release. This is case with all types o package in all Operating system. It keeps your system less vulnerable to any attack/malicious activity.

At the time of writing this post, the Nginx stable version is 1.14. Hence we are downloading the same.

Decompress the downloaded Nginx source package

When you download the nginx stable release package,it has extension of tar.gz . It means it is compress tar ball file and need to decompress first. In other technical term you can say untar the package.

Compiling/Installing from Nginx source files

After decompress the package tar ball, the directory called ‘nginx-1.14.0’ will be extracted out. Now change directory to nginx-1.14.0 and start compiling the source files.

Make and install.

The installation is completed and you will get the ‘Configuration summary’ like this at trailing end of output.

Configuration summary output (These are not commands)
nginx 1.14 ubuntu 18.04

Create systemd service script file for nginx

To start,stop,restart and checking status of nginx service you can create systemd service script.

Use your favourite file editor, our is vi/vim .

Write/paste the given below contents in file /lib/systemd/system/nginx.service . Save and exit from file editor.

After creating the nginx service file, you should reload the systemd manager configuration.

To start nginx service

To stop nginx service

To restart nginx service

To check status of nginx service

To enable nginx service to run at booting time

To disable nginx service, not to run at booting time

Check and confirm Nginx defualt port and webpage

Start the nginx service as given in above section. Then follow the given below steps.

(A) Check default listening port (port number 80 or http)
Run given below command to check nginx default listening port.
ss -tanlp|grep 80

Output: You can see port number 80 listening for ALL and nginx pid number also.

(B) Check default Nginx web page

From your laptop/Desktop , open the web browser eg.Google Chrome or Firefox . Type the ip address of Nginx server in web browser’s URL field.

Note:To get the ip address of your system , use the command ip addr list

Why we install dependencies package before compiling nginx source code

This section is for additional good read. There are reasons why we have installed particular dependencies packages. So we are sharing the information about the dependency package name and its related error during nginx compilation.

2 responses to “Install and compile nginx 1.14 on Ubuntu 18.04 LTS server”

Hi, i follow the step as you show and on the last step when I run the sudo make install and keeping getting the following error message, may I know what I did wrong? or how to solve the following error?

Источник

Русские Блоги

【nginx】./configure: error: the HTTP gzip module requires the zlib library. You can either

В NGINX мы будем выполнять ошибку «./Configure». Модуль HTTP GZIP требует, чтобы библиотека ZLIB означает, что не содержит библиотеку ZLIB, не поддерживает эту проблему.

Если он не указан, опубликован в «Jiaozn Blog» статьи «[NGINX] ./ Настройка: Ошибка: Модуль HTTP GZIP требует библиотеки Zlib. Вы можете либо« авторские праваJiaoznвсе. Перепечатано, укажите источник «Эта статья перепечатана в« Jiaozn Blog »http://www.jiaozn.com/reed/174.html”

Интеллектуальная рекомендация

IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS

Используйте iview, чтобы сделать небольшой инструмент. Чтобы не затронуть другие платформы, загрузите JS и CSS CDN на локальные ссылки. В результате значок шрифта не может быть загружен. Просмо.

Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis

1 Обзор Серверная программа, которая обычно запускалась раньше, открылась сегодня, и неожиданно появилась эта ошибка. Интуитивно понятно, что не хватает связанных с Spring пакетов, но после удаления п.

1086 Не скажу (15 баллов)

При выполнении домашнего задания друг, сидящий рядом с ним, спросил вас: «Сколько будет пять умножить на семь?» Вы должны вежливо улыбнуться и сказать ему: «Пятьдесят три». Это.

Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных

В конкурсе Algorith Algorith Algorith Algorith Algorith 2019 года используется многофункциональная уборка номера ускорения. Будет использовать панды. Но сама панда, кажется, не имеет механизма для мно.

PureMVC Learning (Tucao) Примечания

Справочная статья:Введение подробного PrueMVC Использованная литература:Дело UnityPureMvc Основная цель этой статьи состоит в том, чтобы организовать соответствующие ресурсы о PureMVC. Что касается Pu.

Источник

Подключение дополнительных модулей к NGINX не самая тривиальная вещь для веб-разработчиков. Рассмотрим эту задачу на примере сборки NGINX с модулем HTTP Redis (ngx_http_redis).

Раньше, для подключения модулей к NGINX, нужно было полностью компилировать и веб-сервер и желаемые модули, но начиная с версии 1.9.11 можно этого не делать, а обойтись командой make modules, но для этого необходимо правильно сконфигурировать всю сборку NGINX.

Итак, сначала нужно узнать какая версия NGINX установлена. Если меньше 1.9.11, то читаем Установка последней версии NGINX. 

nginx -v

##
nginx version: nginx/1.13.5

Скачиваем и распаковываем в домашнюю директорию ту же самую версию NGINX (в нашем случае 1.13.5):

wget https://nginx.ru/download/nginx-1.13.5.tar.gz
tar -xzvf nginx-1.13.5.tar.gz

Скачиваем и распаковываем модуль HTTP Redis:

wget https://people.freebsd.org/~osa/ngx_http_redis-0.3.8.tar.gz
tar -xzvf ngx_http_redis-0.3.8.tar.gz

Итого, у нас должны быть:

1. Установленный и работающий NGINX >= 1.9.11

2. Скаченный дистрибутив NGINX той же версии, что в пункте 1

3. Скаченный дистрибутив модуля HTTP Redis

Теперь мы можем скомпилировать модуль и подключить его в файле nginx.conf командой load_module my_module.so.

Нужно узнать текущую конфигурацию билда NGINX, смотрим его командой:

nginx -V

Заходим в директорию, куда распаковался скаченный NGINX:

cd nginx-1.13.5/

Готовимся к билду. Он проходит в два этапа: «configure» и «make».

Configure

Нужно после команды ./configure поставить то, что показано у вас в команде nginx -V. В моём случае (Ubuntu 16, nginx 1.13.5) получается:

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' --add-dynamic-module=../ngx_http_redis-0.3.8

В конце добавлен путь к динамическому модулю, который нужно скомпилировать (мы находимся в директории nginx ~/nginx-1.13.5), не забудьте его добавить:

--add-dynamic-module=../ngx_http_redis-0.3.8

Нажимаем Enter. Если вам повезло и на выходе нет ошибок, отлично.

Make

Дальше создаём модуль командой:

make modules

Если опять нет ошибок, то вы получите файл:

nginx-1.13.5/objs/ngx_http_redis_module.so

Подключаем его к NGINX, для этого в /etc/nginx/nginx.conf добавляем в самый верх строку с load_module, указываем полный путь до файла:

sudo nano /etc/nginx/nginx.conf
 
## Load our module:
load_module /home/vagrant/nginx-1.13.5/objs/ngx_http_redis_module.so;

Перезагружаем:

sudo nginx -s reload

Если нет сообщения об ошибке, значит модуль подключился! Можно переписать ngx_http_redis_module.so в более подходящее место и не забыть изменить путь к нему в nginx.conf.

Обновление NGINX

Модуль привязан к конкретной версии NGINX, если мы её обновим, то, скорее всего, он перестанет работать. Поэтому нужно пакет NGINX поставить на холд — заблокировать от обновления:

## sudo apt-mark hold <package>
sudo apt-mark hold nginx

## Remove HOLD
# sudo apt-mark unhold <package-name>

## Check HOLD
#apt-mark showhold

Ошибки и проблемы

Проблемы «configure»

1. Не проходит конфигурация билда, команда ./configure возвращает ошибку (после этого нельзя запустить make modules)

Ошибки такого вида:

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

В данном примере, если мы изменим конфигурацию (чтобы проходил ./configure) и поставим —without-http_gzip_module, скорее всего, на этапе подключения модуль не подойдёт к nginx (см. ниже)

В процессе могут вылетать разные требования к библиотекам, которые нужны для билда nginx (или не вылетать). Эти пакеты может понадобиться установить самостоятельно (а могут уже стоять):

1. «./configure: error: C compiler cc is not found»

sudo apt-get install build-essential

2. PCRE

sudo apt-get install libpcre3
sudo apt-get install libpcre3-dev

3. OpenSSL

sudo apt-get install libssl-dev

4. HTTP XSLT module requires the libxml2/libxslt

sudo apt-get install libxml2
sudo apt-get install libxml2-dev
sudo apt-get install libxslt-dev

5. «…the HTTP image filter module requires the GD library»

sudo apt-get install libgd-dev

6. GeoIP

sudo apt-get install libgeoip-dev

7. PAM authentication module

sudo apt-get install libpam-dev

Проблемы подключения

Когда удалось скомпилировать модуль, но не работает подключение в NGINX:

— Модуль module-name.so компилируется, но при перезагрузке nginx пишет, что не та версия — перепроверить и скачать соответствующую версию.

— «is not binary compatible» ошибка примерно такая:

nginx: [emerg] module "/usr/share/nginx/modules/ngx_http_redis_module.so" is not binary compatible in /etc/nginx/nginx.conf:1

Это значит неправильно сконфигурирован билд модуля. Разбираемся с опциями ./configure: неправильно скопировали, не все зависимости установлены и так далее.

При установке nginx штатными средствами ОС в Linux (apt, aptitude, yum, dnf) нет возможности сконфигурировать его установку, чтобы добавить или убрать какие-либо модули и nginx устанавливается «как есть».

Что же делать, если нам необходимо добавить какой-либо модуль? Правильно, нужно пересобрать nginx вручную. О том, как это правильно сделать в Linux, рассказываем в статье.

Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS/AlmaLinux)

Предположим, для примера, что нам необходимо добавить в nginx модуль http_mp4_module. Вывод команды nginx -V покажет нам, что nginx собран без него.

nginx -V

Результат:

nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-lUTckl/nginx-1.18.0=. 
-fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time 
-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' 
--prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log 
--error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid 
--modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy 
--http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug 
--with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module 
--with-http_realip_module --with-http_auth_request_module --with-http_v2_module 
--with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module 
--with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic 
--with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic 
--with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module

Сохраним вывод команды nginx -V в какой-нибудь текстовый редактор — эта информация нам пригодится при конфигурировании. Видим, что версия nginx у нас установлена 1.18.0 — скачиваем такую же версию:

wget http://nginx.org/download/nginx-1.18.0.tar.gz

Распакуем архив и перейдём в папку nginx-1.18.0:

tar -xvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

Далее для сборки нам потребуется установить в систему дополнительные пакеты.

Для Debian/Ubuntu выполняем:

apt install build-essential 

После предложения продолжить установку — Do you want to continue? [Y/n] — нажимаем Y.

Для CentOS/AlmaLinux выполняем:

yum install gcc gcc-c++ kernel-devel
yum groupinstall 'Development Tools'

После предложения продолжить установку — Is this ok [y/d/N] — нажимаем y.

После установки пакетов приступаем к конфигурированию nginx с добавлением модуля http_mp4_module.

Для этого копируем из текстового редактора вывод команды nginx -V, начиная с —prefix= и до первого —add-module= (все присутствующие в выводе —add_module= нам не нужны). После чего пишем в консоли ./configure и вставляем скопированное из редактора. В нашем случае есть вывод:

--add-dynamic-module=/build/nginx-d8gVax/nginx-1.18.0/debian/modules/http-geoip2

поэтому просто копируем все, кроме этой строки.

В конец строки добавляем —with-http_mp4_module чтобы получилось так:

./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules 
--http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit 
--with-http_ssl_module --with-http_stub_status_module --with-http_realip_module 
--with-http_auth_request_module --with-http_v2_module --with-http_dav_module 
--with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module 
--with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module 
--with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module 
--with-mail=dynamic --with-mail_ssl_module --with-http_mp4_module

Нажимаем Enter и ждём окончания процесса.

В процессе конфигурирования возможно будут появляться ошибки. Способы их устранения описаны ниже.

Ошибка:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

Для Debian/Ubuntu исправляется установкой libpcre++-dev:

apt install libpcre++-dev

Для CentOS/AlmaLinux исправляется установкой pcre-devel:

yum install pcre-devel

Ошибка:

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

Для Debian/Ubuntu:

apt install libssl-dev

Для CentOS/AlmaLinux:

yum install openssl-devel 

Ошибка:

./configure: error: the GeoIP module requires the GeoIP library.
You can either do not enable the module or install the library.

Для Debian/Ubuntu:

apt install libgeoip-dev

Для CentOS/AlmaLinux:

yum install GeoIP-devel

Ошибка:

./configure: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.

Для Debian/Ubuntu:

apt install libxslt1-dev

Для CentOS/AlmaLinux:

yum install libxslt-devel

Ошибка:

./configure: error: the HTTP gzip module requires the zlib library
You can either do not enable the module or install the libraries.

Для Debian/Ubuntu:

apt install zlib1g-dev

Для CentOS/AlmaLinux:

yum install zlib-devel

Ошибка:

./configure: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.

Для Debian/Ubuntu:

apt install libgd-dev

Для CentOS/AlmaLinux:

yum install gd gd-devel

Каждый раз после apt install или yum install недостающего пакета запускаем заново.

./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules 
--http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-compat --with-debug --with-pcre-jit 
--with-http_ssl_module --with-http_stub_status_module --with-http_realip_module 
--with-http_auth_request_module --with-http_v2_module --with-http_dav_module 
--with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module 
--with-http_gzip_static_module --with-http_sub_module --with-http_mp4_module

После успешного окончания конфигурирования увидим на экране что-то вроде:

Configuration summary
  + using threads
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

  nginx path prefix: "/usr/share/nginx"
  nginx binary file: "/usr/share/nginx/sbin/nginx"
  nginx modules path: "/usr/lib/nginx/modules"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/run/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/lib/nginx/body"
  nginx http proxy temporary files: "/var/lib/nginx/proxy"
  nginx http fastcgi temporary files: "/var/lib/nginx/fastcgi"
  nginx http uwsgi temporary files: "/var/lib/nginx/uwsgi"
  nginx http scgi temporary files: "/var/lib/nginx/scgi"

Теперь можно собрать бинарник nginx — выполняем 2 команды:

make
make install

По окончании сборки проверяем, что nginx собрался с нужным нам модулем:

/usr/share/nginx/sbin/nginx -V

Результат:

nginx version: nginx/1.18.0
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules 
--http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit 
--with-http_ssl_module --with-http_stub_status_module --with-http_realip_module 
--with-http_auth_request_module --with-http_v2_module --with-http_dav_module 
--with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module 
--with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module 
--with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module 
--with-mail=dynamic --with-mail_ssl_module --with-http_mp4_module

Как видим, --with-http_mp4_module в выводе команды присутствует — всё получилось. Осталось заменить текущий бинарник nginx новым, который мы только что собрали.

Останавливаем nginx:

systemctl stop nginx

Переименовываем (на всякий случай) текущий nginx в nginx_back:

mv /usr/sbin/nginx /usr/sbin/nginx_back

Перемещаем на его место новый собраный бинарник:

mv /usr/share/nginx/sbin/nginx /usr/sbin/nginx

Удаляем ненужную больше папку /etc/nginx/sbin:

rm -Rf /usr/share/nginx/sbin

Проверяем ещё раз, что nginx у нас теперь тот, что нужно:

nginx -V

Результат:

nginx version: nginx/1.18.0
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules 
--http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit 
--with-http_ssl_module --with-http_stub_status_module --with-http_realip_module 
--with-http_auth_request_module --with-http_v2_module --with-http_dav_module 
--with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module 
--with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module 
--with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module 
--with-mail=dynamic --with-mail_ssl_module --with-http_mp4_module

Запускаем nginx:

systemctl start nginx

Удаляем ненужную больше папку и архив nginx-1.8.1:

cd ../
rm -Rf nginx-1.18.0/
rm -Rf nginx-1.18.0.tar.gz

В Nginx мы делаем./configure Подскажетerror: the HTTP gzip module requires the zlib libraryСмысл говорит нам неzlib libraryПоддержка этой проблемы мы можем просто установить эту библиотеку.

После загрузки, распаковать и введитеnginx

tar -zxf nginx-1.4.7.tar.gz
cd nginx-1.4.7

начинатьnginxмонтаж:

./configure
make
make install

Если./configureОбратно--with-http_gzip_static_module(Добавить кgzipМодуль сжатия) Подсказывает следующую ошибку:

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using –without-http_gzip_module
option, or install the zlib library into the system, or build the zlib 
library
statically from the source with nginx by using –with-zlib=<path> option.

Тогда нужно установитьzlib-develЯ SSH выполняет следующую команду:

Код копируется следующим образом

yum install -y zlib-devel

Затем выполнитьnginxКомпиляция. Указывает на проблему для решения.

Есть еще некоторые другие компоненты, такие как:

You need a C++ compiler for C++ support

недостатокc++Причина компилятора

yum install -y gcc gcc-c++

make[1]: *** [/usr/local/pcre/Makefile] Ошибка 127.PCRE Уставая ошибка

Укажите на исходный пакет, не составление пакета после установки, так

./configure –prefix=/export/lnmp/nginx-1.4.7 –with-pcre=../pcre-8.34

I am new to dockers/containers.

I am trying to run a fork with a fix I have put in for openSSL vulnerability of mup-frontend using the following command:

docker build ./

It compiles to a point then errors with

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

I am running a mac so installed zlib with brew. I have searched long and hard but cannot find much on this error.

Because of this error it also fails to build on automation in docker.io


The Dockerfile you reference at

https://github.com/meteorhacks/mup-frontend-server/blob/master/Dockerfile

starts with

FROM debian

so you will need to have such a line in your Dockerfile, before the place where you need zlib

RUN apt-get update && apt-get install -y zlib --no-install-recommends && rm -rf /var/lib/apt/lists/*

in one RUN, you update, install and clean

Понравилась статья? Поделить с друзьями:
  • Configure error sqlite3 library missing
  • Configsave ошибка формата потока
  • Config tool password error
  • Config tool is running now please close it and restart installing как исправить
  • Config status error something went wrong bootstrapping makefile fragments