云主机折腾记录
我早就想搭一个自己的云主机来玩了,毕竟生命在于折腾。digitalocean 可以用 paypal 付款,所以就买了个乞丐版。
在这里记录下折腾过程,作为blog第一篇。
创建主机并调整
点击Create Droplet,选择$5/mo,San Francisco,CENTOS7.0x64,开始创建。
Singapore节点据说经过了DigitalOcean的线路优化,但我试了之后掉包依然严重,还是选择sf1节点。
创建好之后就可以用ssh登陆了,windows下就用putty好了。
更改ssh端口
vi /etc/ssh/sshd_config
找到#Prot 22,去掉#号,将22改成别的值(比如233),然后
systemctl restart sshd
更新
yum update
设置swap
对于512M内存的主机,swap还是有必要的。
创建swap文件,大小1G(或者512M,随意吧)
fallocate -l 1G /swapfile
或者
dd if=/dev/zero of=/swapfile bs=256M count=4
修改权限
chmod 600 /swapfile
确认文件信息
ls -lh /swapfile
设置swap
mkswap /swapfile
开始使用
swapon /swapfile
确认
swapon -s
查看内存
free -m
永久保存swap:
编辑fatab文件vi /etc/fstab
在最后加上一行
/swapfile swap swap sw 0 0
调整swap设置
将swappiness调低一点,降低swap的使用频率:
sysctl vm.swappiness=10
就是内存剩余10%的时候使用swap。
打开sysctl.conf
vi /etc/sysctl.conf
在最后加上:
vm.swappiness = 10
查看下:
cat /proc/sys/vm/swappiness
调整Cache Pressure:
sysctl vm.vfs_cache_pressure=50
再次打开sysctl.conf
vi /etc/sysctl.conf
在最后加上:
vm.vfs_cache_pressure = 50
查看下:
cat /proc/sys/vm/vfs_cache_pressure
安装配置shadowsocks
我使用的是shadowsocks-libev:
cd /etc/yum.repos.d/
wget https://copr.fedoraproject.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
yum update
yum install shadowsocks-libev
安装好了修改配置:
vi /etc/shadowsocks-libev/config.json
将server改成"0.0.0.0"或者自己主机的ip地址,加密方法("method")改成"aes-256-cfb"
然后启动:
systemctl start shadowsocks-libev
开机启动:
systemctl enable shadowsocks-libev
windows下的客户端:http://sourceforge.net/projects/shadowsocksgui/
配置lemp环境
nginx
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx
systemctl start nginx
systemctl enable nginx
mysql
改用 mariadb 了。
yum install mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb
运行安全脚本
mysql_secure_installation
按提示设置root密码(初始密码为空,直接enter),其余一路enter,完事。
PHP
选择php-fpm的方式运行。
yum install php php-mysql php-fpm
修改配置
vi /etc/php.ini
找到#cgi.fix_pathinfo=1,去掉#,将值改成0,即为:
cgi.fix_pathinfo=0
打开php-fpm配置
vi /etc/php-fpm.d/www.conf
修改listen值为:
listen = /var/run/php-fpm/php-fpm.sock
systemctl start php-fpm
systemctl enable php-fpm
修改nginx配置以支持php:
备份初始配置
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.old
新建default.conf
vi /etc/nginx/conf.d/default.conf
内容:
server {
listen 80;
server_name server_domain_name_or_IP;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
将 server_domain_name_or_IP 改为自己的域名,root /var/www/html; 改成根目录路径。
安装wordpress
首先增加MySQL数据库:
mysql -uroot -p
CREATE USER lowbi@'localhost' IDENTIFIED BY 'xxxxxx';
create database wordpress;
GRANT ALL PRIVILEGES ON lowbi.* TO 'wordpress'@'localhost' IDENTIFIED BY 'xxxxxx' WITH GRANT OPTION;
flush privileges;
其中lowbi、wordpress、xxxxxx改为自己的数据库用户名、数据库名和密码。
进入网站根目录:
cd /var/www/html
下载解压wordpress:
wget https://cn.wordpress.org/wordpress-4.1-zh_CN.tar.gz
tar -zxvf wordpress-4.1-zh_CN.tar.gz
cp -r wordpress/* .
rm -rf wordpress
rm -f wordpress-4.1-zh_CN.tar.gz
设置好域名的dns后,浏览器访问,就可以启动wordpress安装了。
后来我发现wordpress没法自动安装插件和主题,是因为nginx与php-fpm运行的用户不同,以及目录权限的问题,改了它:
vi /etc/php-fpm.d/www.conf
找到user和group字段,改成:
user = nginx
group = nginx
再改下网站目录的拥有人:
chown -R nginx:nginx /var/www/html
搞定!
如果需要更改wordpress固定链接为文章名的格式,需要设置nginx的rewrite:
vi /etc/nginx/conf.d/default.conf
将
location / {
try_files $uri $uri/ =404;
}
改为:
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
nginx反向代理gravatar和google fonts
gravatar 和 google fonts 服务经常不可用,导致wordpress网站加载超慢,有许多方法可以解决这个问题,比如用多说的gravatar服务器,禁止google fonts或者使用360的google fonts镜像等。我选择自己设置nginx反向代理:
用Nginx反向代理并缓存Gravatar来解决头像被墙:
http://www.lingchenzi.com/2014/11/nginx-reverse-proxy-gravatar.html
用 Nginx 反向代理 Google Fonts:
http://wangxianyuan.com/post/nginx-reverse-proxy-with-google-fonts
注意:
需要为你用来做反向代理的子域名添加dns解析;
设置好反向代理之后,还需要修改wordpress中的链接地址,推荐用wordpress插件的方式,比如修改gravatar的:
<?php /* Plugin Name: Gravatar Reverse Agent Plugin URI: Author: */
function my_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.low.bi",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'my_avatar'); ?>
将上面的代码保存为php文件,压缩为zip文件,再从wordpress后台上传安装该插件。
google fonts 的话可以用这个插件:
Replace Google Fonts,默认有个可用的镜像。
标准结尾
我的digitalocean推荐链接:https://www.digitalocean.com/?refcode=bdfd93364147
使用digitalocean前,别忘了搜个promo code用用。
参考资料
-
Swap:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7
-
shadowsocks:https://github.com/shadowsocks/shadowsocks-libev