Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Веб сервер
  • Search

Вопрос по ЧПУ

Вопросы по работе Веб сервера
Apache + Nginx, Nginx + PHP5-FPM
Post Reply
  • Print view
Advanced search
6 posts • Page 1 of 1
sag-sag
Posts: 165
Joined: Sun Feb 15, 2015 7:00 pm

Os: Debian 8x
Web: apache + nginx
Вопрос по ЧПУ
  • Quote

Post by sag-sag » Mon Mar 20, 2017 12:42 pm

Данные сервера:
Debian+VestaCP
nginx+phpfpm

Мой форум работает на движке Xenforo. В админке есть функция:
Использовать ЧПУ-ссылки
При включении этой опции, ссылки, сгенерированные системой, не будут включать в себя "index.php?". Однако, чтобы эта функция работала, на сервере должен быть включен модуль mod_rewrite, и соответствующий .htaccess файл должен храниться в корневой папке форума.

Как только я включаю ЧПУ, и пытаюсь войти в какую-либо тему, валится ошибка 404.

Установил я mod_rewrite:

Code: Select all

a2enmod rewrite
В .htaccess:

Code: Select all

<IfModule mod_rewrite.c>
	RewriteEngine On

	#	If you are having problems with the rewrite rules, remove the "#" from the
	#	line that begins "RewriteBase" below. You will also have to change the path
	#	of the rewrite to reflect the path to your XenForo installation.
	#RewriteBase /xenforo

	#	This line may be needed to enable WebDAV editing with PHP as a CGI.
	#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

	RewriteCond %{REQUEST_FILENAME} -f [OR]
	RewriteCond %{REQUEST_FILENAME} -l [OR]
	RewriteCond %{REQUEST_FILENAME} -d
	RewriteRule ^.*$ - [NC,L]
	RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
	RewriteRule ^.*$ index.php [NC,L]
</IfModule>
В офф документации Xenforo написано следующее:
Для активации ЧПУ на Nginx серверах добавьте следующий код в конфигурационный файл своего сервера:

Code: Select all

location /xf/ {
    try_files $uri $uri/ /xf/index.php?$uri&$args;
    index index.php index.html;
}

location /xf/internal_data/ {
    internal;
}
location /xf/library/ {
       internal;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include         fastcgi_params;
}
Вот и возник вопрос, что за конфигурационный файл имеется ввиду? /etc/nginx/nginx.conf? Правильно?
До этого держал этот форум на хостинге и проблем не имел. А вот переехал к себе, столкнулся с этим вопросом.
Top

sag-sag
Posts: 165
Joined: Sun Feb 15, 2015 7:00 pm

Os: Debian 8x
Web: apache + nginx
Re: Вопрос по ЧПУ
  • Quote

Post by sag-sag » Mon Mar 20, 2017 12:49 pm

Если прописываю в /etc/nginx/nginx.conf?, то nginx после перезапуска вообще не поднимается...
Top

Alex Connor
Support team
Posts: 1047
Joined: Fri Mar 21, 2014 7:49 am
Contact:
Contact Alex Connor
Website Twitter

Os: CentOS 6x
Web: apache + nginx
Re: Вопрос по ЧПУ
  • Quote

Post by Alex Connor » Mon Mar 20, 2017 1:09 pm

Имеется ввиду файл

Code: Select all

/home/%username%/conf/web/[s]nginx.conf
ищите в нем секцию, которая отвечает за нужный домен и правьте
Top

sag-sag
Posts: 165
Joined: Sun Feb 15, 2015 7:00 pm

Os: Debian 8x
Web: apache + nginx
Re: Вопрос по ЧПУ
  • Quote

Post by sag-sag » Wed Mar 22, 2017 8:26 pm

Вообщем пытаюсь вписывать, не выходит:

Модуль mod_rewrite установлен. Если верить офф документации под nginx: https://xenforo.com/help/friendly-urls/. Я должен вписать в конфиг под nginx:

Code: Select all

location /xf/ {
    try_files $uri $uri/ /xf/index.php?$uri&$args;
    index index.php index.html;
}

location /xf/install/data/ {
    internal;
}
location /xf/install/templates/ {
    internal;
}
location /xf/internal_data/ {
    internal;
}
location /xf/library/ {
    internal;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include         fastcgi_params;
}
Собственно что я и делаю:

Code: Select all

location / {

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }
       
        location /сайт.ру/ {
                try_files $uri $uri/ /сайт.ру/index.php?$uri&$args;
                index index.php index.html;
        }

        location /сайт.ру/install/data/ {
                internal;
        }
        location /сайт.ру/install/templates/ {
                internal;
        }
        location /сайт.ру/internal_data/ {
                internal;
        }
        location /сайт.ру/library/ {
                internal;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include         fastcgi_params;
        }
    }
Перезапускаю nginx. Увы все равно ошибка 404 при входе в темы... Не могу понять, что не так... Может я не правильно вписываю?
По дефолту локейшен у меня такой:

Code: Select all

location / {

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    127.0.0.1:9003;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }
Top

Duck83
Posts: 36
Joined: Thu Aug 24, 2017 10:33 am

Re: Вопрос по ЧПУ
  • Quote

Post by Duck83 » Wed Sep 13, 2017 11:42 am

sag-sag wrote:Данные сервера:
Debian+VestaCP
nginx+phpfpm

Мой форум работает на движке Xenforo. В админке есть функция:
Использовать ЧПУ-ссылки
При включении этой опции, ссылки, сгенерированные системой, не будут включать в себя "index.php?". Однако, чтобы эта функция работала, на сервере должен быть включен модуль mod_rewrite, и соответствующий .htaccess файл должен храниться в корневой папке форума.

Как только я включаю ЧПУ, и пытаюсь войти в какую-либо тему, валится ошибка 404.

Установил я mod_rewrite:

Code: Select all

a2enmod rewrite
В .htaccess:

Code: Select all

<IfModule mod_rewrite.c>
	RewriteEngine On

	#	If you are having problems with the rewrite rules, remove the "#" from the
	#	line that begins "RewriteBase" below. You will also have to change the path
	#	of the rewrite to reflect the path to your XenForo installation.
	#RewriteBase /xenforo

	#	This line may be needed to enable WebDAV editing with PHP as a CGI.
	#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

	RewriteCond %{REQUEST_FILENAME} -f [OR]
	RewriteCond %{REQUEST_FILENAME} -l [OR]
	RewriteCond %{REQUEST_FILENAME} -d
	RewriteRule ^.*$ - [NC,L]
	RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
	RewriteRule ^.*$ index.php [NC,L]
</IfModule>
В офф документации Xenforo написано следующее:
Для активации ЧПУ на Nginx серверах добавьте следующий код в конфигурационный файл своего сервера:

Code: Select all

location /xf/ {
    try_files $uri $uri/ /xf/index.php?$uri&$args;
    index index.php index.html;
}

location /xf/internal_data/ {
    internal;
}
location /xf/library/ {
       internal;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include         fastcgi_params;
}
Вот и возник вопрос, что за конфигурационный файл имеется ввиду? /etc/nginx/nginx.conf? Правильно?
До этого держал этот форум на хостинге и проблем не имел. А вот переехал к себе, столкнулся с этим вопросом.
Решил ли свою проблему? Столкнулся с аналогичной задачей, интересует решение.
Top

insound
Posts: 44
Joined: Wed Sep 17, 2014 8:34 pm
Contact:
Contact insound
Website

Os: CentOS 6x
Web: nginx + php-fpm
Re: Вопрос по ЧПУ
  • Quote

Post by insound » Mon Sep 18, 2017 4:31 pm

Nginx настолько гибкий что все ваши проблемы решаются в пару строк. Тут форум панели управления, а не шаблонами по факту для панели, учебников в интернете и даже конвертилок с апач конфигов в пхп-фпм для нжинкса просто куча.
Я сам много лет назад задавался подобными вопросами про xenforo итп, благополучно все сам допилил. Универсальных конфигов прям вот что бы коробочно работало - вам дали с вестой, далее каждый кастомит под себя. Если я скину свой конфиг - у вас он работать не будет, тк у меня своеобразно все настроено и ваш стоковый нжинкс даже не стартанет с ними. У каждого движка есть мануал как запустить его на пхп-фпм и даже как работать с кешированием мимо пхп, просто погуглите ненмого.
Top


Post Reply
  • Print view

6 posts • Page 1 of 1

Return to “Веб сервер”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password