Câu hỏi Làm thế nào để kiểm tra các mô-đun apache được kích hoạt / cài đặt?


Đó là cách thanh lịch nhất để kiểm tra các module apache được kích hoạt?


337
2018-05-17 19:55


gốc




Các câu trả lời:


Bạn đang dùng Ubuntu nên thử:

apache2ctl -M

414
2018-05-17 20:01



apache2ctl -M hoạt động tuyệt vời - udo
apache2 -M kết quả trong lỗi này apache2: bad user name ${APACHE_RUN_USER} - udo
Công bằng đủ - đó là do thực tế là bạn không chạy lệnh như apache thời gian chạy người dùng (có lẽ www-dữ liệu) được định nghĩa trong cấu hình apache. Có một cách để sửa lỗi này nhưng bạn cũng có thể dính vào apache2ctl. - Linker3000
sudo apache2ctl -M | sort - mmdemirbas
Lưu ý có nhiều tùy chọn hữu ích (cờ) để apache2ctl nhưng chúng không được liệt kê trong manpage cũng như apache2ctl --help. Đó là bởi vì họ được giao cho httpd. Chúng được liệt kê trong tài liệu httpd chỉ có. - Lutz Prechelt


httpd -M sẽ cho bạn biết mô-đun nào được tích hợp hoặc chia sẻ.


105
2018-05-17 19:56



hmm ... Tôi nhận được lệnh "bash: httpd: không tìm thấy" khi khởi chạy httpd -M dưới dạng root - udo
Vì vậy, sau đó chỉ định đường dẫn đầy đủ đến httpd thực thi. - Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams: Trên Ubuntu (và các bản phân phối dựa trên Debian khác), tên là apache2và không httpd, đó là lý do tại sao nó không được tìm thấy. - Daniel Andersson
Apache là httpd trên redhat. Hãy thử một trong các câu trả lời khác nếu câu trả lời này không phù hợp với bạn. - Jacks_Depression
CentOS cũng sử dụng httpd thay vì apache2 - pedromanoel


Không có câu trả lời nào ở trên hoạt động nếu bạn không thể chạy các lệnh trên máy chủ từ xa. Nếu bạn chỉ có đặc quyền "người dùng" hoặc không có đặc quyền nào, hãy thử tạo test.php kịch bản:

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

Mặc dù nó sẽ chỉ hoạt động nếu PHP được cài đặt mod_php.


35
2018-04-11 09:10



Ngoài ra, bạn sẽ không muốn điều này hiển thị công khai. Có thể muốn hạn chế kết quả đó với máy khách bằng IP của quản trị viên. Và bạn sẽ muốn xóa tập lệnh đó ngay khi bạn hoàn thành nó. Bởi vì quốc phòng trong chiều sâu; không làm cho nó dễ dàng hơn nó cần phải được. - Parthian Shot


Có thể điều này sẽ giúp ích cho một số người trên máy chủ dùng chung mà không có quyền truy cập vào httpd, apachectl hoặc quy trình:

Mô-đun đã bật: ls /etc/apache2/mods-enabled/

Các mô-đun có sẵn: ls /etc/apache2/mods-available/


19
2018-05-04 11:33



Dưới đây là danh sách đầy đủ, apache2ctl lọc chúng - jgpATs2w


Bạn cũng có thể dùng apachectl

apachectl -t -D DUMP_MODULES

17
2018-02-06 07:04





Tôi nghĩ có ba câu hỏi ở đây. Tôi không chắc bạn đang hỏi gì.

  • Bạn có những module nào trên đĩa. Tất cả các mô-đun bạn có thể sử dụng là gì.

Điều này sẽ là (thường) trong thư mục modules của phân phối apache của bạn, thường là / etc / httpd / modules /

  • Mô-đun nào là bất kỳ cá thể cụ thể nào được định cấu hình để chạy.

Điều này có thể được kiểm tra với / usr / sbin / httpd -M, ít nhất là cho apache hệ thống cơ bản. Nếu bạn muốn kiểm tra tệp cấu hình cụ thể / usr / sbin / httpd -M -f / path / đến / config / file

  • Có gì trong một apache đang chạy

Để có nhiều thông tin, bạn có thể xem thông tin bằng http: // machinename / server-info / Điều này không được định cấu hình theo mặc định, bạn phải cấu hình một chút thông tin bị rò rỉ, vì vậy hãy cấu hình nó để chỉ người dân địa phương mới có thể nhìn thấy nó.

Nếu bạn đang ở trên máy và bạn có quyền truy cập để trở thành người dùng đang chạy, bạn cũng có thể xem những gì được tải bằng cách kiểm tra quá trình. Bạn có thể tìm quy trình gốc với:

ps -ef | gawk '/httpd/ && $3 == 1{print $2}'

Sau đó kiểm tra

cat /proc/PID_FROM_ABOVE/maps

10
2018-05-17 20:57



Thông tin hữu ích nhưng vì OP đang sử dụng Ubuntu, tên tệp và vị trí khác nhau - ví dụ: / usr / sbin / apache2 thay vì httpd và ps -ef | gawk '/ apache2 / && $ 3 == 1 {print $ 2}' Vị trí của các mô đun được xử lý khác nhau, với các thư mục con có sẵn mod và sẵn có - Linker3000
Cảm ơn @ Linker3000 ... Bạn nói đúng, đây là dành cho RedHat / Centos, tôi sẽ để ý kiến ​​của bạn nổi bật về cách chuyển đổi sang Ubuntu - Rich Homolka


Nếu bạn đang sử dụng Redhat / CentOS, httpd được sử dụng thay cho apache2ctl.

Điều này có nghĩa là bạn cần phải sử dụng

httpd -M

Tuy nhiên, httpd gần như không bao giờ nằm ​​trong con đường bạn mong đợi.

Tôi có thể xác nhận trên CentOS 5.8 đường dẫn thực tế là /usr/sbin/httpd.

/usr/sbin/httpd -M

Nhưng nếu đó không phải là con đường, bạn có thể khám phá nó. Đây là cách tôi có thể làm như vậy.

Đầu tiên, tôi đã kiểm tra daemon đang được sử dụng để kiểm soát nó.

less /init.d/httpd

Xung quanh dòng 40

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd

Mà nói với tôi chính xác nơi để tìm thấy nó. Hi vọng điêu nay co ich.


10
2018-03-11 18:41