【问题标题】:404 Page Not Found when run Codeigniter project inside var/www/html/ on Ubuntu 16.04 LTS?在 Ubuntu 16.04 LTS 上的 var/www/html/ 中运行 Codeigniter 项目时找不到 404 页面?
【发布时间】:2017-10-28 00:03:14
【问题描述】:

我已经安装了 LAMP(Linux、Apache2、MySQL 和 PHP)堆栈。

我有一个名为“mahasiswa”的项目目录。当我在 Windows 8 上运行它时运行良好(使用 XAMPP)。然后,当我在 var/www/html/ 内的 Ubuntu 16.04 LTS 上运行它时,它不再工作了。

结果截图:

在 Ubuntu 16.04 LTS 上运行 CodeIgniter 项目是否有特殊配置?

:: 任何帮助将不胜感激。谢谢。


编辑

我的配置文件:

  1. etc/apache2/sites-available/000-default.conf

  1. etc/apache2/sites-available/mahasiswa.conf

  1. 等/主机

  1. mahasiswa/.htaccess

浏览器上的当前结果:

我不确切知道我在此配置中缺少什么。我已按照下面的@eeya 说明/答案进行操作。任何人都可以帮助我,请:D

【问题讨论】:

  • 您是否在此目录上设置了virtual host configuration(例如 mahasiswa.conf)? [/etc/apache2/sites-available]
  • 索引/主页的名称是什么?如果不是 index.htm 或 index.html 或 index.php,您可能需要配置 Apache。还要记住,在 Linux 中文件是区分大小写的,而在 Windows 中则不是。
  • @eeya 还没有.. 如何设置它,它有什么用?
  • 如果您希望多个项目具有不同的[配置](例如项目的位置/服务器名称/服务器别名/等),则设置 apache 的 virtual host 是可选的。在这种情况下,我认为您现在可能不需要它。

标签: php mysql codeigniter ubuntu-16.04 lamp


【解决方案1】:

关于设置apache 虚拟主机配置的问题:这是怎么回事。如果您有 [root] 权限,请打开您的 [Terminal] 并转到此目录:/etc/apache2/sites-available

然后创建一个新的虚拟主机配置,现在,我们将这个配置命名为你的项目的名称。

sudo vim mahasiswa.confsudo nano mahasiswa.conf

<VirtualHost *:80>
    ServerName local.mahasiswa.com 
    DocumentRoot /var/www/html/mahasiswa
    <Directory /var/www/html/mahasiswa/>
        AllowOverride All
        Require all granted
        Allow from all
    </Directory>
</VirtualHost>

1) ServerName:用作 DNS(将其视为除 http://localhosthttp://127.0.0.1 之外的另一个服务器名称)

2) DocumentRoot:从单词本身来看,是您的 [项目] 的目录(例如 /var/www/html/mahasiswa)

3) 目录:用于包含一组指令,这些指令仅适用于指定目录、该目录的子目录以及相应目录中的文件。在这种情况下,我们希望控制对目录的访问权限:

AllowOverride All(可以是 All 或 None)

要求全部授予

所有人都允许

您可以在此处了解更多信息:http://httpd.apache.org/docs/current/mod/core.html#directory

返回,一旦你保存了这个新配置,转到你的/etc/hosts(主机文件)(例如sudo vim /etc/hosts)并添加ff:

127.0.0.1 本地主机 local.mahasiswa.com

将这些更改保存到 [hosts] 文件后,执行以下命令:

sudo a2ensite mahasiswa.conf

sudo a2enmod rewrite

这将[启用]您的新站点配置并启用 [url 重写] 模块。然后执行此操作:

sudo service apache2 reload

从命令本身来说,意味着你需要重新加载[apache2],这样配置才会生效。

然后尝试访问您的新域名:local.mahasiswa.com。 您应该能够看到您需要的 CI 页面。

如需进一步参考,请在此处查看[数字海洋]指南:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04

希望这对您的情况有所帮助。

编辑: 在命名 [controller] 文件(例如 mahasiswa)时,您可能需要将 [UpperCase] 而不是 [lowercase] 格式设置为(例如 Mahasiswa)

【讨论】:

  • 我似乎不清楚是否在 /etc/hosts 文件中添加 127.0.0.1 localhost local.mahasiswa.comff: 127.0.0.1 localhost local.mahasiswa.com。我应该使用哪一个?
  • 127.0.0.1 localhost local.mahasiswa.com。打开 [hosts] 文件后,您可以看到 127.0.0.1 localhost 已经存在。只需在localhost 旁边添加local.mahasiswa.com。这通常也适用于其他操作系统(例如 Windows)。请注意,您已将此值与您在 vhosts config 文件中提供的 ServerName 相同
  • 首先,感谢您的回答。你说的我都照做了。但是,不幸的是,我的 codeigniter 项目仍然无法运行(仍然出现 404 Page Not Found)。
  • 嗯..如果可以的话,您能否将您在 CI 项目中设置的 [.htaccess] 添加到您的问题中?
  • 我已经上传了 .htaccess 图片。你现在可以看到了。
【解决方案2】:

启用 mod_rewrite

sudo a2enmod rewrite

sudo systemctl restart apache2

【讨论】:

    猜你喜欢
    • 2016-08-29
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-04-25
    • 2017-08-30
    相关资源
    最近更新 更多