由于某些你懂的原因,笔者最近购买了一个64MB内存的VPS,用来搭建Shadowsocks服务端。64MB的内存虽然非常小,但用来跑Shadowsocks那是绰绰有余的,为了不至于浪费资源,笔者想到了把Blogger上的博客搬到这个服务器上。
做一个Web服务器,首先要保证服务器流畅运行,不经常宕机,所以要选择效率高、占用资源少的程序,经过多次折腾,最终确定的方案如下:
- 操作系统:Debian 7.0 x86 minimal
- Web服务端:Nginx + PHP
- 数据库:SQLite
- Blog程序:Z-Blog PHP版本
1、配置Debian系统
先在VPS的控制面板安装Debian 7.0 x86 minimal,当然也可以选择安装标准版,看个人喜好。
为了安装各种软件的最新版本,可进入终端执行以下命令:
添加第三方源dotdeb.org
add-apt-repository 'deb http://packages.dotdeb.org wheezy all'
add-apt-repository 'deb-src http://packages.dotdeb.org wheezy all'
安装dotdeb.org证书
wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
添加PHP 5.6源
add-apt-repository 'deb http://packages.dotdeb.org wheezy-php56 all'
add-apt-repository 'deb-src http://packages.dotdeb.org wheezy-php56 all'
添加Nginx源
add-apt-repository 'deb http://nginx.org/packages/mainline/debian/ wheezy nginx'
add-apt-repository 'deb-src http://nginx.org/packages/mainline/debian/ wheezy nginx'
安装Nginx证书
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
至此,各软件所需的源添加完成,更新源列表
apt-get update
然后安装一些常用的系统软件(可选)
apt-get install logrotate screen dialog syslogd dash
2、安装Nginx服务端
进入终端执行以下命令:
apt-get install nginx
3、安装PHP运行环境
进入终端执行以下命令:
apt-get install php5 php5-fpm php5-gd php5-curl php5-sqlite
这是运行Z-Blog PHP版本所需的最少组件,还可根据需要安装其他组件,下面列出常用组件
apt-get install php5-common php5-xcache php5-mcrypt php5-cgi php5-cli php5-imagick php5-xmlrpc php-pear php5-dev php5-idn php5-mhash php5-pspell php5-recode php5-tidy php5-xsl php5-mysql php5-mysqlnd
如果想使用Mysql数据库,推荐使用php5-mysqlnd,可避免依赖库版本不对的问题
4、配置Nginx服务端和PHP运行环境
打开文件/etc/nginx/nginx.conf
,修改以下内容
#改运行用户
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main buffer=32k;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#开启gzip压缩
gzip on;
#禁止未绑定域名或直接用IP访问Web服务器,并直接跳转到自己的域名
server {
listen 80 default_server;
server_name _;
rewrite ^ http://www.zhangminghao.xyz$request_uri?;
}
#开启SSL端口,可选
server {
listen 443 default_server;
server_name _;
#设置SSL证书,可在startssl.com申请免费证书
ssl_certificate /etc/nginx/ssl.crt;
ssl_certificate_key /etc/nginx/ssl.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
rewrite ^ https://www.zhangminghao.xyz$request_uri?;
}
include /etc/nginx/conf.d/*.conf;
}
打开文件/etc/nginx/fastcgi_paramx,在最后增加以下内容,配置PHP运行环境
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
打开目录/etc/nginx/conf.d/
,其中已有两个示例文件,修改其中的内容
server {
listen 80;
#设置所监听的域名,可使用通配符*
server_name zhangminghao.xyz www.zhangminghao.xyz *.zhangminghao.xyz;
#可将zhangminghao.xyz域名跳转到www.zhangminghao.xyz
if ($http_host ~ "^zhangminghao.xyz$") {
rewrite ^(.*) http://www.zhangminghao.xyz$1 permanent;
}
location / {
#按需要设置网站根目录
root /var/www/;
index index.html index.htm index.php;
}
#设置禁止访问的目录
location /zb_users/data {
deny all;
}
#添加PHP支持
location ~ \.php$ {
root /var/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
配置文件修改完成后,测试配置文件,在终端中执行
nginx -t
如果配置没有问题,会显示以下内容
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx配置文件
nginx -s reload
可根据需要修改/etc/php5/fpm/php.ini文件
#设置PHP脚本占用最大内存
memory_limit = 32M
#POST方法提交最大限制
post_max_size = 8M
#上传文件最大限制
upload_max_filesize = 8M
5、上传Z-Blog PHP版文件
下载Z-Blog PHP版文件并上传到网站根目录,然后按照提示安装即可,支持在线安装模式。