在 Ubuntu 16.04 LTS 上 运行 Codeigniter 项目内 var/www/html/ 时找不到 404 页面?

404 Page Not Found when run Codeigniter project inside var/www/html/ on Ubuntu 16.04 LTS?

I have installed LAMP (Linux, Apache2, MySQL, and PHP) stack.

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

结果的屏幕截图:

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

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


编辑

我的配置文件:

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

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

  1. etc/hosts

  1. mahasiswa/.htaccess

浏览器当前结果:

我不知道我在这个配置中到底遗漏了什么。我已经按照下面的@eeya 说明/回答进行操作。任何人都可以帮助我,请 :D

关于您在设置 apache 虚拟主机配置方面的问题:这是如何进行的。如果您有 [root] 权限,请打开您的 [终端] 并转到此目录:/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://localhost or http://127.0.0.1 之外的另一个服务器名称)

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

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

AllowOverride 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 个页面。

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

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

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

启用mod_rewrite

sudo a2enmod rewrite

sudo systemctl restart apache2