Ubuntu

無法讓 Apache2 工作

  • March 26, 2011

我以前安裝過 Apache2,現在當我再次嘗試執行它時,它沒有。

我的 Apache2 設置是:

jatin@jatin-ubuntu:/var/run$ apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:17:19
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Prefork
 threaded:     no
   forked:     yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

當我這樣做時,會出現以下錯誤:

jatin@jatin-ubuntu:/var/run$ httpd status
No command 'httpd' found, did you mean:
Command 'dhttpd' from package 'dhttpd' (universe)
Command 'xttpd' from package 'xtide' (universe)
Command 'thttpd' from package 'thttpd' (universe)
httpd: command not found

我的/etc/apache2/ports.conf樣子:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

#NameVirtualHost *:80
Listen 80

#<IfModule mod_ssl.c>
   # If you add NameVirtualHost *:443 here, you will also have to change
   # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
   # to <VirtualHost *:443>
   # Server Name Indication for SSL named virtual hosts is currently not
   # supported by MSIE on Windows XP.
#    Listen 443
#</IfModule>

#<IfModule mod_gnutls.c>
#    Listen 443
#</IfModule>

我的sites-available目錄有這兩個文件:

jatin@jatin-ubuntu:/etc/apache2$ cd sites-available/
jatin@jatin-ubuntu:/etc/apache2/sites-available$ ls
default  default-ssl

當我查看sites-enabled目錄時,它什麼都沒有:

jatin@jatin-ubuntu:/etc/apache2/sites-available$ cd ../sites-enabled/
jatin@jatin-ubuntu:/etc/apache2/sites-enabled$ ls

我的 /var/log/apache2/error.log 文件顯示了這一點:

[Sat Mar 26 17:54:08 2011] [error] [client 127.0.0.1] File does not exist: /htdocs
[Sat Mar 26 17:54:15 2011] [error] [client 127.0.0.1] File does not exist: /htdocs
[Sat Mar 26 17:54:23 2011] [notice] caught SIGTERM, shutting down
[Sat Mar 26 17:54:26 2011] [notice] Apache/2.2.14 (Ubuntu) DAV/2 SVN/1.6.6 configured -- resuming normal operations

我在網上讀到,這與未正確設置伺服器根目錄有關,因此它會查找 /htdocs 文件夾。

問題:

  1. 為什麼httpd status什麼都不顯示??
  2. ports.conf文件中的所有內容都正確嗎?我只有一行未註釋Listen
  3. 在啟用站點的目錄中不應該有預設的符號連結嗎???
  4. 當我做sudo /etc/init.d/apache2 restart/stop/start一切工作正常,但當我打開http://localhost/http://localhost:80/或時什麼都沒有出現http://localhost:8080/???
  5. 伺服器根是什麼東西,我設置正確了嗎?
  • 為什麼 httpd 狀態不顯示任何內容?

因為你沒有httpd安裝。也許你的意思是/etc/init.d/httpd status?Ubuntu 系統上的等效命令是/etc/init.d/apache2 status.

  • 我的 ports.conf 文件中的所有內容都正確嗎?

如果您只打算執行一個站點,那麼應該沒問題。如果您想讓更多站點作為虛擬主機執行,您也需要取消註釋該NameVirtualHost行。

  • 在啟用站點的目錄中不應該有預設的符號連結嗎?

它們是在您使用a2ensite命令啟用站點時創建的,例如

a2ensite default

將通過創建連結啟用預設網站。

  • 當我做sudo /etc/init.d/apache2 restart/stop/start一切工作正常…

查看您問題中的錯誤消息,它們表明您什麼也沒看到。您將看到 404 Not Found 錯誤消息。這是因為您沒有啟用任何站點。

  • 伺服器根是什麼東西,我是否設置正確

我懷疑您的意思是DocumentRoot,如果沒有配置 DocumentRoot ,則 Apache 預設為 /htdocs。使用上面的命令啟用一個站點,看看會發生什麼。您應該會收到一條消息,例如“ It Works …”

引用自:https://serverfault.com/questions/252170