1

I would like to have 2 php sub directories under one website mysite.example.com using Nginx. These 2 php directories are using the same domain name mysite.example.com but different locations in the file system.

site1: mysite.example.com/wordpress (/var/www/wordpress)

site2: mysite.example.com/new_site (var/www/new__php_site)

my below configuration works for the wordpress site with mysite.example.com but how to make mysite.example.com/wordpress work?

# Upstream to abstract backend connection(s) for php
upstream php {
        server unix:/tmp/php-cgi.socket;
        server 127.0.0.1:9000;
}

server {
        ## Your website name goes here.
        server_name mysite.example.com;
        ## Your only path reference.
        root /var/www/wordpress;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;

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

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # This is cool because no php is touched for static content. 
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

Also how to make mysite.example.com/new-site work? The below rewrite works for multiple wordpress sites but how about multiple general php sites?

# Rewrite rules for WordPress Multi-site.
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}
Xianlin
  • 1,139
  • 5
  • 20
  • 34
  • I think you need to look at nginx `server blocks` to run multiple sites from the same instance of nginx. But 2 sites with the same name makes no sense. – RiggsFolly Jun 22 '14 at 14:23
  • I only have one domain name and I want to fully utilize this domain name to host multiple sites for testing purpose. That make sense to me... Or you have better ideas? – Xianlin Jun 23 '14 at 08:31
  • How is `nginx` supposed to work out which `example.com` you are trying to access, be sensible. If you are testing use a domain name that does not exist and makes it obvious its a test site like `example.dev`. Just add a refeerence to it into your HOSTS file like `127.0.0.1 example.dev` – RiggsFolly Jun 23 '14 at 08:44
  • the domain name I have is a real domain name registered online. (site.example.com). Let me rephrase my purpose: I want to have 2 different system/website subdirectory(php) under one website, not multiple website, but multiple directories. – Xianlin Jun 23 '14 at 09:21
  • So would that not be a subdomain then? `www.example.com` and `testing.example.com` This may help you http://stackoverflow.com/questions/9905378/nginx-subdomain-configuration – RiggsFolly Jun 23 '14 at 09:38
  • yes, that will solve my problem but what if I cannot create more sub-domains? I only are allowed to have one sub-domain which is `testing.example.com`? – Xianlin Jun 23 '14 at 09:58
  • My only suggestion then would be to change your hosting or move your testing to your local PC and not your hosted site. – RiggsFolly Jun 23 '14 at 10:00

0 Answers0