Страницы приложения PHP (Owncloud), запрашивающие неверный путь для активов

У меня есть VPS с php-fpm и nginx (с ssl). Я уже настроил Tiny Tiny RSS, и он отлично работает. Тем не менее, я недавно попытался настроить Owncloud, и сразу же наткнулся на контрольно-пропускной пункт.

Я посетил страницу индекса, чтобы выполнить начальную настройку, и там не было абсолютно никакого стиля. Я заглянул в консоль Firefox и увидел несколько 404 ошибок. Присмотревшись, я увидел, что все пути к активам были неправильными. Вместо запроса http://mydomain.com/owncloud/some/important/component.js он запросил http://mydomain.com/usr/share/nginx/html/owncloud/some/important/component.js.

Казалось бы, php делает что-то не так при обработке страниц. У меня нет этой проблемы с Tiny Tiny RSS, поэтому я предполагаю, что это как-то связано с тем, как был написан Owncloud.

Я предполагаю, что есть ключ php.ini, который я должен изменить. Есть идеи?

Ниже приводится содержимое моего блока сервера:

            listen 443 ssl;
            ssl_certificate /var/ssl/secret/sauce.key
            ssl_certificate_key /var/ssl/secret/sauce.key;
            server_name localhost 127.0.0.1 mydomain.com;
            root /usr/share/nginx/html;
            index index.html index.htm index.php;
            client_max_body_size 1000M;

            location / {
                    try_files $uri $uri/ @webdav =404;
            }

            location ~ \.php$ { 
                    include fastcgi_params;
                    fastcgi_index index.php;
                    try_files $1 = 404;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param HTTPS on;
                    fastcgi_pass 127.0.0.1:9000;
            }

            location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
                    deny all;
            }

            location @webdav {
                    fastcgi_split_path_info ^(.+\.php)(/.*)$;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param HTTPS on;
                    include fastcgi_params;
            }

Я понимаю, что это не полная конфигурация, которую рекомендует документация Owncloud, но я обычно хотел бы получить минимальную рабочую конфигурацию и поработать, чтобы узнать, как все работает. Изучив параметры конфигурации, которые я пропустил, похоже, что они не влияют на обработку php, поэтому я предполагаю, что все в порядке. В противном случае я хотел бы знать, какую директиву nginx мне не хватает и почему это важно.

2 ответа

Я предполагаю, что есть ключ php.ini, который я должен изменить. Есть идеи?

Нет, ваше приложение, скорее всего, настроено неправильно - эти пути генерирует PHP Owncloud. Убедитесь, что вы правильно настроили URL-путь в Owncloud.

Создайте новый виртуальный хост для owncloud и просто отредактируйте root и upstream (либо sock, либо port), у меня уже есть работающий сервер owncloud, и он работает нормально.

Конфигурация Nginx для owncloud

заменить root линия и server в upstream

Я предполагаю, что вы знаете, как создать виртуальный сервер, если не сказать мне, чтобы я мог дать объяснение этому тоже.

РЕДАКТИРОВАТЬ

О ssl, одном IP и одном виртуальном сервере:

Не совсем, это зависит от того, для чего был куплен ваш ssl, если это, например, отдельный домен ssl example.com или же store.example.comВы можете иметь столько сайтов, сколько хотите, на одном и том же IP-адресе, но SSL будет действителен только для того домена, для которого вы его купили, если только вы не приобрели универсальный SSL, в этом случае он может поддерживать *.example.com

В любом случае, на моем сервере также есть SSL, и это только для domain.com а также www.domain.comЯ использовал его на своем облачном сервере, который был размещен на cloud.domain.com Единственным недостатком является то, что вы получаете предупреждение желтой страницы, потому что домен не соответствует тому, для которого был куплен ssl, я говорю браузеру игнорировать это предупреждение и сохранять исключение, и это тоже самое, что и для синхронизации клиент, он сказал мне, если я хочу игнорировать предупреждение или нет, и это работает просто отлично.

Если вы не хотите получать это предупреждение, тогда да, вам нужно создать собственный облачный сервер под тем же виртуальным хостом, не из-за IP, а из-за имени, для которого был куплен ssl.

Скажи мне, что ты хочешь, и я помогу тебе в любом.

Другие вопросы по тегам