Я пытался настроить Экземпляр Sugar CRM. У меня есть домен, основной сайт которого находится на сервере (www.domain.com), и я создал субдомен (sugar.domain.com), но я хочу этот субдомен быть размещенным на другом сервере.
Этот второй сервер установлен nginx, и там на виртуальном хосте есть рабочий блог WordPress, поэтому мне нужно было бы настроить второй сайт. Для этого я создал структуру каталогов и создал /etc/nginx/sites-enabled/sugar.domain.com конфигурационный файл, содержащий следующее:
*
server {
listen 80;
server_name sugar.domain.com *.domain.com;
access_log /var/www/sugar/log/access.log;
error_log /var/www/sugar/log/error.log info;
location / {
root /var/www/sugar;
index index.php;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/sugar/$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort on;
fastcgi_read_timeout 180;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
upstream backend {
server 127.0.0.1:9000;
}
Насколько я знаю, мне нужен * .domain.com параметр во флаге server_name, но здесь что-то происходит сбой: я получаю либо ошибку 403 Forbidden, либо код PHP (Я могу прочитать код файла PHP в браузере, как обычный текст), который почему-то не выполняется. Я попытался установить разрешения на 755 внутри каталога / var / www / sugar /, а также установил группу owner: с chown -R www-data: www-data / var / www / sugar /
Дело в том, что я этого не делаю, если моя ошибка в конфигурации сайта nginx, в разрешениях на мою папку или в другом месте :(
Может ли это быть из-за того, что основной домен (www.domain.com) размещен на другом сервере? Обязательно ли они должны быть вместе?
Первую ошибку я вижу сразу же - location принимает регулярное выражение, вам нужно избежать вашего. персонаж. Я предлагаю:
location ~* \.php$ {
}
Вам не нужен * .domain.com, все, что нужно, - это sugar.domain.com. Как упоминает koolhead17, убедитесь, что вы установили запись DNS A на IP этого второго сервера для sugar.domain.com; nginx будет использовать заголовок «Host», исходящий из браузера, и сопоставляет его с server_name.
Возможно, я ошибаюсь, но вам нужно добавить поддомен с панели управления, например test.domain.com, и сопоставить его с записью A, которая будет указывать на IP-адрес, на котором работает ваш Nginx.
В Nginx.conf вы должны поместить IP-адрес и поддомен в виртуальный хост, как мы это делаем в Apache.