Ubuntu
無法讓 Apache2 工作
我以前安裝過 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 文件夾。
問題:
- 為什麼
httpd status
什麼都不顯示??- 我
ports.conf
文件中的所有內容都正確嗎?我只有一行未註釋Listen
。- 在啟用站點的目錄中不應該有預設的符號連結嗎???
- 當我做
sudo /etc/init.d/apache2 restart/stop/start
一切工作正常,但當我打開http://localhost/
或http://localhost:80/
或時什麼都沒有出現http://localhost:8080/
???- 伺服器根是什麼東西,我設置正確了嗎?
- 為什麼 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 …”