S
S
Sayo2018-11-06 19:52:45
css
Sayo, 2018-11-06 19:52:45

How to set up NGNIX + PHP-FPM to work with Yii2?

Good day, I can't get the server to process requests of this type website.ru/1 website.ru/2 I get an error 404 Not Found The transition to the website.ru index page is processed correctly. How to force redirect to index.php which is located in the root directory of yii2 framework when going to website.ru/1 website.ru/2 ?
Site config from ISPmanager:

server {
server_name website.ru www.website.ru;
charset UTF-8;
index index.php;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/website.ru/*.conf;
set $root_path /var/www/www-root/data/www/website.ru;
root $root_path;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
fastcgi_pass unix: /var/www/php-fpm/www-root.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
access_log off;
error_log /dev/nullcrit;
listen xxx.xxx.xxx.xxx:80;
}

Answer the question

In order to leave comments, you need to log in

6 answer(s)
A
Alexander, 2015-10-03
@kentuck1213

Through the developer panel. Chrome F12.

S
Sergiu Mitu, 2015-10-03
@EaGames

Indeed, an interesting menu, but Alexander is absolutely right, this is not a backend to guess what is happening there ... all the sources are in your browser, you just need to carefully study everything.

G
GoodProject, 2015-10-03
@GoodProject

I didn’t understand, but what is so special about this menu?)
As I understand it, these are 2 lists.
First make 1 list, then the second, for the second set the indent on the left)

0
0leg5ergeev, 2015-10-03
@0leg5ergeev

If you don’t want to look at the source at all, then there is a map tag

S
spaceatmoon, 2018-11-06
@spaceatmoon

Your root is set incorrectly. In general, here is an example of a config for yii2.
If you still don't get it. Try playing with this line. For each user, a port is issued for fpm. More precisely, you read it on the Internet, I don’t really rummage about it. https://github.com/yiisoft/yii2/blob/master/docs/g...

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name mysite.test;
    root        /path/to/basic/web;
    index       index.php;

    access_log  /path/to/basic/log/access.log;
    error_log   /path/to/basic/log/error.log;

    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    # deny accessing php files for the /assets directory
    location ~ ^/assets/.*\.php$ {
        deny all;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        try_files $uri =404;
    }

    location ~* /\. {
        deny all;
    }
}

S
Sayo, 2018-11-10
@Sayo

Not without help, but we managed to solve the problem by adding such lines to the default ISPManager (ngnix) config.

server {

  server_name website.ru www.website.ru;
  charset UTF-8;
  index index.php;
  disable_symlinks if_not_owner from=$root_path;
  include /etc/nginx/vhosts-includes/*.conf;
  include /etc/nginx/vhosts-resources/website.ru/*.conf;
  set $root_path /var/www/www-root/data/www/website.ru;
  root $root_path;

  # < Добавлено (REDIRECT_URL defined)
  set $redirect_url $uri;
  # >

  location / {

    location ~ [^/]\.ph(p\d*|tml)$ {

      try_files /does_not_exists @php;
    }
    # < Добавлено
    location / {

      try_files $uri/ $uri /index.php?$args;
    }
    # >
  }
  location @php {

    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@website.ru";
    fastcgi_pass unix:/var/www/php-fpm/www-root.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;

    # < Добавлено
    fastcgi_param REDIRECT_URL $redirect_url;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    # >
  }
  access_log off;
  error_log /dev/null crit;
  listen ххх.ххх.ххх.ххх:80;
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question