Страница 1 из 1

OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 14 май 2024, 11:27
funtus
Всем добрый день.

Перешел на OSP 6 с пятой версии и не могу решить проблему - в URL всегда присутствует index.php файл и не работаю некоторын роуты. Перекопал множество документации и пробовал изменить настройки nginx, apache, .htacces файла и даже RouteServiceProvider.php в Laravel.... результат один и тот же:
1. В адроесе всегда присутсвует index.php
2. Переход в /home не подгружает стили, скрипты и прочее
Уверен, что я где-то ошибься, но никак не могу найти где. Помогите, пожалуйста.

Настройки:
1. ospnal\config\program.ini - изменение только в пути проектов
[main]
api_domain = ospanel
api_ip = 127.127.127.127
api_port = 80
clear_dns_cache = on
lang = auto
log_max_filesize = 1
projects_search_depth = 3
projects_search_path = {root_dir}\home;D:\projects\web
task_scheduler = on
terminal_ansi_fix = auto
update_check = on
use_hosts_file = on
use_win_terminal = off

2. настройки проекта по пути D:\projects\web\dms.local\.osp\project.ini
[dms.local]
enabled = on
environment = System
ip = auto
nginx_engine = Nginx-1.26
node_engine =
php_engine = PHP-8.2
project_dir = {base_dir}
project_url = https://{host_decoded}
public_dir = {base_dir}\public
ssl = on
ssl_cert_file = auto
ssl_key_file = auto
start_command =
terminal_codepage = 65001

Скрины
2024-05-14 11_18_02-DMS _ Home.png
2024-05-14 11_17_06-DMS _ Admin _ Users.png

Заранее спасибо

Re: OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 14 май 2024, 11:38
Максим
Включили Nginx, но даже не настроили его, полагаю. Классика. Если у вас Nginx + PHP-FCGI, то пробуйте эти правила:
index index.html index.htm index.php;
charset utf-8;
location / { try_files $uri $uri/ /index.php$is_args$args; }
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {fastcgi_pass $php_server:9000; include fastcgi_params; }
location ~ /\.(?!well-known).* { deny all; }
О том, как создать свой конфиг для Nginx, чтобы добавить эти правила, читайте в документации или посмотрите дефолтный домен-пример доступный после установки.

UPD. Вижу по конфигам, что у вас связка Nginx+Apache. Поэтому тут всё ещё проще, просто проверяйте что у вас в .htaccess, там должны быть нужные правила прописаны. Ну и в консоли браузера смотрите, почему у вас стили не подгружаются.

Re: OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 16 май 2024, 23:48
amel
Столкнулся с такой же проблемой: все страницы открываются только если в адресе есть index.php. Например, вот так https://lara.test/index.php/dashboard страница открывается, а вот так - нет https://lara.test/dashboard

В конфигурацию nginx добавил такие строки:
location / {
    try_files $uri $uri/ /index.php$is_args$query_string;
}
В .htaccess добавил вот это:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    Options +FollowSymLinks

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

</IfModule>
Но ничего из этого не помогло. Пожалуйста, помогите с решением этой проблемы. Уже все возможные способы перепробовал, но ничего не получается.

Laravel 11, php8.2 (Nginx1.26 + Apache).

Re: OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 17 май 2024, 12:48
piento
osp6 + php7.4fcgi + laravel7 + nginx1.26

Приложение использует puppeteer.
Проблема:
Chrome не запускался, потому как , не видит node (в osp 5.43 все без проблем).
(Перепробовал множество вариантов, и nvm или системный node, в set все есть но...).
Решил вопрос прописав 'executable_path':'C:\\Program Files\\nodejs\\node.exe'.

Re: OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 19 июн 2024, 13:59
voland70
piento писал(а): 17 май 2024, 12:48 osp6 + php7.4fcgi + laravel7 + nginx1.26

Приложение использует puppeteer.
Решил вопрос прописав 'executable_path':'C:\\Program Files\\nodejs\\node.exe'.
Подскажите подробнее: где именно 'executable_path':' -необходимо прописать?

OSP 6.0.0 + Laravel 10 - не может запустить ноду, puppeteer - не работает.
Ищу решение.

Re: OSP 6.0.0 + Laravel 9 + Nginx 1.26: проблема роутинга

Добавлено: 09 окт 2024, 00:05
Seeman13
Вам нужно:
-> в папке .osp вашего локального сайта создать директорию nginx;
-> в созданной директории nginx создать файл с именем домена вашего локального сайта, например: laravel.-test.conf
-> в конфиге, например для Laravel версии 11 прописать следующий код:
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";

index index.php;

charset utf-8;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ \.php$ {
    fastcgi_pass $php_server:9000;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_hide_header X-Powered-By;
}

location ~ /\.(?!well-known).* {
    deny all;
}

-> для своего тестового сайта выбрать версию Nginx: Nginx-1.26
-> для своего тестового сайта выбрать версию PHP: PHP-8.3-FCGI
-> перезагрузить OSP