Cài đặt các mô-đun Nginx tùy chọn với apt-get


37

Tôi hiện đã cài đặt Nginx thông qua các hướng dẫn trên trang web Nginx:

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

Tôi đã cấu hình Nginx và nó đã chạy rất tốt trong một thời gian. Bây giờ, tôi muốn thêm một số mô-đun tùy chỉnh - giả sử, Mô-đun tiến trình tải lên . Các hướng dẫn cho mô-đun này nói để thêm --add-module=path/to/nginx_uploadprogress_modulevào ./configurelệnh của bạn . Tuy nhiên, tôi không cài đặt Nginx từ nguồn.

Cách tốt nhất để xử lý tình huống này là gì? Có thể yêu cầu APT biên dịch từ nguồn và chuyển các tùy chọn sang ./configure? Tôi có thể biên dịch qua cài đặt hiện có không? Thế còn đường dẫn - làm thế nào để tôi khớp chúng? Hoặc tôi phải xóa phiên bản được quản lý APT và bắt đầu lại?


Bạn đã tìm kiếm các mô-đun cần thiết bằng cách sử dụng apt-cache search?
Khaled

1
nginx solid, nó không hỗ trợ module động.
alvosu

Câu trả lời:


56

Cài đặt dpkg-dev:

sudo apt-get install dpkg-dev

Thêm kho lưu trữ:

sudo add-apt-repository ppa:nginx/stable

Chỉnh sửa /etc/apt/sources.list.d/nginx-stable-lucid.list, thêm dpkg-src:

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

lưu ý: (bước trước có thể đã được thực hiện tự động trên Ubuntu> = 12.04 - cũng đảm bảo rằng bạn thay đổi lucidđể phản ánh phiên bản của mình)

Đồng bộ hóa các tệp chỉ mục gói:

sudo apt-get update

Lấy nguồn:

apt-get source nginx

Xây dựng các phụ thuộc:

sudo apt-get build-dep nginx

Chỉnh sửa nginx-0.8.54 / debian / quy tắc:

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

Gói xây dựng:

cd nginx-0.8.54 && dpkg-buildpackage -b

Cài đặt gói:

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
Tuyệt vời, hướng dẫn chi tiết. Cuối cùng, trong khi sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing, tôi đang nhận nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.Tuy nhiên, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debđang cho đi 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. Làm thế nào bạn sẽ đề nghị giải quyết vấn đề này?
Michelle Tilley

Xóa gói nginx: apt-get remove nginx
alvosu

1
Xin chào alvosu, tôi đang gặp lỗi này: dpkg-buildpackage: error: debian / rule build đưa ra trạng thái thoát lỗi 2. Có ý kiến ​​gì không?
Xavi Colome

4
@BrandonTilley nếu bạn cài đặt theo cách này, bạn có thể gỡ cài đặt qua apt-get/ dpkgvà các gói khác mà bạn cài đặt qua apt-getsẽ biết rằng đã nginxđược cài đặt và sẽ không yêu cầu bạn cài đặt nó. Nếu bạn cài đặt nó trực tiếp từ nguồn, bạn sẽ không nhận được điều này.
Carlos Campderrós

2
Nếu bạn gặp lỗi như "dpkg-buildpackage: warning: Không thể đăng nhập tệp .dsc và .changes", hãy sử dụng dpkg-buildpackage -uc -usthay vì dpkg-buildpackage -b. Nếu không, các tệp .deb sẽ không được tạo.
Roman Newaza


1

Cài đặt Nginx từ nguồn là cần thiết nếu bạn muốn thêm / (mô-đun bên thứ ba) vào nó. Nếu được cài đặt qua nguồn, Nginx không thể được sử dụng như một dịch vụ và logrotate không được thiết lập cho Nginx. Thực hiện theo phương pháp này để cài đặt nó với tất cả các chức năng mà bạn nhận được từ cài đặt quaapt-get


0

Bài viết ngọt ngào có thể được đọc ở đây sẽ giải thích thông tin chi tiết về việc biên dịch các mô-đun thành nginx. Về cơ bản, bạn cần biên dịch lại nginx mỗi lần bạn muốn cài đặt một mô-đun.

Cũng tương tự như phương pháp này cũng sẽ làm việc.

 wget 'http://nginx.org/doad/nginx-1.9.3.tar.gz'
 tar -xzvf nginx-1.9.3.tar.gz
 cd nginx-1.9.3 /

 # Ở đây chúng tôi giả sử bạn sẽ cài đặt cho bạn nginx dưới / opt / nginx /.
 ./có hình --prefix = / opt / nginx \
     --add-module = / path / to / headers-more-nginx-module
 chế tạo
 cài đặt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.