I've been trying to setup a Sugar CRM instance. I've got a domain that has its main site on a server (www.domain.com) and I've created a subdomain (sugar.domain.com), but I wnat this subdomain to be hosted on another server.
This second server has nginx installed, and there's a working WordPress blog there on a virtualhost, so I would need to setup a second site. To do this I've created the directory structure, and I've created a /etc/nginx/sites-enabled/sugar.domain.com configuration file that has the following:
*
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;
}
As far as I know, I need the *.domain.com parameter on the "server_name" flag, but something is crashing here: I get either a 403 Forbidden error, or I get PHP code (I can read the PHP file code in the browser, like normal text) that somehow is not executed. I've tried setting permissions to 755 inside the /var/www/sugar/ directory, and I've also set up the owner:group with a chown -R www-data:www-data /var/www/sugar/
The thing is, I don't now if my mistake is in the nginx site configuration, in my folder permissions, or in other place :(
Could it be because of the main domain (www.domain.com) is hosted on other server? Do they have to be together necessarily?
First error I see right off the bat - location takes a regexp, you need to escape your . character. I suggest:
You don't need *.domain.com, sugar.domain.com should be all that's needed. As koolhead17 mentions, make sure you set your DNS A record to the IP of this second server for sugar.domain.com; nginx will use the "Host" header coming from the browser and match it against server_name.
I might be wrong but you have to Add a subdomain from your control panel say test.domain.com and map it with A record which will point to the IP on which your Nginx is running.
In the Nginx.conf you have to put the IP and subdomain in the virtualhost as we do in Apache.