CodeIgniter安装在nginx

时间:2016-09-02 11:19:00

标签: codeigniter nginx

一个网站 - 我们称之为fru.it - 通过nginx和PHP-FPM在fru.it/blueberry下为CodeIgniter应用程序提供服务。 主站点位于/var/www/fru.it/文件系统上,而应用程序位于/var/www/fru.it_blueberry/blueberry/下(与主站点不同的根)。 为了在CodeIgniter升级到3.1.0时加强安全性,应用程序的文件结构已根据the CodeIgniter User Manual更改为:

/var/www/fru.it_blueberry/
├── blueberry
│   ├── application
│   ├── docs
│   ├── public
│   │   ├── index.php
│   └── system
└── sock

在开发机器上,安装程序可以正常使用CI随附的Apache2默认mod_rewrite规则。但是,在生产服务器上访问fru.it/blueberry/会显示CI 404页面。

我确定这是一个配置错误但我自己无法找到正确的细节并一直在尝试使用different setups。我需要改变什么?

应用程序配置

索引文件被修改为指向被移出公共根目录的absoulte路径:

$system_path = '/var/www/radiostudent.si_klubskimaraton/klubskimaraton/system'
$application_folder = '/var/www/radiostudent.si_klubskimaraton/klubskimaraton/application';

这来自application/config/config.php

$config['base_url'] = '';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'AUTO';
$config['log_threshold'] = 4;

application/config/routes.php中,默认控制器设置为在裸地址显示主页:

$route['default_controller'] = "Welcome";
$route['404_override'] = '';

应用程序日志

INFO - 2016-09-02 12:16:19 --> Config Class Initialized
INFO - 2016-09-02 12:16:19 --> Hooks Class Initialized
DEBUG - 2016-09-02 12:16:19 --> UTF-8 Support Enabled
INFO - 2016-09-02 12:16:19 --> Utf8 Class Initialized
INFO - 2016-09-02 12:16:19 --> URI Class Initialized
INFO - 2016-09-02 12:16:19 --> Router Class Initialized
INFO - 2016-09-02 12:16:19 --> Output Class Initialized
INFO - 2016-09-02 12:16:19 --> Security Class Initialized
DEBUG - 2016-09-02 12:16:19 --> Global POST, GET and COOKIE data sanitized
INFO - 2016-09-02 12:16:19 --> Input Class Initialized
INFO - 2016-09-02 12:16:19 --> Language Class Initialized
ERROR - 2016-09-02 12:16:19 --> 404 Page Not Found: /index

网络服务器配置

location /blueberry {
    error_log /var/www/radiostudent.si_klubskimaraton/main-error.log debug;
    rewrite_log on;
    alias   /var/www/fru.it_blueberry/blueberry/public;
    index   index.html index.htm index.php;
    try_files $uri $uri/ /index.php;

    location ~* \.php$ {
            error_log /var/www/radiostudent.si_klubskimaraton/php-error.log debug;
            rewrite_log on;
            try_files $uri $uri/ /index.php =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass @php-blueberry;

    }
}

1 个答案:

答案 0 :(得分:0)

您不能有空白的基本网址。

[container]
    heapLimit = 2g

这会有所帮助,但可能无法完全解决您的问题,因为您可能还有其他问题。

在index.php中,您可能还需要设置应用路径。

$config['base_url'] = 'www.fru.it/blueberry/';

希望有所帮助,

保罗。