index
Xampp Apache Web Server
1. Install Xampp.
$ sudo tar xvfz xampp-linux-1.8.1.tar.gz -C /opt
2. Stop all other http/ftp daemon. Below provides some commands to check.
$ sudo netstat -tunap | grep LISTEN $ ps aux | grep http $ ps aux | grep ftp
4. Go to firewall settings, add http and port 80 as trusted.
3. Start Xampp.
$ sudo /opt/lampp/lampp startapache
Jekyll with Github
Official Resources:
http://jekyllrb.com - jekyll official website
http://ruby.taobao.org - ruby taobao(China) mirror
http://mmistakes.github.io/minimal-mistakes/ - a good theme
Installation on Fedora 16
1. install ruby and rubygems
$ sudo yum install ruby ruby-devel rubygems
If use made-mistakes theme, we might need later version of ruby (>= 1.9.3)
Then we need to compile build it from source:
ruby-2.0.0-p247]$ ./configure --enable-shared && make ruby-2.0.0-p247]$ sudo make install
We'd better remove previous versions of ruby by:
$ sudo yum remove ruby ruby-devel rubygems
2. install jekyll
$ su -c 'gem install jekyll' - or - $ su -c 'gem install jekyll jekyll-minibundle'
Run A Local Server for Debug
In jekyll website stuffs directory:
$ jekyll --server - or - $ jekyll serve
Then open web browser to access:
http://localhost:4000
Ps: If access from other PCs, ensure the firewall has add port 4000 for trusted.
Thus Xampp could not be needed any more.
Deploy An Nginx Server
Refer to official site:
http://wiki.nginx.org/Install
Brief:
-
apt-get install nginx
-
To control:
nginx -s [ stop | quit | reopen | reload ]
Configuration files are placed in /etc/nginx/
:
sites-enabled/
and conf.d/*
will be included in nginx.conf
And sites-available/
is used for customization, linked as symbol into sites-enabled/
.
1. Basic http server example:
# sites-available/accrete.org.conf server { server_name .accrete.org; access_log /var/log/nginx/accrete.org.access.log; error_log /var/log/nginx/accrete.org.error.log; root /var/www/accrete.org/html; index index.php index.html index.htm; # use fastcgi for all php files location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to apache .htaccess files location ~ /\.ht { deny all; } }
2. Basic forward proxy example:
# conf.d/http_proxy.conf server { resolver 8.8.8.8; resolver_timeout 5s; listen 0.0.0.0:8080; access_log /var/log/nginx/proxy.access.log; error_log /var/log/nginx/proxy.error.log; location / { proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30; proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; } }
Deploy A Docker for Discourse on DO
Refer to official tutorial:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-digital-ocean.md
To use it along with Nginx, we need below extra steps since default 80 port is occupied already:
1. Modify /var/docker/containers/app.yml
## which TCP/IP ports should this container expose? expose: - "4578:80" # fwd host port 4578 to container port 80 (http) - "2222:22" # fwd host port 2222 to container port 22 (ssh)
2. Add a conf for Nginx to tell him to forward specific request to port 4578:
# sites-available/forum.accrete.org.conf upstream discourse { #fail_timeout is optional; I throw it in to see errors quickly server 127.0.0.1:4578 fail_timeout=5; } # configure the virtual host server { server_name forum.accrete.org; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; # pass to the upstream discourse server mentioned above proxy_pass http://discourse; } }