Created
December 9, 2012 21:13
-
-
Save cbmd/4247040 to your computer and use it in GitHub Desktop.
nginx config - dynamic virtual hosts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
index index.php; | |
set $basepath "/var/www"; | |
set $domain $host; | |
# check one name domain for simple application | |
if ($domain ~ "^(.[^.]*)\.dev$") { | |
set $domain $1; | |
set $rootpath "${domain}"; | |
set $servername "${domain}.dev"; | |
} | |
# check multi name domain to multi application | |
if ($domain ~ "^(.*)\.(.[^.]*)\.dev$") { | |
set $subdomain $1; | |
set $domain $2; | |
set $rootpath "${domain}/${subdomain}/www/"; | |
set $servername "${subdomain}.${domain}.dev"; | |
} | |
server_name $servername; | |
access_log "/var/log/nginx/server.${servername}.access.log"; | |
error_log "/var/log/nginx/server.dev.error.log"; | |
root $basepath/$rootpath; | |
# check file exist and send request sting to index.php | |
location / { | |
try_files $uri $uri/ /index.php?$args; | |
} | |
# allow php only in root index.php | |
#location ~ "^/index\.php$" { | |
# allow execute all php files | |
location ~ \.php$ { | |
try_files $uri =404; | |
fastcgi_split_path_info ^(.+\.php)(/.+)$; | |
fastcgi_pass unix:/var/run/php5-fpm.sock; | |
fastcgi_index index.php; | |
include fastcgi_params; | |
} | |
# configure phpmyadmin path | |
location /phpmyadmin { | |
root /usr/share/; | |
index index.php; | |
location ~ ^/phpmyadmin/(.+\.php)$ { | |
try_files $uri =404; | |
root /usr/share/; | |
fastcgi_pass unix:/var/run/php5-fpm.sock; | |
fastcgi_index index.php; | |
fastcgi_param SCRIPT_FILENAME $request_filename; | |
include fastcgi_params; | |
fastcgi_param PATH_INFO $fastcgi_script_name; | |
fastcgi_buffer_size 128k; | |
fastcgi_buffers 256 4k; | |
fastcgi_busy_buffers_size 256k; | |
fastcgi_temp_file_write_size 256k; | |
fastcgi_intercept_errors on; | |
} | |
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { | |
root /usr/share/; | |
} | |
} | |
location /phpMyAdmin { | |
rewrite ^/* /phpmyadmin last; | |
} | |
# disallow access to apache configs | |
location ~ /\.ht { | |
deny all; | |
} | |
# disallow access to git configs path | |
location ~ /\.git { | |
deny all; | |
} | |
# disallow access to yii code path | |
location ~ /(protected|themes/classic/views)/ { | |
deny all; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# sudo apt-get install dnsmasq | |
# echo "address=/.dev/127.0.0.1" >> /etc/dnsmasq.conf |
Nice thing, sadly you need LUA for this to work.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
additionally you should set
fastcgi_param SERVER_NAME $servername;
this will set in php "$_SERVER['SERVER_NAME']" variable to proper host name instead of plain "$servername"