【问题标题】:NGINX + Apache2 + codeigniter - Subpath not workingNGINX + Apache2 + codeigniter - 子路径不起作用
【发布时间】:2019-09-17 02:28:51
【问题描述】:

我目前在我的 DigitalOcean 的 Ubuntu 服务器上启动并运行了 2 个 PHP 应用程序。还有第三个,但它不起作用。所有三个 PHP 项目都配置为在不同的端口上运行。 同时,我使用 NGINX 服务器配置了反向代理。配置如下。

/etc/nginx/nginix.conf

server {
        listen          80;
        server_name     IP;
        location / {
              #Assinged to a python project
        }
        location /php_project_1 {
            proxy_pass http://IP:5002;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $http_host;
        }

        location /php_project_2 {
            proxy_pass http://IP:5003;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $http_host;
        }
        location /php_project_3 {
            proxy_pass http://IP:5004;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $http_host;

        }
    }

我还在/etc/apache2/sites-available中创建了3个配置文件。

问题

php_project_1 和 php_project_2 是使用核心 PHP 开发的,它们运行良好。

php_project_3 是使用 codeigniter 开发的。这就是给我带来问题的项目。在这个项目中,在 /application/config/config.php 下,我修改了 $config['base_url'] 并将值输入为 http://IP/php_project_3

但是,当我点击 URL http://IP/php_project_3 时,我得到一个空白页。 我还检查了 /var/logs/apache2/var/logs/nginx,但是,error.log 文件没有显示任何与我的请求相对应的消息。 p>

同时,我可以使用http://IP/php_project_1http://IP/php_project_2 成功运行另外两个应用程序

我不知道如何解决这个问题。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为情况有点离题了。我这边还有其他问题可能是导致此问题的原因。

标签: php codeigniter nginx apache2


【解决方案1】:

$config['base_url'] 的值应该以斜线结尾,所以试试

$config['base_url'] = 'http://IP/php_project_3/';

如果上述内容仍然产生空白,并且在 /application/logs/ 的任何日志文件中都没有发现错误,那么您的脚本文件之一可能有 BOM。在开场<?php 之前,我在脚本的一开始就遇到了他们。从控制器开始。删除该开头行,然后重新键入它 - 测试,重复控制器使用的任何“查看”文件,直到找到违规者。

您可以通过将 CodeIgniter 的 index.php 临时替换为另一个同名但带有简单文本输出的文件来查看代理是否被传递到正确的目录,即

<?php
echo "Hello World"; 

显然,如果您看到文本,则问题出在服务器配置问题之外。

【讨论】:

  • 好的。我会试试这个然后回来。谢谢,@DFriend
  • /application/logs 中有一个名为index.html 的文件。包含&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;403 Forbidden&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;p&gt;Directory access is forbidden.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;
  • 如果有人尝试浏览到http://IP/php_project_3/applications/logs/,则防止服务器返回目录列表
  • 同一个“默认索引文件”位于其他几个可能(意外)公开可用的目录中。
  • 哦,好的。无论如何,让我继续您指导我执行的故障排除步骤。
【解决方案2】:

我在 trafik 后面运行 codeigniter 时遇到了类似的问题。拔完头发后,我意识到这是因为 traefik 实例的 IP 必须包含在 auth.conf 文件中。

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 2018-10-03
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2013-07-06
    相关资源
    最近更新 更多