Skip to content

Commit

Permalink
Fix and improve tests/vhosts + php_index vhost
Browse files Browse the repository at this point in the history
  • Loading branch information
Emilien Mantel committed Nov 2, 2015
1 parent c2644d4 commit 97c3d2e
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 5 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,12 @@ You can see many examples in: [tests/test.yml](tests/test.yml).
#### Templates

- `base`: static template
- `php`: PHP base template. Can work with many frameworks/tools.
- `wordpress`
- `dokuwiki`
- `phalcon`: Phalcon PHP Framework
- `php`: PHP base template. Can work with many frameworks/tools
- `php_index`: Same as above. But you can only run index.php
- `proxy`
- `wordpress`

Templates works as parent-child.

Expand Down
2 changes: 1 addition & 1 deletion templates/etc/nginx/sites-available/_base.j2
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ server {
{% if item.root is defined %}
root {{ item.root }};
{% else %}
root {{ nginx_root }}/{{ item.name[0] }}/public;
root {{ nginx_root }}/{{ item.name if item.name is string else item.name[0] }}/public;
{% endif %}
{% block template_index %}
index {{ item.index | default('index.html index.htm') }};
Expand Down
24 changes: 24 additions & 0 deletions templates/etc/nginx/sites-available/_php_index.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% extends "_php.j2" %}

{% block template_upstream_location %}
location = /index.php {
fastcgi_pass php;
fastcgi_index index.php;
{% if item.upstream_params is defined and item.upstream_params is iterable %}
{% for param in item.upstream_params %}
{{ param }}
{% endfor %}
{% endif %}
{% if nginx_version.stdout | version_compare('1.6.1', 'lt') %}
include fastcgi_params;
{% else %}
include fastcgi.conf;
{% endif %}
}
{% endblock %}

{% block template_custom_location %}
location ~ \.(php\d?|phtml)$ {
return 403;
}
{% endblock %}
14 changes: 12 additions & 2 deletions tests/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
redirect_from:
- 'www.test-php.local'
template: '_php'
- name: 'test-php-index.local'
template: '_php_index'
- name: 'test-proxy.local'
listen:
- 8080
Expand All @@ -48,16 +50,24 @@
- ../../
post_tasks:
- name: -- Add PHP file --
copy: dest="{{ nginx_root }}/test-php.local/public/index.php" content="<?php phpinfo();"
copy: dest="{{ nginx_root }}/{{ item }}/public/index.php" content="<?php phpinfo();"
with_items: ['test-php.local', 'test-php-index.local']
- name: -- Add HTML file --
copy: dest="{{ nginx_root }}/test.local/public/index.html" content="Index HTML test OK\n"
- name: -- VERIFY VHOSTS --
shell: "curl -H 'Host: {{ item.name[0] }}' http://127.0.0.1{% if item.listen is defined and item.listen is iterable %}:{{ item.listen[0] }}{% endif %}/"
shell: "curl -H 'Host: {{ item.name if item.name is string else item.name[0] }}' http://127.0.0.1{% if item.listen is defined %}:{{ item.listen[0] }}{% endif %}/"
with_items: nginx_vhosts
when: item.delete is undefined or not item.delete
changed_when: false
- name: -- VERIFY FORBIDDEN --
command: "curl -H 'Host: test-php-index.local' http://127.0.0.1/phpinfo.php"
register: f
failed_when: f.stdout.find('403 Forbidden') == -1
changed_when: false
- name: -- VERIFY REDIRECT VHOSTS --
shell: "curl -H 'Host: {{ item.redirect_from[0] }}' http://127.0.0.1/"
with_items: nginx_vhosts
when: item.redirect_from is defined and (item.delete is undefined or not item.delete)
changed_when: false
register: r
failed_when: r.stdout.find('301 Moved Permanently') == -1

0 comments on commit 97c3d2e

Please sign in to comment.