debian8+kvm+webvirtmgr 部署

RT 基本上难度也不是太大,不过webvirtmgr比较烦……真的……(估计我姿势不对
一、装环境(包括kvm nginx 以及webvirtmgr需要的py相关的组件)(参考资料1、2)

apt-get install qemu-kvm bridge-utils virt-manager virt-viewer git python-pip python-libvirt python-libxml2 novnc supervisor nginx sasl2-bin
git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
pip install -r requirements.txt # or python-pip (RedHat, Fedora, CentOS, OpenSuse)
./manage.py syncdb
./manage.py collectstatic

会让你设置一个webvirtmgr的管理员账号,输入用户名和密码设置即可
以后还需要添加的话用这个命令:

./manage.py createsuperuser

最后

mv webvirtmgr/ /var/www/

把文件夹挪到www下面(或者你喜欢的路径)
装完后先丢那边 网卡先不动,先配置nginx和webvirtmgr
二、配置nginx
(这里说明一下 我的版本是nginx1.8.0 不同版本的nginx略有不同,1.8.0的话也可以用于tengine)
其实也就是conf和站点设置,conf的设置可以参考我另外一篇博文:
tengine+php5+dz论坛部署
站点的设置我们参考官方的wiki:(参考资料2)

vim /etc/nginx/conf.d/webvirtmgr.conf

复制粘贴吧:

server {
listen 80 default_server;
server_name $hostname;
#access_log /var/log/nginx/webvirtmgr_access_log;
location /static/ {
root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var
expires max;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 1024M; # Set higher depending on your needs
}
}

保存然后重启一下
这样配置上后测试一下 至少主页还有登陆的功能应该已经可以访问了
三、配置webvirtmgr和kvm之间的通信
这一步很恶心。。。因为:
1、我当时的环境是localhost里面装kvm和webvirtmgr,然后本想用local socks的方式 但是却死活不通,后面只好放弃转而用tcp连接的方式,tcp连接方式适合于1台控制机器访问多台kvm机器,如果kvm和webvirtmgr在同一台机器,而且机器又要放到公网的话请务必注意安全(可以通过iptables或者上层的网络设备上对访问进行限制)
2、配置完了后发现无法连接,ss -nat观察发现端口没起来。。。喵喵喵?
3、配置tcp通信的账号密码的时候密码不能粘贴。。。只能手打。。。特神奇。。。
总之开始吧
按照官方文档 我们配置一下tcp通信用的账号密码(参考资料2)

saslpasswd2 -a libvirt <用户名>

提示让你输入密码:

Password: xxxxxx
Again (for verification): xxxxxx

然后检查一下

sasldblistusers2 -f /etc/libvirt/passwd.db

应该会有如下提示信息:

<用户名>@webvirtmgr.net: userPassword

顺便说一下,删除账号的命令是

saslpasswd2 -a libvirt -d <用户名>

设置好账号密码后 测试一下通信

virsh -c qemu+tcp://<目标主机>/system nodeinfo
Please enter your authentication name: <用户名>
Please enter your password: xxxxxx

正确的话就会显示目标物理机器的硬件信息
如果提示:

error: unable to connect to server at 'host:16509': Connection refused
error: failed to connect to the hypervisor

说明你也踩到我这一章节开头写的第二个坑了。。。解决方案如下(参考资料3)

sed -i 's/#listen_tls = 0/listen_tls = 0/g' /etc/libvirt/libvirtd.conf
sed -i 's/#listen_tcp = 1/listen_tcp = 1/g' /etc/libvirt/libvirtd.conf
sed -i 's/#auth_tcp = "sasl"/auth_tcp = "none"/g' /etc/libvirt/libvirtd.conf
vim /etc/default/libvirtd
找到#libvirt_opts = ""
修改为:libvirt_opts = "-d -l"

增加-l监听tcp
然后 service libvirtd restart 之后…… 卧槽?服务为什么起不来?
总之这个服务再也没起来过。但是问题却解决了(端口开始监听中)。。。这一点不明所以。。。但是的确可用。。。如果有知道原因的人还请指教一番
最后,访问webvirtmgr,配置一下tcp连接

Label 设置个名称
第二个地方输入服务器地址,我是本机就直接输入localhost了
用户名和密码 写这一章节开头我们设置的用户名和密码,点击添加 正常的话就会出现图片里左侧那个绿色的框框
然后点名字 进入管理页面
三、配置网桥(参考资料4)
当然你是nat模式那我就不说啥了。。。不过我们应该都用网桥模式吧。。。
虽然用brctl会很简单,但是如果机器需要重启的话 你除非设置了开机自动设置 否则会很蛋疼,所以我们直接vim一下interfaces写死在里面好了,我们也默认走eth0

vim /etc/network/interfaces
auto br0
iface br0 inet static
address <本机ip>
netmask <掩码>
gateway <网关>
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

:wq保存一下
然后service networking restart 理论上就生效了(有时候则是两个一起生效?好像是的。。。总之重启一下也是可以的……重启大法好~)
之后我们到webvirtmgr,配置一下网络

大概是这个样子,桥接名称要和interfaces里面的一致(一般也都会写br0的吧……)
创建后就完成了
四、开一个虚拟机 并装好系统
webvirtmgr使用了存储池的概念,需要先设置一下磁盘文件、iso文件都在哪里


非常简单易懂了。。。
创建好后,把iso文件丢到那个设置的路径里即可
然后我们开始开虚拟机

里面自带了一些预设 并支持自定义配置(New Flavor)、导入XML(From XML)等
创建好后在这里挂载已经上传好的iso(这里的截图是开机状态,默认创建好是关机的,我只是随手找了一台虚拟机截图而已~)

在Access里面 可以设置控制台的方式(vnc或spice),还可设置控制台密码,以及启用控制台也在里面
一切就绪后 Power里开机即可,然后开控制台安装系统~不喜欢网页vnc的话也可以用自己的vnc,也是支持的=w=
这个控制台的优点在于http,比V*ware家的那个flash控制台不知道高到哪里去了~
而且支持一个控制台控制多个主机,功能也很强大,也可以针对已经配置好的机器再进行配置修改,甚至是直接编辑xml等,还有一些很细节的地方,比如可以单独设定一个网卡开机启动,或者单独设定一台机器是否开机就启动这样的
参考资料:
1、webvirtmgr安装:https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr
2、webvirtmgr-tcp方式连接配置:https://github.com/retspen/webvirtmgr/wiki/Setup-TCP-Authorization
3、Linux下开启Libvirtd的tcp监控:http://yansu.org/2013/03/25/open-tcp-port-of-libvirt.html
4、如何在 Ubuntu 上搭建网桥:https://linux.cn/article-7605-1.html

听说你不会装系统……手把手教你装原版Win10

RT 断断续续被好多人问过到底要怎么装……这里就说说怎么装。。。
背景:新的电脑(电脑上没有任何数据)(这点很重要因为有数据的要蛋疼的多,尤其是没开UEFI的话)
准备工作:等待安装的电脑一台(废话),8G以上的U盘一个(别是坏的就行)
一、下个镜像……
由于一直在用itellyou,所以也直接建议到itellyou上寻找ISO
访问http://msdn.itellyou.cn/
按照如下指示点击

复制这个ed2k,去下载。。。
二、写到U盘里
这里推荐用UltraISO
官网地址:http://cn.ezbsystems.com/ultraiso/index.html
虽然是付费软件,但是免费试用其实就可以了,当然如果以后也用得到的话还是建议买,因为……(我跟你讲这软件超便宜,国人只要30 RMB,如果是外国人就要将近30刀(200块左右))
下载下来后安装,装好后打开这个应用,然后应用内选择打开,选择你下载好的ISO来打开这个ISO

(点击红框内的打开 然后找到你的ISO即可,我这里用的老版本的win10 仅供演示)
打开后,插入你的U盘(如果里面有文件的话记得备份,写U盘的时候会抹掉里面所有的东西)
之后选择启动–>写入硬盘镜像,如下图

打开后,硬盘驱动器确认是你的U盘,然后刻录校验打勾,最后点击“写入”,之后会提示你数据会丢失是否继续的字样,点“是”即可

等待写入完成并校验成功后会有提示刻录完成字样,这样这一步就结束了。
三、装机前的BIOS设置
要装的机器 进BIOS 这里拿笔记本做演示(台式机手头没资源……笔记本的话BIOS目前基本都差不多,所以好找)
主要是要确保:1、AHCI开启 2、UEFI开启

在Advanced里面 有一个SATA Operation,确认是否为AHCI,如果是IDE请改为AHCI(RAID不在此篇文章讨论范围内)

在Boot里面 确认Boot List Option是否为UEFI,如果不是请改为UEFI

这两项改好后,到Exit里,选择Save Changes and Reset,保存退出

四、安装系统
BIOS改完后 U盘插到电脑上,重启后会自动引导U盘的UEFI进入到安装页面
这一步开始我没有太多照片,所以只能提供手头有的照片,以后慢慢补齐
1、输入序列号,这里如果没有的话可以选择跳过,有的话请正常输入,会自动识别版本
2、如果选择跳过后,会让你选择要安装的版本,这里要注意:家庭版可以升级到专业版,专业版不能降到家庭版,家庭版安装好后如果有专业版的序列号则可以升级到专业版,而专业版安装好后如果有家庭版的序列号后只能选择重装来安装家庭版
3、一路下一步后,会问你是“升级”还是“自定义”,这里我们选择“自定义”
4、进入到分区页面,由于设定上我们是一个新电脑,所以需要从头开始分区
这里要注意一下,如果你是SSD的话,除了系统所需的引导分区外,请不要分多个分区(敲黑板)
如果是机械硬盘的话,分一个适当的即可,比如系统建议在120GB以上
点击新建后,这里需要输入的数字的单位是MB,用计算器简单算一下,120(GB)*1024=122880(MB),输入122880,点应用后即可分出一个120G的分区
分区的时候会提示你需要创建系统引导的隐藏分区,点是即可
分完后如果你需要的话可以继续点新建,来分好你所需要的D、E等分区
如果你分了多个区后,记得分完后务必点击一下列表里的你的第一个分区(作为系统盘来选中),然后点击下一步
这样就开始了系统安装的过程,安装过程大概需要不到10分钟即可完成,当提示重启的时候,将U盘拔出 重启即可
重启后就进入了系统设置阶段,请一路按照指示进行即可,在提示是否快速设置或自定义的地方,请选择快速设置。
然后就。。。进桌面了。。。
你的系统装完了。。。
你可以装驱动了。。。

tengine+php5+dz论坛部署

RT~业务上需要跑一个html页面,一个下载业务,和一个dz论坛,并且上反代,且在请求到任何其他奇怪的地址的时候均跳转回首页
这里假设域名是www.abc.com、dl.abc.com、bbs.abc.com
环境上 大致的情况就是:
用户访问公网IP到达机器A
机器A里面开一个虚拟机B
访问A后 通过反代 再请求作为源站的B即可
用到的工具有:tengine、php5(7不行,dz X3.2不支持7)、mysql、DZ UTF-8 简中 X3.2版
简单介绍下,tengine属于nginx的淘宝魔改版本~在nginx上增加了很多新的功能,简单的配置的话参数是一致的
一、安装所需的程序
这里系统仍然是debian(这次是8.5 x64)由于我使用的apt源自带tengine 所以不需要编译安装,直接apt-get即可

apt-get install tengine php5 php5-fpm php5-common php5-gd php5-mysql php5-cli php5-json php5-readline mysql-server-5.5

这些都不解释、也没啥要配置的,mysql那里会让你设置root的密码,设一个就OK
dz的话 请各位自行去官网复制链接 然后wget后unzip即可,这里不做过多说明
这次没用到phpmyadmin,因为安全事故频发,有点不是太放心,况且也没啥需求,导入数据库什么的敲命令也OK的
完事后 mysql 进去 设置个单独的账户给dz用
二、配置dz要用的到的mysql

mysql -u root -p

#登陆mysql

create database bbs;

#创建名为bbs的数据库

grant all privileges on bbs.* to bbs@localhost identified by '123456';

#创建名为bbs的用户,密码为123456,并赋予其对bbs数据库的全部权限
这部分直接从我的第一篇博文里面复制过来的了。。。反正都一样
3、解决第1、2个需求
两者实际是同一个功能,所以合二为一来讲,后者只是没有index而已
首先 创建一个放网页的目录。。。不解释,我们丢到/var/www下面吧,2个目录,一个是HTML的,目录叫www,另一个提供下载的目录叫dl

mkdir /var/www/www /var/www/dl

然后可以先把你需要提供的内容丢到对应目录里,这里我们就touch一个index.htm在www和dl的下面,方便后续测试

touch index.htm
echo hello >> index.htm

分别cp到各自的文件夹,懒得打命令了
之后,编辑tengine的配置文件,由于是nginx的魔改,所以配置文件仍然叫nginx.conf,路径在/etc/nginx

vim /etc/nginx/nginx.conf

这里面大部分东西都不需要你改,基本上只是添加新的东西而已
我们找到开头写着http { 的那一行
然后找到这个大括号的“}”部分(全新的配置文件一般都是在最下面)
之后按下i进入编辑模式,在“}”的上面敲回车空出几行来 粘贴如下内容(以下内容由叼炸天的朋友erevus提供~点击名字可进入他的个人站点,这是一位经验丰富的安全工程师~)

server {
listen 80;
server_name www.abc.com abc.com;
root /var/www/www/;
index index.htm;
}

(空格粘贴过来的时候乱掉了。。。不过不影响,我也没强迫症,你们自己有强迫症的话自己看着办吧2333333)
这一行由于也带上了对php的支持,我懒得删了。。。反正不影响。。。大致注意以下几点:
1、listen 后面跟着端口号 表示监听哪个端口
2、server_name 后面跟着域名 如果是多域名的话(包括www和@)用空格隔开
3、root 后面跟着放着网页的物理路径 不解释
4、index 后面跟着你的index页面的文件名,记得带后缀
5、需要多域名指向多文件夹的话 跟着这个的后面,再复制粘贴一次,然后按照上面1~4的说明,来改成你对应业务的所需即可
然后:wq 保存退出

service tengine restart

理论上不会有任何报错信息,然后直接请求的话 就会发现可以请求到你需要的内容了~
四、上dz
先编辑一下php-fpm,直接安装的里面 缺东西。。。略蛋疼

vim /etc/php5/fpm/php-fpm.conf

直接拉到最下 输入这几行:

listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
listen.backlog = -1

如果这三个都有了就忽略吧。。。我这里不知道为啥进去后发现这三个参数都没有
第一个是监听的端口
第二个是保证只有127.0.0.1可以访问,如果你这是后端机器 则可能需要修改一下
第三个。。。想不起来了!自行谷歌吧。。。
配置完后
还是和刚才一样,搞个放论坛的目录,这里我们就叫bbs

mkdir /var/www/bbs

然后 把dz丢进去~
这里注意,dz由于权限要求,所以需要你给一下可读可写可删除可改等权限

chmod -R 777 /var/www/bbs/

(这里要注意,我这只是一个为了调通而偷懒的说明,全部777的话有可能会因为有漏洞进而被黑,然后被挂webshell,请各位站长务必注意)
之后编辑一下nginx.conf

vim /etc/nginx/nginx.conf

这里稍加不同,比上面的多了点东西

server {
listen 80;
server_name bbs.abc.com;
root /var/www/bbs/;
index index.htm index.html index.php;
location ~ .*\.php(\/.*)*$ {
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
}

主要是多了一个fastcgi_pass 这里指向你php刚才设置的listen即可,注意端口和IP都别输错了
完事后:wq保存退出

service tengine restart

重启后 dz的要求是http://你的域名/install 这样访问即可开始论坛初始化
一路下一步 按照说明走 就问题不大了~
五、访问奇怪的地址时跳转回主站(www)
这个挺简单的。。。直接

vim /etc/nginx/nginx.conf

然后复制粘贴如下 还是到http 里面

server {
listen 80 default;
rewrite ^(.*) http://www.abc.com permanent;
}

:wq保存退出,重启服务端即可
然后你可以测试一下 比如浏览器上直接输入IP访问 会发现可以跳转到这里了
六、反向代理
迟来的更新……这一步居然是最简单的。。。
还是添加解析到nginx.conf即可

server {
listen 80;
server_name bbs.bilicraft.com;
access_log /var/log/nginx/bbs.access.log main;
error_log /var/log/nginx/bbs.error.log error;
location / {
proxy_pass http://172.16.1.2:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}

其中 proxy_pass写目标机器的IP和端口,保存退出
然后重启一下tengine,顺带一提 nginx也是可以反代的,但是要去掉access_log结尾的main和error_log结尾的error,nginx不认这俩的,不去掉重启会报错
这样就全部完成啦~

如何安装etherpad

不是很难的教程,不过很想吐槽windows双击就能运行,而linux需要自己装几个东西才行的这个蛋疼的事情。。。淦。。。
1、安装:
这里有部分教程:https://github.com/ether/etherpad-lite#installation
在这里我是debian 就选择:

apt-get install gzip git curl python libssl-dev pkg-config build-essential

然后你需要一个nvm来安装指定的版本(node v0.10.x)

git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

然后

vim ~/.bashrc

把这一行添加到末尾

source ~/.nvm/nvm.sh

:wq保存退出,然后关了SSH重开一下
然后安装node v0.10.37:

nvm install v0.10.37

 
接着确认一下版本是否是我们需要的

node --version

提示 v0.10.37 安装成功
接着从git上拉下来etherpad

git clone git://github.com/ether/etherpad-lite.git
cd etherpad-lite/bin/

启动应用:

./run.sh --root

 
教程就此完成,访问方式为:http://你的IP:9001/
简单的玩法就是这样,当然etherpad还支持mysql等高端玩法,由于我这里没有这个需求,所以暂时意义不大,有兴趣和有需求的话可以搜搜其他教程

Debian下部署vsftpd

虽然可以使用sftp,但是在某些应用下(比如wordpress,wordpress和wordpress)安装插件/主题的时候却只支持ftp,所以仍然还是需要使用到ftp,搜了一下找到了这一篇文章:http://wushuaishuai.blog.51cto.com/3432229/753071,对照着这个文章搞定了vsftpd使用系统账户的配置方法,以及对照着老大higkoo以前的文章搞定了虚拟账户的配置方法。以下正文
另,仍然是懒,所以用的root账户,非root账户记得加sudo
vsftpd 区分两种账户模式,系统账户与虚拟账户,前者可以直接通过系统自带的账户登陆,后者不需要创建系统账户,而是通过写配置文件来达到目的
一、使用系统账户
1、安装vsftpd
没啥难度,直接apt-get即可

apt-get install vsftpd

东西不大,基本上1分钟内就下载完并安装好了
2、创建和配置用户

adduser 用户名

#创建的时候会先让你输入两次密码,然后会跟你索要各种信息,有点通讯录的感觉,总之全部空着回车后问你是否正确,按下Y然后回车即可

adduser 用户名 ftp

#这个命令是把这个用户加到ftp组下,格式为adduser 用户名 组名

mkdir /home/用户名

#建立一个文件夹作为ftp账户的默认显示文件夹,这个大家可以根据需要自行调整

chmod -R 775 /home/用户名

#设置此目录下所有文件和子目录的读、写、执行权限

chgrp -R ftp /home/用户名

#设置此目录下所有文件和子目录属于ftp组

vim /etc/passwd

进入后找到写着你的用户名的那一行,格式为:

用户名:x:100*:100*:,,,:/home/用户名:/bin/bash

(星号为不确定数字,一般会根据创建账号的先后而逐渐增长,默认第一个为1000)
如果后期需要修改home目录位置的话,可以在这里直接修改目录
在这个地方我们需要先设置此账户改为不允许登陆状态,把/bin/bash删除,并改为/usr/sbin/nologin,修改完成后的样子为

用户名:x:100*:100*:,,,:/home/用户名:/usr/sbin/nologin

保存后退出

vim /etc/shells

检查此文件内有没有/usr/sbin/nologin这一行,没有的话在结尾添加即可
3、配置vsftpd配置文件

vim /etc/vsftpd.conf

最基础的几个需要修改的地方为:

anonymous_enable=NO
#关闭匿名用户有
local_enable=YES
#允许本地用户访问
write_enable=YES
#允许写入
local_umask=022
#上传文件的掩码为22(虽不明但觉厉,还没去查有什么具体用途,总之先改掉了)
chroot_local_user=NO
#禁止本地用户登录
chroot_list_enable=YES
#允许列表里的用户登录,这里设置为YES后必须设置下面的列表
chroot_list_file=/etc/vsftpd.chroot_list
#设置列表路径(此文件内直接输入用户名,一行一个)

保存后退出
由于启用了chroot,所以需要给根目录下放一个文件夹,来保证可写入,并设置根目录不可写
到达根目录后

chmod a-w /home/用户名

然后进去后人工创建一个目录来保证可以上传到这个文件夹内

service vsftpd restart #重启vsftpd服务

经过以上的配置,就可以直接通过21端口来使用ftp协议了
二、使用虚拟账户
1、安装vsftpd和db5.3-util

apt-get install vsftpd db5.3-util

2、创建FTP登陆后放文件文件夹,这里我把文件夹丢到/var下面

mkdir /var/ftp

3、给ftp文件夹ftp权限

chown ftp:ftp /var/ftp

4、touch出我们用的到的配置文件(debian需要先mkdir)

mkdir /etc/vsftpd/
touch /etc/vsftpd/{chroot-list,user-list,issue,accounts,create.sh} /etc/pam.d/vsftpd.ftp

5、给虚拟账号的密码加密

openssl req -newkey rsa:2048 -x509 -nodes -days 3650 -out /etc/vsftpd/vsftp-cert.pem -keyout /etc/vsftpd/vsftp-cert.pem

6、修改配置文件,案例见下

anon_mkdir_write_enable=NO
anon_root=/dev/zero
anon_upload_enable=NO
anon_world_readable_only=YES
anonymous_enable=NO
banner_file=/etc/vsftpd/issue
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot-list
allow_writeable_chroot=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user-list
data_connection_timeout=120
dirmessage_enable=NO
ftpd_banner=Welcome to ops ftp.
guest_enable=YES
guest_username=ftp
hide_file={\.*}
idle_session_timeout=600
listen_ipv6=NO
connect_from_port_20=NO
ftp_data_port=50234
listen_port=21
listen=YES
local_enable=YES
local_umask=022
log_ftp_protocol=YES
syslog_enable=NO
pam_service_name=vsftpd.ftp
passwd_chroot_enable=NO
pasv_enable=YES
pasv_min_port=62222
pasv_max_port=62333
tcp_wrappers=YES
use_localtime=NO
user_config_dir=/etc/vsftpd/roles
userlist_enable=YES
virtual_use_local_privs=YES
write_enable=YES
xferlog_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xfer.log
vsftpd_log_file=/var/log/vsftpd.log
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftp-cert.pem
max_per_ip=30
max_clients=200
ssl_ciphers=HIGH
require_ssl_reuse=NO
log_ftp_protocol=yes
dual_log_enable=YES
lock_upload_files=NO
allow_anon_ssl=YES

7、配置好虚拟账号的配置文件(这里我们叫ftp)

mkdir /etc/vsftpd/roles #创建这个文件夹,以后每个虚拟账号的配置都在这里单独配置
vim ftp #一个账号一个配置文件,文件名就是账号名
local_root=/var/ftp #文件夹位置
anon_world_readable_only=NO
write_enable=YES #允许写入
anon_upload_enable=NO

8、创建一个“创建账号脚本”,这个是一次性的,以后继续增加账号的时候只需要执行即可

vim /etc/vsftpd/create.sh
/bin/mv -fv /etc/vsftpd/accounts.db /tmp
/usr/bin/db5.3_load -T -t hash -f /etc/vsftpd/accounts /etc/vsftpd/accounts.db
/bin/chmod 0600 /etc/vsftpd/accounts.db /etc/vsftpd/accounts

:wq保存退出
9、配置/etc/pam.d/vsftpd.ftp,这个也是一次性的,设置好后不会再动

vim /etc/pam.d/vsftpd.ftp
auth sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/accounts
account sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/accounts

:wq保存退出
10、设定好账号和密码
vim

/etc/vsftpd/accounts

第一行写账号,第二行密码,第三行账号,第四行密码……以此类推
写完后:wq保存
11、

./create.sh 执行一下~

这里有个坑,第一次执行的时候会报一个找不到文件的错误,以后再运行就不会了
12、

service vsftpd restart

至此就搞定了账号了,如果需要添加新的账号的话,重复执行3、7、10、11、12即可
如果FTP登陆失败,提示:

500 OOPS: prctl PR_SET_SECCOMP failed
请在vsftpd.conf里加上seccomp_sandbox=NO

顺便在文章结尾附上配置文件里常用的可以调整的设置,这部分直接转载自文章开头所写出处。

#anonymous_enable 是否允许匿名ftp,如否则选择NO,默认允许匿名访问,
注意当允许是所有用户均视为匿名登录。
#local_enable 是否允许本地用户访问,是指VSFTP所在机器上的注册用户。
#local_umask=022 默认的umask码
#write_enable 是否允许本地用户修改和删除
#anon_upload_enable=YES 是否允许匿名用户上传
#anon_mkdir_write_enable=YES 是否允许匿名用户的写和创建目录的权限
#dirmessage_enable=YES 当切换目录时,是否显示该目录下message隐藏文件的内容
#xferlog_enable=YES 是否激活上传和下载的日志
#connect_from_port_20=YES 是否启动FTP数据端口20的连接请求
#chown_uploads=YES 是否改变上传文件的所有者
#chown_username=whoever 改变上传文件的所有者为whoever
#xferlog_file=/var/log/vsftpd.log 上传/下载日志文件所默认的路径
#xferlog_std_format=YES 是否使用标准的ftpd xferlog日志格式
#idle_session_timeout=600 是否将在用户会话空闲10分钟后被中断
#data_connection_timeout=120 是否将在数据连接空闲2分钟后被中断
#nopriv_user=ftpsecure 是否运行vsftpd需要的非特殊系统用户默认nobody
#async_abor_enable=YES 是否允许运行特殊的FTP命令async
#ascii_upload_enable=YES 是否启用上传的ascii传输方式
#ascii_download_enable=YES 是否启用下载的ascii传输方式
#ftpd_banner=Welcome to blah FTP service. 用户连接服务器后显示信息
#deny_email_enable=YES 是否允许某些匿名用户使用邮件地址(默认的)

Debian8中安装JAVA(JDK&JRE)

这次主要是为了帮一个用debian的朋友搞定MINECRAFT服务端而写的,依旧是和第一篇一样属于那种网上找了资料自己摸索着写的,原文地址:http://www.tsingpost.com/index.php/archives/463/
由于不是Centos,没法直接下载RPM包来安装,虽然看到debian可以通过apt-get来安装rpm或者是alien,但是咱装上后试图安装java的rpm结果失败了,懒得找原因,就干脆找别的办法去尝试,然后就搜到了这篇文章并且最终成功搞定
仍然是偷懒用的root账户,如果有其他账户的话记得命令前面加sudo
以下是正文:

1、下载最新的JDK

虽然很多人推荐去http://www.oracle.com/technetwork/java/javase/downloads/index.html这个地方下载,但是由于考虑到这里需要接受一个许可协议后才允许下载,对于直接在ssh上通过wget来获取就显得不那么方便了,所以我选择了去http://www.java.com/en/download/manual.jsp寻找,系统是debian 8 x64,注意版本不要搞错即可

wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=108139

#通过wget下载我人工复制的官网提供的最新的java
下载下来后会发现文件名比较奇葩,叫“AutoDL?BundleId=108139”,不用管,直接改个名字就好了,记住从这里下载到的是tar.gz后缀的

mv AutoDL?BundleId=108139 java8.tar.gz

#给下载好的文件改名
(可以使用TAB直接自动填充,会比较方便,显示出来的肯定不是这样的文件名,忽略即可)

2、解压缩到指定路径

模仿着最初来源里的原文,文章里提到的路径为/usr/lib/jvm,也没多想反正就往里面丢了,而后面看到了第3步我才明白其实丢哪里都行……

cd /usr/lib #到/usr/lib

mkdir jvm #创建一个叫jvm的文件夹
文件夹建立好后我们来解压缩刚下好的压缩包
cd #回到最初的默认文件夹(因为我当时就下载到了root默认的路径(也就是/root))

tar -xzvf java8.tar.gz #解压缩刚才下载好的java8

我下载到的版本是jre1.8.0.51,解压缩完成后多出来一个叫jre1.8.0_51的文件夹,为了方便输入改一下名字

mv jre1.8.0_51 jdk8 #给文件夹改名为jdk8

然后移动到刚才创建好的文件夹内

mv jdk8 /usr/lib/jvm #移动文件夹

3、配置环境变量

因为我是root账户所以可能会比较简单。。。不过大概非root账户应该也没啥差别,加一个sudo就可以了(我猜的)

cd #回到root默认目录
vim .bashrc #用vim打开.bashrc
在文件的结尾添加以下内容
export JAVA_HOME=/usr/lib/jvm/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc #重新读取一下让新加的代码生效

以上就是最基础的一些东西,到这里只是单纯为了运行个mc的服务端已经足够了,可以输入以下java -version来看下是否有版本号的输出信息,以及版本是否和你下载到的对应即可

在Debian7中部署wordpress

第一篇博文就写如何部署wordpress
最开始是在Google404 Not Found搜到的这一篇文章模仿着做的,来源:本文由 Daniel Sun 原创编译,出处:http://www.onlyke.com/html/13.html
结果搞的时候并不顺利,所以在搞定后就计划第一篇文章写这个~
由于日常工作中经常接触Debian,所以为了更熟悉这个系统便也给自己的服务器使用了debian
服务器则是从看板娘超可爱的GMO旗下的ConoHa租用的,最低配置一个月900日元,提供50G的SSD,1G内存和100M不限流量的带宽,性价比还是挺高的,坑爹的提供商,用邀请链接注册就给2000日元优惠券,不用就不给,后悔死了,顺便丢一下自己的邀请链接。

ConoHa酱~来源:http://xn--y8j1ek.com/profile 里面还有ConoHa的姐姐Mikumo以及声优配音的声音片段
正文:
由于没啥重要的东西其实是偷懒,所以就直接用的root账户安装的,设置并使用其他账号的用户记得在命令前面加sudo

1、装所需的程序

架设wordpress之前需要先安装如下程序
Apache2(nginx也可以,然而并不会用)
MySQL
php5
php5-mysql
php5-gd
(以及为了以后方便管理其实还是偷懒我装了一个phpmyadmin(最初的参考链接里面还写了libapache2-mod-auth-mysql和libapache2-mod-php5,但是不知道为什么我这里并没有安装成功,不过最后发现还是可以用就不管了~))

apt-get install apache2 mysql-server-5.5 php5 php5-mysql php5-gd phpmyadmin

安装mysql的时候会提示让你设置root的密码,设置好后别忘了就好
安装phpmyadmin的时候会提示你配置一下账号和密码以及mysql的账号和密码,一共会输入3次,输入之前看清让你输入的是哪个密码
安装完后可以试着访问一下,由于是境外服务器所以没有80白名单限制,iptables默认也直接关掉了仍然是懒,在本地直接输入地址(或IP)访问,能显示出Apache2的初始页面就说明apache这部分没问题了。

2、配置phpmyadmin

实际上这一块可以忽略的,但是我装了就配置吧。。。

vim /etc/apache2/apache2.conf

进入后在文件最结尾添加这行代码:

Include /etc/phpmyadmin/apache.conf

然后保存退出,重启apache

service apache2 restart

重启后在本地电脑上访问一下phpmyadmin来确认下是否运行正常,访问地址是http://你的域名(或IP)/phpmyadmin
不知道为什么我这里访问登录页面以及点登陆后要等很久,不知道在处理什么奇怪的东西,总之我这里是能用的。

3、配置数据库给wordpress使用

在phpmyadmin上可以直接通过创建数据表的方式来添加,比较简单

phpmyadmin添加数据库

使用命令方式配置则是

mysql -u root -p

#登陆mysql

create database wordpress;

#创建名为wordpress的数据库

grant all privileges on wordpress.* to wordpress@localhost identified by '123456';

#创建名为wordpress的用户,密码为123456,并赋予其对wordpress数据库的全部权限
4、建立虚拟站点
由于我这一台服务器内放置了2个不同的解析域名,所以需要配置虚拟站点。如果你的服务器内只放置wordpress的话则可以直接忽略此步,到第5步骤即可。
注意:以下仅提供适用于Apache2的设置方法
建立一个文件夹来放站点,这里我采取的是html文件夹放www的内容,另外建立一个wordpress文件夹放博客的系统

cd /var/www

#到达默认网页放置的路径

mkdir html wordpress

#创建html文件夹和wordpress文件夹
写虚拟站点文件

cd /etc/apache2/sites-enabled

#到达配置文件路径

vim wordpress.conf

#编辑wordpress配置文件(正常情况下不存在此文件)
添加内容如下:

<VirtualHost *:80>
ServerName www.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName blog.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/wordpress/
</VirtualHost>

然后保存退出即可,最后重启apache

service apache2 restart

5、安装wordpress
首先去wordpress官网获取wordpress,谷歌了一下发现提供多语种,果断访问中文页面:https://cn.wordpress.org/
官网提供了两种压缩包形式的wordpress,zip和tar.gz,这里我选择tar.gz格式打包的文件

wget https://cn.wordpress.org/wordpress-4.2.2-zh_CN.tar.gz

#下载源文件

tar -xzvf wordpress-4.2.2-zh_CN.tar.gz

#解压缩wordpress

cp -R wordpress /var/www/

#复制主程序到/var/www下面

chmod -R 777 /var/www/wordpress

#赋予此文件夹777的权限
以上,全部设置均完成,接下来就是访问你的blog,会有一个很人性化的页面来帮助你配置wordpress,包括设置wordpress的账号,连接到数据库等等。