Как мне настроить nginx и CodeIgniter? - PullRequest
2 голосов
/ 24 сентября 2010

Я запускаю nginx на моем домашнем компьютере для разработки. У меня также есть это связано с DynDNS, чтобы я мог показать прогресс для моего коллеги немного легче. Я не могу заставить nginx правильно переписать в CodeIgniter. У меня CodeIgniters uri_protocol установлен на REQUEST_URI.

Все страницы, которые должны отображаться с содержимым, отображаются полностью пустыми. Если я phpinfo (); умереть(); в файле index.php Codeigniter он работает как положено, и я получаю phpinfo.

Кроме того, страницы, которые должны давать 404, дают правильную ошибку CodeIgniter 404.

Вот что у меня есть.

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    #gzip  on;
    #gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    root /home/zack/Development/public_html;

    include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;


    server {
        listen 80;
        server_name zackhovatter.dyndns.info;

        index index.php;
        root /home/zack/Development/public_html;

        location /codeigniter/ {
            if (!-e $request_filename) {
                rewrite ^/codeigniter/(.*)$ /codeigniter/index.php/$1 last;
            }
        }
            #this is for the index.php in the root folder
        location /index.php {
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME /home/zack/Development/public_html/index.php;
            include         fastcgi_params;
        }

        location /codeigniter/index.php {
            fastcgi_index   index.php;
            include         fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME  /home/zack/Development/public_html/codeigniter/index.php;
            fastcgi_param   REQUEST_URI      $request_uri;
            fastcgi_param   QUERY_STRING     $query_string;
            fastcgi_param   PATH_INFO        $document_uri;
            fastcgi_param   REQUEST_METHOD   $request_method;
            fastcgi_param   CONTENT_TYPE     $content_type;
            fastcgi_param   CONTENT_LENGTH   $content_length;
            fastcgi_pass    127.0.0.1:9000;
        }
    }
}

Ответы [ 3 ]

1 голос
/ 24 сентября 2010

На самом деле я получил это работает. Не знаю как, но я думаю, что права доступа к файлам были установлены неправильно или что-то в этом роде.

Edit: Для тех, кто интересуется, у меня была установлена ​​более старая версия PHP, кажется. Возвращение к старым конструкторам классов решило проблему. Darnit.

0 голосов
/ 12 мая 2014

У меня точно такая же проблема (Codeigniter выдает пустые страницы, страницы ошибок и php работают), и я обнаружил, что проблема была в драйвере mysql db, который следует заменить на драйвер mysqli.

Так что нам просто нужно изменить драйвер БД в config / database.php

$db['default']['dbdriver'] = 'mysqli';

И это связано с тем, что драйвер mysql устарел в новых версиях php.

0 голосов
/ 27 апреля 2012

Вот решение.

https://web.archive.org/web/20120504010725/http://hiteshjoshi.com/linux/secure-nginx-and-codeigniter-configuration.html

Кроме того, мне пришлось изменить $config['uri_protocol'] = “DOCUMENT_URI”;, чтобы оно заработало.

ОБНОВЛЕНИЕ: Исправлено 404 URL извеб-архив.

...