Содержание
- Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS/AlmaLinux)
- Добавление модулей nginx в Linux (Debian/Ubuntu/CentOS /AlmaLinux)
- How to compile dynamic modules for NGINX (HTTP Redis as an example)
- Configure
- NGINX update
- Issues and problems
- «Configure» issues
- Connectivity issues
- Русские Блоги
- Ubuntu Nginx ./configure: error: the HTTP gzip module requires the zlib library. You can either.
- Интеллектуальная рекомендация
- IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS
- Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis
- 1086 Не скажу (15 баллов)
- Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных
- PureMVC Learning (Tucao) Примечания
- Install and compile nginx 1.14 on Ubuntu 18.04 LTS server
- Install and compile Nginx 1.14
- Login as root/super user
- Create Nginx system user
- Install dependency packages
- Download and install nginx 1.14
- Download Nginx Source package
- Decompress the downloaded Nginx source package
- Compiling/Installing from Nginx source files
- Create systemd service script file for nginx
- Check and confirm Nginx defualt port and webpage
- Why we install dependencies package before compiling nginx source code
- Do’nt be greedy, share the knowledge!
- Related
- Comments
- 2 responses to “Install and compile nginx 1.14 on Ubuntu 18.04 LTS server”
- Русские Блоги
- 【nginx】./configure: error: the HTTP gzip module requires the zlib library. You can either
- Интеллектуальная рекомендация
- IView CDN Загрузка значка шрифта нормальная, а значок шрифта не может быть загружен при локальной загрузке JS и CSS
- Критическое: ошибка настройки прослушивателя приложения класса org.springframework.web.context.ContextLoaderLis
- 1086 Не скажу (15 баллов)
- Pandas применяют параллельный процесс приложения, многоядерная скорость очистки данных
- 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