Запуск веб-сайта Siremis на Nginx:

Я пытаюсь развернуть Siremis 4.1 ( http://siremis.asipto.com/2014/03/25/siremis-v4-1-0-released/) на Ubuntu 14.04 под управлением Nginx. В Интернете очень мало информации о запуске Siremis на Nginx. Я установил все правильно (я думаю), но у меня проблема с конфигурацией Nginx для правильного обслуживания страниц.

Я почти уверен, что проблема в перезаписи URL. Я могу перейти на эту страницу без проблем:

DOMAIN / siremis / index.php / пользователь / Войти

Но я получаю страницу не найденную после этого с этим URL:

DOMAIN / siremis / система /general_default

Это напоминает мне о постоянных ссылках WordPress, с которыми я смог работать без особых проблем благодаря их превосходной документации: http://codex.wordpress.org/Nginx

Но Сиремис - это другое дело. Я не уверен, что Siremis просто не поддерживает работу с Nginx, потому что он ожидает Apache при выполнении перенаправлений или что. Просто интересно, есть ли у кого-нибудь предложения. Я новичок в Nginx, очевидно. Или, если кто-нибудь знает, как отключить перенаправления в Siremis, это тоже подойдет! Мне не нужно иметь "красивые" URL-адреса.

Вот моя конфигурация сервера:

server {
        listen 80;
        listen [::]:80;

        charset utf-8;
        access_log /var/log/nginx/siremis.access.log;
        error_log /var/log/nginx/siremis.error.log;

        root /usr/share/nginx/html/siremis-4.1.0;
        index index.php;

        server_name sip1.<<DOMAIN>>;

        location /siremis
        #location ~^/siremis(.+)$
        {
                try_files $uri $uri/ /siremis/index.php?$1;
        }

        location ~ .*\.(php|php5)?$
        {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html
        {
                root /usr/share/nginx/html;
        }
}

1 ответ

Конфигурация nginx ниже должна заставить вас работать; проблема в том, что фреймворк, упакованный с tarball siremis, возвращает URI, который в конечном итоге возвращается как / siremis / siremis / system / general_settings... который не будет найден.

Приведенная ниже конфигурация перенаправляет ошибку на правильный uri; проблема в том, что с этим конфигом, ваши ошибки все еще будут регистрироваться; вы можете их игнорировать или поиграть с директивой log_not_found off;

Другая проблема, с которой вы можете столкнуться, - это браузеры на базе Mozilla; они очень строги с заголовками типа контента, поэтому вы должны установить заголовки, используя включенный файл contHandlers.conf в нужных местах, иначе вы можете получить ошибки при загрузке css, js, gifs favicon .... и т.д... вам нужен Пакет nginx-extra или nginx-full или скомпилируйте его с помощью модуля more_set_headers

на сайтах-доступных конфигураций вашего сайта есть:

server {
        listen 80;

        listen [::]:80;

        charset utf-8;
        access_log /var/log/nginx/siremis.access.log;
        error_log /var/log/nginx/siremis.error.log;

        root /usr/share/nginx/html/siremis-4.1.0;
        index index.php;

        server_name sip1.<<DOMAIN>>;

    include /etc/nginx/mime.types;

        error_page 404 = @router;
    location @router {
        if ( $uri ~* (^/siremis)(.*)$ ){
        set $val1 $1 ;
        set $val2 $2;
        rewrite .*  $val1/index.php$val2 redirect;
        }
# remove or create this file if you want to make your own error pages
    rewrite .*  /siremis/errTest.html last;    
    internal ;
    }

# this block will redirect you to siremis root 
    location =/ {
    rewrite .*  /siremis redirect;    
    }

    location /siremis {
    include /etc/nginx/inc/contHandlers.conf;
    }


# remove the install block after you installed
    location /siremis/install {
    include /etc/nginx/inc/contHandlers.conf;

    }


    location ~^(.+\.php)(.*)$ {
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    include /etc/nginx/fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME $request_filename;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    }


    location = /favicon.ico {
      log_not_found off;
     access_log off;
        try_files /siremis/favicon.ico =200;  
    }

}


#the include /etc/nginx/inc/contHandlers.conf;(this can probably be simplified..some params are commented

    if ($uri ~* (?=\.(gif|jpg|jpeg|png))) {
    more_set_headers  'Cache-Control:private, must-revalidate, max-age=144000s'; 
    break;
    }

    if ($uri ~* (?=\.css)){
    more_set_headers  'Content-Type:text/css' 'Cache-Control: private, must-revalidate, max-age=144000s';
    #more_set_headers 'Expires: 7200s';
    break;

}

    if ($uri ~* (?=\.js)){
    more_set_headers  'Content-Type:text/javascript' 'Cache-Control: private, must-revalidate, max-age=144000s'; 
    #expires 72000s;
    break;

    }

    if ($uri ~* (?=\.gif)) {
    more_set_headers  'Content-Type:image/gif' 'Cache-Control: private, must-revalidate, max-age=144000s';
    break; 
    }

    if ($uri ~* (?=\.(jpg|jpeg))) {
    more_set_headers 'Content-Type:image/jpeg' 'Cache-Control: private, must-revalidate, max-age=144000s';
    break; 
}

    if ($uri ~* (?=\.png)) {
    more_set_headers 'Content-Type:image/png' 'Cache-Control: private, must-revalidate, max-age=144000s';
    break; 
}
Другие вопросы по тегам