Hiphop-php HHVM working with Codeigniter and Nginx
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
I managed to make Codeiniter work with HHVM, using | |
nginx as a proxy. My problem was that hhvm has problems | |
with path_info, so I was not able to run /index.php/controller/action or | |
/controller/action/params -> /index.php/controller/action.params. | |
I used nginx as a proxy to hhvm. I changed the way codeigniter process | |
the url. Steps bellow: | |
Cleaned my HHVM .hdf file: | |
Server { | |
Port = 9000 | |
SourceRoot = /usr/share/nginx/www/mysystem | |
} | |
VirtualHost { | |
* { | |
Pattern = .* | |
} | |
} | |
Configure Nginx: | |
server { | |
server_name mymachine; | |
root /usr/share/nginx/www/mysystem; | |
index index.php index.html index.htm; | |
proxy_redirect off; | |
# Copy request_uri to variable $myuri before processing | |
set $myuri $request_uri; | |
location / { | |
# Check if a file exists, or route it to index.php. | |
try_files $uri $uri/ /index.php; | |
} | |
# Send *.php to Hiphop hhvm | |
location ~ \.php$ { | |
proxy_set_header MY_SCRIPT $myuri; | |
proxy_pass http://127.0.0.1:9000; | |
} | |
} | |
Changed Codeigniter file /application/config/config.php | |
$config['index_page'] = ''; | |
$config['uri_protocol'] = 'HTTP_MY_SCRIPT'; | |
Restart eveything and it is working for me |
So, what's the performance like?
Sounds great. Does anyone know how to port that to heroku ?
I made it work without any special conf
Yeah I'm wondering about the performance too. Is it much better on HHVM?
Also, has the path_info problem been resolved?
Has anyone cracked it yet? how does it affects?
- performance
- url structure
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is exactly what I'm looking for! I get it running and can load index.html files, but when I try to load a simple hello.php file (much less a CodeIgniter directory/controller), I get "Not Found" errors with nothing in the error.log file.
Any ideas? Thanks so much. Been trying to get this working for a long time!
EDIT: Never mind, got it working. It only works in a CI root directory. Thank you!