I have searched for a few days and tried various configurations through trial and error but I have not been able to correct my configuration. My specialty is in database design and development so server configuration has been challenging.
I am on a LEMP stack and I installed the Wave Framework. Wave is a PHP micro-framework that is built loosely following model-view-control architecture and factory method design pattern http://www.waveframework.com/wave/doc/index.htm
Surprisingly it's pretty easy to get on your server however I can't resolve one issue. On my server I added in the lines into my nginx config file the Wave suggested and I still get the warning "WARNING: Nginx HttpRewriteModule is not supported, Index Gateway and rewrite functionality will not work, this warning can be ignored if Index Gateway is not used"
Besides this I have been able to use a lot of the features of the Wave Framework and got a portion of my Model and Controller coded.
Please help, my config is pasted below.
nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768; }
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
rewrite_log on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-enabled/default (i changed my domain name)
server { listen 80;
root /usr/share/nginx/www; index index.php; server_name *.example.com;
# This is for making sure that files in /resources/static/ folder don't get parsed with PHP
location ^~ /resources/static/ {
break;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; }
# Rewrite that directs everything, except PHP to index file
# Make sure you place this before your "location ~ .php$ {" for the server configuration.
location / {
rewrite ^(.*)$ ./index.php last;
}
# Pass php scripts to the php engine
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;
} }
http://www.example.com/tools/compatibility.php (output for my domain - wave framework)
SUCCESS: PHP is version 5.3.0 or above (running 5.5.9-1ubuntu4.3)
SUCCESS: PHP setting short_open_tag is enabled
SUCCESS: PDO is supported
SUCCESS: PDO MySQL is supported
...
WARNING: Mcrypt PHP extension is not supported, this is optional and used only when API requests are made with www-crypt-input and www-crypt-output requests
SUCCESS: Zip is supported
SUCCESS: FTP is supported
WARNING: Memcache is not supported, this can be ignored if you do not intend to support Memcache as a caching layer
SUCCESS: GD Graphics Library is supported
SUCCESS: Nginx server is used
WARNING: Nginx HttpRewriteModule is not supported, Index Gateway and rewrite functionality will not work, this warning can be ignored if Index Gateway is not used
SUCCESS: /filesystem/ is writable
SUCCESS: /filesystem/cache/ is writable
...
SUCCESS: /filesystem/data/ is writable
I am not worried about the other warnings beyond the HttpRewriteModule Thank you in advance!
So I (with help) answered my own question. Anyone who tries Wave Framework with Nginx will encounter this (at least with 3.7.1 current release). Wave Framework has a bug with the Nginx HTTPrewriteModule and the config file the provide for you to implement into your Nginx config is wrong. Below is my etc/nginx/sites-enabled/default config file that works for me.
# this file is /etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
access_log /var/log/nginx/default/access.log;
error_log /var/log/nginx/default/error.log;
root /var/www/default;
index index.php index.html index.htm;
# domain names of this vhost (important if there are more
# than one vhost on the same IP:PORT combination)
server_name localhost mydomain.com alias.mydomain.com;
# deny access to .htaccess files
location ~ /\.ht {
deny all;
}
# deny access to hidden files, that is the ones which names that start
# with . (dot)
location ~ /\. {
deny all;
}
# This is for making sure that files in /resources/static/ folder don't get parsed with PHP
location ^~ /resources/static/ {
break;
}
# Uncomment to satisfy compatibility check for Nginx rewrite module
# (based on .htaccess delivered with Wave Framework)
# location ~ compatibility\.php$ {
# if ($query_string != rewrite_enabled) {
# rewrite ^(.*)$ $1?rewrite_enabled break;
# }
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
# }
location / {
rewrite ^(.*)$ /index.php last;
}
# Uncomment if you have a custom 404 page
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}