Làm cách nào để xác định xem Apache có được cài đặt trên hệ thống không?


28

Tôi có Linux Mint trên máy tính của mình nhưng tôi không biết làm thế nào để tìm hiểu xem Apache2 có ở trên đó hay nó được cài đặt thực sự ở đâu. Tôi chạy trình duyệt web của mình (đã cài đặt PHP) với http://localhosttư cách là một URL và nó hoạt động.


Bạn có ý nghĩa gì khi cài đặt PHP?
onemach

Làm thế nào mà liên quan đến c, c # hoặc unix?
ThiefMaster

Bạn muốn biết đường dẫn các tập tin từ trang web đó ở đâu?
Francisco Tapia

Câu trả lời:


43

Tôi muốn giới thiệu

dpkg --get-selections | grep apache

Nó liệt kê tất cả các gói được cài đặt có chứa "apache" trong tên của chúng. Ví dụ:

apache2                                         install
apache2-doc                                     install
apache2-mpm-prefork                             install
apache2-utils                                   install
apache2.2-bin                                   install
apache2.2-common                                install
libapache2-mod-php5                             install
libapache2-svn                                  install

Nó chỉ ra rằng gói apache2được cài đặt trên hệ thống.

Một cách tiếp cận khác, để tìm bất kỳ trình nền HTTP đang chạy nào trên cổng mặc định sẽ là:

sudo lsof -nPi | grep ":80 (LISTEN)"

Danh sách nào đó như:

apache2    1026     root    4u  IPv6    3739      0t0  TCP *:80 (LISTEN)
apache2    3966 www-data    4u  IPv6    3739      0t0  TCP *:80 (LISTEN)
apache2    4014 www-data    4u  IPv6    3739      0t0  TCP *:80 (LISTEN)
apache2    4015 www-data    4u  IPv6    3739      0t0  TCP *:80 (LISTEN)
apache2    4016 www-data    4u  IPv6    3739      0t0  TCP *:80 (LISTEN)

-bash: dpkg: command not foundở trên được thực hiện trong một thư mục nhất định?
elliotrock

@elliotrock Không, hãy thử chạy nó với sudo.
Der Hochstapler

-bash: dpkg: command not foundcùng một lỗi trên aws linux thậm chí đã thử với sudo.
PC của Krishnadas

1
Câu hỏi này là về Linux Mint. Sử dụng dpkg trên các nền tảng không có nó là vô nghĩa.
Der Hochstapler

12

Hãy thử whichlệnh:

# which apache2

Theo kinh nghiệm của tôi, nhị phân Apache nằm ở /usr/sbinhầu hết các cài đặt.


4
Tùy thuộc vào distro, bạn cũng có thể thử với 'apache' và 'httpd'
siliconrockstar

4

Để kiểm tra xem apache có chạy hay không (trạng thái), nhập:

sudo service apache2 status

tại dòng lệnh.


Điều này chỉ hoạt động khi Apache được cài đặt như một sysvdịch vụ ( vv); mà thừa nhận sẽ bao gồm rất nhiều trường hợp.
bertieb

3

Chỉ cần làm một which httpdngười dùng root.


2
Sợ phải nói, nhưng trên Mint (một dẫn xuất của Debian) thì nó sẽ apachehoặc apache2, nhưng không httpd...
0xC0000022L

3

Như tôi nhớ, Mint dựa trên Ubuntu, vì vậy bạn có thể kiểm tra apt-cache policy apache2:

$ apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.2.20-1ubuntu1.1
  Version table:
     2.2.20-1ubuntu1.1 0
        500 http://us.archive.ubuntu.com/ubuntu/ oneiric-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ oneiric-security/main amd64 Packages
     2.2.20-1ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ oneiric/main amd64 Packages

Trong trường hợp này, bạn có thể thấy nó không được cài đặt trên hệ thống của tôi. Nếu bạn chưa yêu cầu cài đặt nó, thì có lẽ là không - tôi nghi ngờ đây là một phần của bản phân phối mặc định.


0

Với quyền root, bạn có thể kiểm tra xem apache có chạy dưới tên tiến trình httpd, apache hoặc apache2 không, bằng cách sử dụng

ps -A | grep 'apache\|httpd'

Nhưng một lần nữa, điều này sẽ chỉ tìm thấy apache nếu quá trình đang chạy.


1
Nếu hoạt động ngay cả khi bạn không root.
Hastur

Thật tuyệt, không chắc chắn nếu người dùng không có đặc quyền có thể liệt kê các quy trình toàn cầu, cảm ơn.
siliconrockstar
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.