Thay đổi phiên bản Apache mặc định trên MacOS Sierra


4

Một cuộc quét mạng của DHS cho thấy một trong những nhà nghiên cứu Mac đang chạy phiên bản Apache không an toàn (2.4.25) và họ muốn anh ta cập nhật lên ít nhất 2.4.27.

Anh ta gặp khó khăn khi đưa MacOS sử dụng phiên bản Apache mới thay vì phiên bản được cài đặt mặc định với Sierra. Vấn đề của anh ấy là:

Mac OS X 10.12.6 Sierra

  1. Tôi đã cài đặt httpd 2.4.27. . . / usr / địa phương / apache2 / bin /

  2. nhưng httpd chạy mặc định được đặt tại / usr / sbin /

  3. Tôi không thể cài đặt httpd mới vào / usr / sbin / - không có quyền ghi cho sudo

  4. Tôi đã tạo một người dùng root hoạt động - nhưng "root" không có quyền ghi cho / usr / sbin / hoặc

Tôi không thể tìm thấy bất kỳ nguồn nào trên web mô tả cách thay đổi đường dẫn httpd từ phiên bản hệ thống mặc định (/ usr / sbin / httpd) sang phiên bản cài đặt USER mới, như / usr / local / apache2 / bin / httpd

Tôi đang thiếu những bước nào?

Câu trả lời:


1

Để sử dụng phiên bản Apache mới, bạn cần tắt phiên bản Apache tích hợp:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Bạn cần quyền truy cập root (ví dụ người dùng quản trị viên và mật khẩu) để vô hiệu hóa điều này. Sau đó, bạn có thể chạy apache của riêng bạn - bất kỳ nguồn và vị trí và phiên bản nào bạn muốn. Điều này tốt hơn so với việc thay thế phiên bản giao hàng vì mỗi bản cập nhật macOS có thể và sẽ thay đổi bản dựng trong phiên bản. Tải bên cạnh nguồn apache ưa thích của bạn đảm bảo nó sẽ tồn tại bên ngoài quá trình cập nhật của Apple. Mặt trái duy nhất là bạn phải vá và bảo mật phiên bản được tải bên này.

Một cách tuyệt vời để tải một phiên bản apache https mạnh mẽ và dễ vá là với https://brew.sh quản lý gói homebrew.

$ brew info httpd
httpd: ổn định 2.4.37 (đóng chai) Máy chủ HTTP Apache
https://httpd.apache.org/
Chưa cài đặt
Từ: https://github.com/Homebrew/homebrew-core/blob/master/Formula/httpd.rb
== & gt; Yêu cầu phụ thuộc: apr, apr-produc, brotli ✘, nghttp2, openssl ✔, pcre.
== & gt; Caveats DocumentRoot là / usr / local / var / www.

Các cổng mặc định đã được đặt trong /usr/local/etc/httpd/httpd.conf thành   8080 và trong /usr/local/etc/httpd/extra/httpd-ssl.conf đến 8443 sao cho   httpd có thể chạy mà không cần sudo.

Để có launchd bắt đầu httpd ngay bây giờ và khởi động lại khi đăng nhập:
brew services start httpd
Hoặc, nếu bạn không muốn / cần một dịch vụ nền, bạn có thể   chỉ cần chạy:
apachectl start

Lợi ích khác là bạn có thể sử dụng brew services để thiết lập daemon để khởi chạy khi khởi động và nó sẽ hồi sinh mà bạn không cần phải tạo tập lệnh launchd / launchctl của riêng bạn hoặc sử dụng crontab hoặc tương đương.

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.