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;
}
7
  • 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. Commented Jun 22, 2014 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? Commented Jun 23, 2014 at 8: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 Commented Jun 23, 2014 at 8: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. Commented Jun 23, 2014 at 9:21
  • So would that not be a subdomain then? www.example.com and testing.example.com This may help you stackoverflow.com/questions/9905378/… Commented Jun 23, 2014 at 9:38

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.