尝试访问本地 LAMP 服务器上的 localhost 时出现 404 Not Found 错误

Posted

技术标签:

【中文标题】尝试访问本地 LAMP 服务器上的 localhost 时出现 404 Not Found 错误【英文标题】:404 Not Found Error when trying to access localhost on local LAMP server 【发布时间】:2011-05-02 21:09:41 【问题描述】:

我正在运行 Ubuntu。我的 Apache2 默认文件如下所示:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog $APACHE_LOG_DIR/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog $APACHE_LOG_DIR/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

我在 /var/www/ 中有一个名为 Index.php 的文件

<?
phpinfo();
?>

当我在浏览器中访问 http://localhost/ 时,我收到 404 Not Found 错误:

在此服务器上找不到请求的 URL /。 Apache/2.2.16 (Ubuntu) 服务器在 localhost 端口 80

我做错了什么?这在我第一次设置 LAMP 时确实有效,但现在无法正常工作。

【问题讨论】:

@Codemwnci 没有冒犯,但是如果 Apache 没有运行,他怎么能从 Apache 那里得到错误消息呢? 你确定没有2个apache同时运行吗?它可能会导致类似的问题。 我从来没有做过任何表明两个 Apache 同时运行的事情。就像我说的,当我第一次设置它时,它起作用了,然后发生的事情是我将 DocumentRoot 更改为另一个位置并将其更改回来,然后它开始不起作用。 【参考方案1】:

您是否安装并启用了 PHP 模块?因为,通常,它会在服务器签名中提到这一点,但你的却没有。这也可以解释为什么服务器无法识别 index.php 是您所说的 / 的意思。

试试

sudo a2enmod php5

【讨论】:

【参考方案2】:

使用 url localhost/info.php。 文件 info.php 必须包含 <?php phpinfo(); ?>

【讨论】:

【参考方案3】:

查看错误日志 (tail /var/log/apache2/error.log) 以找出 Apache 尝试查找的确切路径。

【讨论】:

【参考方案4】:

跟我的问题一模一样。

以下对我有用:

正如 Andreas Jansson 提到的,符号链接默认为:

sudo ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/default

并重新启动 apache2:

sudo /etc/init.d/apache2 restart

然后它就起作用了:

http://localhost/

【讨论】:

【参考方案5】:

查看 /etc/apache2/sites-enabled。看来我升级到 10.10 已经从该目录中清除了符号链接。尝试将默认符号链接到 /etc/apache2/sites-available/default

sudo ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/default

【讨论】:

你也重启了 apache? 好的,在我重新启动 Apache2 后,我进入了“/ 的索引”页面,在那里我可以看到目录。如何让它再次像以前一样默认为该目录中的 Index.php 页面? 最简单的方法,只需将 Index.php 重命名为 index.php 或者,您可以编辑/etc/apache2/mods-enabled/dir.conf,将Index.php添加到DirectoryIndex 谢谢!很棒的跟进工作。

以上是关于尝试访问本地 LAMP 服务器上的 localhost 时出现 404 Not Found 错误的主要内容,如果未能解决你的问题,请参考以下文章

(服务运维)NFS服务和共享存储LAMP架构

远程访问 Apache 服务器

LAMP环境下,mysql是一台单独的的机器只用来提供数据库服务。如何在web的机器设置数据库的访问路径?

如何从远程计算机(不是本地主机)访问 MySQL?

您无权访问此服务器上的 /phpMyAdmin

Forbidden 您无权访问此服务器上的 /phpmyadmin