无法使 Apache2 运行

无法使 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 文件夹。

问题:

  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. 服务器根目录是什么东西?我是否已正确设置它?

答案1

  • 为什么 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,Apache 默认为 /htdocs。使用上面的命令启用站点并查看会发生什么。您应该收到一条消息,内容如下“有用“……”

答案2

我记得前一段时间有一项服务抱怨说“嘿,这在将来不会起作用 - 您应该使用服务停止/启动/重新启动”
我以为是 apache,但是当我运行:

sudo /etc/init.d/apache2 restart

今天它没有给出警告信息,但我认为你也可以这样做

sudo service apache2 restart

我将检查 /etc/apache2/sites-available/default 并确保文档根目录设置为:

DocumentRoot /var/www

您是使用 taskel 安装 Apache 还是在安装过程中安装的?

相关内容