mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge pull request #3539 from halkyon/hhvm_nginx_docs2
Adding documentation for installing HHVM with nginx on Linux
This commit is contained in:
commit
73c52a6eeb
@ -28,6 +28,7 @@ To run SilverStripe on Linux/Unix, set up one of the following web servers:
|
|||||||
* [Install using Apache](webserver) - our preferred platform
|
* [Install using Apache](webserver) - our preferred platform
|
||||||
* [Install using Lighttpd](lighttpd) - fast, but a bit tricker to get going
|
* [Install using Lighttpd](lighttpd) - fast, but a bit tricker to get going
|
||||||
* [Install using Nginx](nginx) - Super fast at serving static files. Great for large traffic sites.
|
* [Install using Nginx](nginx) - Super fast at serving static files. Great for large traffic sites.
|
||||||
|
* [Install using nginx and HHVM](nginx-hhvm) - nginx and [HHVM](http://hhvm.com/) as a faster alternative to PHP
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
|
102
docs/en/installation/nginx-hhvm.md
Normal file
102
docs/en/installation/nginx-hhvm.md
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
# nginx and HHVM
|
||||||
|
|
||||||
|
[HHVM](http://hhvm.com/) is a faster alternative to PHP, in that it runs in a virtual machine
|
||||||
|
and uses just-in-time (JIT) compilation to achieve better performance over standard PHP.
|
||||||
|
|
||||||
|
Installation on Debian or Ubuntu is relatively straightforward, in that HHVM already provide
|
||||||
|
packages available to use:
|
||||||
|
|
||||||
|
Debian 7 (wheezy):
|
||||||
|
|
||||||
|
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
|
||||||
|
echo deb http://dl.hhvm.com/debian wheezy main | sudo tee /etc/apt/sources.list.d/hhvm.list
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install hhvm
|
||||||
|
|
||||||
|
Ubuntu 14.04 (trusty):
|
||||||
|
|
||||||
|
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
|
||||||
|
echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install hhvm
|
||||||
|
|
||||||
|
Please see [Prebuilt Packages for HHVM on HHVM wiki](https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM) for more ways to install.
|
||||||
|
|
||||||
|
Assuming you already have nginx installed, you can then run a script to enable support for
|
||||||
|
nginx and/or apache2 depending on whether they are installed or not:
|
||||||
|
|
||||||
|
/usr/share/hhvm/install_fastcgi.sh
|
||||||
|
|
||||||
|
For nginx, this will place a file at `/etc/nginx/hhvm.conf` which you can use to include in
|
||||||
|
your nginx server definitions to provide support for php requests.
|
||||||
|
|
||||||
|
In order to get SilverStripe working, you need to create a custom configuration file.
|
||||||
|
|
||||||
|
In your `/etc/nginx/silverstripe.conf`, add this configuration:
|
||||||
|
|
||||||
|
fastcgi_buffer_size 32k;
|
||||||
|
fastcgi_busy_buffers_size 64k;
|
||||||
|
fastcgi_buffers 4 32k;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri /framework/main.php?url=$uri&$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 404 /assets/error-404.html;
|
||||||
|
error_page 500 /assets/error-500.html;
|
||||||
|
|
||||||
|
location ^~ /assets/ {
|
||||||
|
sendfile on;
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
location ~ /(mysite|framework|cms)/.*\.(php|php3|php4|php5|phtml|inc)$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ /\.. {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ \.ss$ {
|
||||||
|
satisfy any;
|
||||||
|
allow 127.0.0.1;
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ web\.config$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ \.ya?ml$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ^~ /vendor/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~* /silverstripe-cache/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~* composer\.(json|lock)$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~* /(cms|framework)/silverstripe_version$ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
The above script passes all non-static file requests to `/framework/main.php` in the webroot which relies on
|
||||||
|
`hhvm.conf` being included prior so that php requests are handled.
|
||||||
|
|
||||||
|
Now in your nginx `server` configuration you can then include the `hhvm.conf` and `silverstripe.conf` files
|
||||||
|
to complete the configuration required for PHP/HHVM and SilverStripe.
|
||||||
|
|
||||||
|
e.g. `/etc/nginx/sites-enabled/mysite`:
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
root /var/www/mysite;
|
||||||
|
server_name www.mysite.com;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/mysite.error.log;
|
||||||
|
access_log /var/log/nginx/mysite.access.log;
|
||||||
|
|
||||||
|
include /etc/nginx/hhvm.conf;
|
||||||
|
include /etc/nginx/silverstripe.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
For more information on nginx configuration, please see the [nginx installation](nginx) page.
|
Loading…
Reference in New Issue
Block a user