Встановлення додаткових модулів Nginx з apt-get


37

На даний момент у мене встановлено Nginx за допомогою інструкцій на сайті Nginx:

nginx=stable
sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install

Я налаштував Nginx, і він працює трохи чудово. Тепер я хочу додати кілька спеціальних модулів - скажімо, модуль прогресу завантаження . Вказівки цього модуля говорять про додавання --add-module=path/to/nginx_uploadprogress_moduleдо вашої ./configureкоманди. Однак я не встановив Nginx з джерела.

Який найкращий спосіб вирішити цю ситуацію? Чи можна сказати APT компілювати з джерела та передати параметри до ./configure? Чи можу я компілювати існуючу установку? Як щодо шляхів - як я змушую їх відповідати? Або мені потрібно видалити керовану версію APT і почати спочатку?


Ви шукали потрібний модуль, використовуючи apt-cache search?
Халед

1
nginx solid, він не підтримує динамічний модуль.
alvosu

Відповіді:


56

Встановіть dpkg-dev:

sudo apt-get install dpkg-dev

Додати сховище:

sudo add-apt-repository ppa:nginx/stable

Редагуйте /etc/apt/sources.list.d/nginx-stable-lucid.list, додайте dpkg-src:

deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu lucid main

Примітка: (попередній крок, можливо, вже був виконаний автоматично на Ubuntu> = 12.04 - також переконайтеся, що ви змінилися, lucidщоб відобразити вашу версію)

Повторно синхронізуйте файли індексу пакета:

sudo apt-get update

Отримати джерела:

apt-get source nginx

Побудувати залежності:

sudo apt-get build-dep nginx

Редагувати nginx-0.8.54 / debian / правила:

config.status.full: config.env.full config.sub config.guess
...
--add-module=path/to/nginx_uploadprogress_module

Пакет складання:

cd nginx-0.8.54 && dpkg-buildpackage -b

Встановити пакети:

sudo dpkg --install nginx-common_1.2.4-2ubuntu0ppa1~precise_all.deb

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb

1
Чудові, докладні інструкції. Врешті-решт, під час sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing, я отримую nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.Однак sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debдаю dpkg: error processing nginx-common_0.8.54-4ppa4~lucid_all.deb (--install): trying to overwrite '/usr/share/nginx/www/50x.html', which is also in package nginx 0:0.8.54-4ppa2~lucid. Як би Ви порадили вирішити це питання?
Мішель Тіллі

Видалити пакет nginx: apt-get remove nginx
alvosu

1
Привіт alvosu, я отримую цю помилку: dpkg-buildpackage: error: debian / build build дав помилку виходу з статусу 2. Будь-яка ідея?
Коламер Хаві

4
@BrandonTilley, якщо ви встановите його таким чином, ви можете видалити його через apt-get/ dpkg, а також інші пакунки, які ви встановите через, apt-getбуде знати, що nginxвстановлено, і не попросить вас його встановити. Якщо ви встановили його безпосередньо з джерела, ви цього не отримаєте.
Карлос Кампдеррос

2
Якщо у вас є помилка на зразок цього "dpkg-buildpackage: попередження: Не вдалося підписати .dsc та .changes файл", використовуйте dpkg-buildpackage -uc -usзамість dpkg-buildpackage -b. В іншому випадку файли .deb не будуть створені.
Роман Ньюаза


1

Установка Nginx з джерела необхідна, якщо ви хочете до неї додати додатковий / (сторонній модуль). Якщо встановлено через джерело, Nginx не може використовуватися як сервіс, а logrotate не встановлює налаштування для Nginx. Дотримуйтесь цього методу, щоб встановити його з усіма функціями, які ви отримуєте від встановлення черезapt-get


0

Солодка стаття, яку можна прочитати тут , пояснить детальну інформацію про компіляцію модулів у nginx. По суті, вам потрібно перекомпілювати nginx кожного разу, коли ви хочете встановити модуль.

Також подібний метод також буде працювати.

 wget 'http://nginx.org/download/nginx-1.9.3.tar.gz'
 тар -xzvf nginx-1.9.3.tar.gz
 cd nginx-1.9.3 /

 # Тут ми припускаємо, що ви встановили б nginx під / opt / nginx /.
 ./configure --prefix = / opt / nginx \
     --add-module = / шлях / до / headers-more-nginx-модуль
 зробити
 зробити встановлення
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.