Web服务器+NAS+DLNA+PPTP=800元

前言:

一直在使用Amazon的EC2,不过眼看着再有几个月就到期了,另外原来日本的EC2速度很快,现在可能用的人多了,过了下午就会变的较慢,国内的空间还死贵,因此需要自行想办法了。偶然间看到网上有卖微型主机的,价格便宜还是4核的,想来肯定比EC2单核1G的强多了,购买链接就不放了,只要在淘宝上找都能找到价格一般都差不多。机器是这样的:

front

back

一、安装Ubuntu Server

拿来先换上固态硬盘,加上内存,连电源,接上显示器、无线键鼠,外接DVD(也可以用U盘,因为手头有光盘,就用了光驱),先装了WIN7测试一下性能,跟店家说的基本一致,测试WIFI,音响都正常。

然后格式化硬盘,使用Ubuntu Server 14.04版本安装,在安装快结束时会提示tasksel进行套件安装,在这里选择加装Virtual Machine host,就是大名鼎鼎的KVM啦。

其实本文所有功能均可以在一台主机上实现,但是为了折腾又不想总把主机从柜子里拿出来接显示器接键盘重装系统,便利用了虚拟机,随便玩,玩坏了在主机上删除虚拟机再建一个就是了。而且为了安全起见,web服务器和家庭共享中心分别利用两台虚拟机,互不干扰,只需要把相应的端口从路由器上映射到两台虚拟机上就行了。

virtual

二、安装2个虚拟机

有了KVM接下来就是在这上面安装虚拟机了,这一块费了好大的劲,而且走了不少弯路,后来发现安装Ubuntu Server真的很简单。

第一步,建立一个准备安装操作系统的硬盘文件,我建立了一个位于vhost文件夹下的20G,qcow2文件,当然也可以选择raw格式,虽然性能上raw强一些,却少了snapshot快照,所以我选择qcow2。当然一会我们要在xml文件中修改,不然无法启动。

qemu-img create -f qcow2 /home/ivan/vhost/web-server.qcow2 20G

第二步,在命令行下使用virt-install,配合以下参数即可建立,为了标注方便我将代码分成了若干行,实际上这些代码需要写在一行里:

virt-install –name=web server //安装一个名称为web server的虚拟机

     –virt-type=kvm –hvm //采用的虚拟技术为KVM,后面的hvm我也不知道什么意思

     –ram=1536 //内存设定为1.5G,够用就好

     –vcpus=2 //提供2个CPU

     –network bridge=br0,model=virtio //采用网络桥模式接入路由器,方便将来远程操纵

     –graphics vnc,port=5901 //使用VNC的图形模式,不能用putty时查看运行情况

     –disk path=/home/ivan/vhost/web-server.qcow2,bus=virtio //定义虚拟机的硬盘文件位置及驱动模式

     –os-type=linux //操作系统类别为linux

     –cdrom=/home/ivan/usb/ubuntu-server.iso //定义安装镜像的位置

     –debug //开启除错模式

这样就建立起一个虚拟机了,内存1.5G,处理器双核,通过桥接进入路由器,方便使用端口映射。VNC纯属娱乐,可用可不用。

第三步,进入虚拟机控制平台,即virsh,不需要root权限。进入后可使用自带的命令进行查看、修改、停机、重启等工作,命令如下:

$virsh

   list –all  //列出所有的虚拟机

   destroy web-server //强制关掉web-server虚拟机

    reboot web-server //重启虚拟机,不过这个命令我没有成功过,提成完成但没重启

    start web-server //虚拟机关闭情况下开启虚拟机

    edit web-server //更改虚拟机的配置文件,通常是XML格式,默认使用vim打开编辑

我们在建立了硬盘和虚拟机之后需要使用edit web-server对其XML文件进行修改,先来看一下刚建完的虚拟机配置文件:

<!–

WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE

OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:

virsh edit ubuntu-server

or other application using the libvirt API.

–>

 

<domain type=’kvm’>

   <name>ubuntu-server</name>

   <uuid>4c7f19ff-cca8-81c7-c506-0cdca39efc7d</uuid>

   <memory unit=’KiB’>1048576</memory>

   <currentMemory unit=’KiB’>1048576</currentMemory>

   <vcpu placement=’static’>1</vcpu>

   <os>

    <type arch=’x86_64′ machine=’pc-i440fx-trusty’>hvm</type>

     <boot dev=’hd’/>

   </os>

   <features>

    <acpi/>

     <apic/>

     <pae/>

   </features>

   <clock offset=’utc’/>

   <on_poweroff>destroy</on_poweroff>

   <on_reboot>restart</on_reboot>

   <on_crash>restart</on_crash>

   <devices>

     <emulator>/usr/bin/kvm-spice</emulator>

     <disk type=’file’ device=’disk’>

       <driver name=’qemu’ type=’raw’/>

       <source file=’/home/ivan/vhost/ubuntu-server.qcow2’/>

       <target dev=’vda’ bus=’virtio’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x05′ function=’0x0’/>

     </disk>

     <disk type=’block’ device=’cdrom’>

       <driver name=’qemu’ type=’raw’/>

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>

     </disk>

     <controller type=’usb’ index=’0′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x01′ function=’0x2’/>

     </controller>

     <controller type=’pci’ index=’0′ model=’pci-root’/>

     <controller type=’ide’ index=’0′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x01′ function=’0x1’/>

     </controller>

     <interface type=’network’>

        <mac address=’52:54:00:60:b5:b0’/>

       <source network=’default’/>

       <model type=’virtio’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x03′ function=’0x0’/>

     </interface>

     <serial type=’pty’>

       <target port=’0’/>

     </serial>

     <console type=’pty’>

       <target type=’serial’ port=’0’/>

     </console>

     <input type=’mouse’ bus=’ps2’/>

     <input type=’keyboard’ bus=’ps2’/>

     <graphics type=’vnc’ port=’-1′ autoport=’yes’/>

     <sound model=’ich6′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x04′ function=’0x0’/>

     </sound>

     <video>

       <model type=’cirrus’ vram=’9216′ heads=’1’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x02′ function=’0x0’/>

     </video>

     <memballoon model=’virtio’>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x06′ function=’0x0’/>

     </memballoon>

   </devices>

</domain>

相信有些服务器基础的应该都能明白里面是什么意思,我们需要修改的两处:

1. <boot dev=’hd’ />需要改成cdrom,表示从cdrom文件中启动。

2. 需要把cdrom的文件位置给重新设置一下,现在的是:

<disk type=’block’ device=’cdrom’>

       <driver name=’qemu’ type=’raw’/>

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>

</disk>

需要改成这样:

<disk type=’file’ device=’cdrom’> //要把类型block改成file

       <driver name=’qemu’ type=’raw’/>

       <source file=’/home/ivan/ubuntu-server-14.04.2.iso’/> //ISO文件位置

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>//这一行不加也可以,重启后会自动添加

</disk>

然后就可以开机了,不过虽然开了机却没有办法安装,这时候vnc就来作用了,我们只需要在vnc的服务器地址中输入主机的IP,后面加上在XML文件中设置的VNC端口号就可以像正常的显示器一样显示出安装界面了,然后就心情的使用web服务器吧,是安装LAMP还是LNMP随意,可以参考之前的文章:AWS-EC2建立wordpress及问题处理

三、建立samba服务器并共享其他虚拟机

接下来用同样的方法建立第二台虚拟机,我们命名为home-nas,这台机器上我们需要安装Samba服务器、FTP服务器、dlna服务器、pptp服务器、Shadowsocks服务器,用途如下:

Samba服务器:用于家里多台电脑、平板、手机文件共享,比如可以把小电影放上去,随时看;

FTP服务器:说实话用处不大,只是在家外连上FTP传输速度会比Samba快一些,还可以断点续传;

dlna服务器:有些电视机不识别Samba只识别dlna,可以共享一些视频和孩子照片给老人大屏观看;

pptp服务器:家里网络是电信,为了在外面方便使用家里的Samba和配置服务器的;

Shadowsocks服务器:仅供学习使用,再就是如果公司不允许访问的网站可以上一下,比如人人网。

 

接下来一个一个来安装吧:

1、设立Samba服务器

安装samba,可以使用tasksel来安装,这是最简单的方法,安装完成后需要对/etc/samba/smb.conf进行配置,其他基本不需要动,只要在配置文件最下面加上一段指定共享文件夹的代码:

[Samba-Folder]                   //可以随意更改名字

       path = /home/ivan/share    //自行指定位置

       available = yes            //是否可用,当然yes

       browsealbe = yes           //是否可浏览,当然yes

       public = yes               //是否公开,当然yes

       writable = yes             //是否可写入,当然yes

如果想共享多个文件夹也没问题,再下面再加一段这样的代码就行了,注意【】中的不要重名。同时path后面的目录我们需要使用下面的命令增加可读写权限:

sudo chmod 777 /home/ivan/share

接下来创建一个用户专门用来登录samba,当然也可以使用现有的linux用户来登录,只是需要单独设置一个samba专用密码,我们假设现在使用另一个用户名yao来登录:

sudo useradd yao

sudo smbpasswd -a yao

输入两次密码就可以开始使用了,当然为了安全起见我们需要对yao这个用户再加一个linux密码,这样使用yao也可以登录linux了,命令是sudo passwd yao。

 

2、设立FTP服务器

我们安装最常用的vsftp软件,安装完成后对/etc/vsftpd.conf进行配置,更改以下几项即可,有些可能已经默认配置好了:

#禁用匿名用户登陆

anonymous_enable=NO

#允许本地用户登陆

local_enable=YES

#允许本地用户写入

write_enable=YES

#注意:这个地方如果不配置,就会出现只有root用户可以登陆,普通用户不可以

check_shell=NO

#掩码,决定了上传上来的文件的权限。设置为000使之有最大权限

local_umask=000

#允许记录日志

xferlog_enable=YES

#允许数据流从20端口传输

connect_from_port_20=YES

#日志路径

xferlog_file=/var/log/vsftpd.log

#ftp欢迎语,可以随便设置

ftpd_banner=hi,guys!

#注意:这个选项可以保证用户锁定在指定的家目录里,防止系统文件被修改。

chroot_local_user=YES

#注意:这个不配置有可能出现只能下载不能上传

allow_writeable_chroot=YES

#配置了可以以stand alone模式运行

listen=YES

#注意:该选项不配置可能导致莫名其妙的530问题

seccomp_sandbox=NO

#拒绝用户列表中的用户要选择NO,也就是说列表中的可以访问

userlist_deny=NO

#是否使用用户列表,当然用YES,然后我们下面指定一个文件作为列表,列出允许的用户名

userlist_enable=YES

#记录允许本地登陆用户名的文件

userlist_file=/etc/vsftpd/allowed_users

#指定一个目录,让所有登录的都进入这个目录

local_root=/home/ivan/share

建立并修改用户列表,位置:/etc/vsftp/allowed_users,里面加入允许的名字,比如root, yao等等。

配置所有后重启服务:sudo service vsftpd restart或是sudo /etc/init.d/vsftpd restart。

3、设立dlna服务器

这个就更简单了,只需要安装minidlna,再配置一条目录路径就OK了,配置文件位置:/etc/minidlna.conf

port                                //服务端口,默认为8200 

media_dir=V,/home/ivan/share/videos //(逗号前为类型标识:A音频,P图片,V视频)

media_dir=V,/home/ivan/share/music  //可以设置多个

media_dir=V,/home/ivan/share/photo  //第三个目录

friendly_name=IvanYao               //服务器名称,在其它设备中看到的名称

inotify                             //true为自动发现媒体目录中的新文件

配置所有后重启服务:sudo /etc/init.d/minidlna force-reload,接下来电视看大片吧,速度不错哦。

4、pptp服务器网上教程一大堆,不再重复了。

5、Shadowsocks服务器的使用方法参考:shadowsocks帮你上淘宝

Web服务器+NAS+DLNA+PPTP=800元

前言:

一直在使用Amazon的EC2,不过眼看着再有几个月就到期了,另外原来日本的EC2速度很快,现在可能用的人多了,过了下午就会变的较慢,国内的空间还死贵,因此需要自行想办法了。偶然间看到网上有卖微型主机的,价格便宜还是4核的,想来肯定比EC2单核1G的强多了,购买链接就不放了,只要在淘宝上找都能找到价格一般都差不多。机器是这样的:

front

back

一、安装Ubuntu Server

拿来先换上固态硬盘,加上内存,连电源,接上显示器、无线键鼠,外接DVD(也可以用U盘,因为手头有光盘,就用了光驱),先装了WIN7测试一下性能,跟店家说的基本一致,测试WIFI,音响都正常。

然后格式化硬盘,使用Ubuntu Server 14.04版本安装,在安装快结束时会提示tasksel进行套件安装,在这里选择加装Virtual Machine host,就是大名鼎鼎的KVM啦。

其实本文所有功能均可以在一台主机上实现,但是为了折腾又不想总把主机从柜子里拿出来接显示器接键盘重装系统,便利用了虚拟机,随便玩,玩坏了在主机上删除虚拟机再建一个就是了。而且为了安全起见,web服务器和家庭共享中心分别利用两台虚拟机,互不干扰,只需要把相应的端口从路由器上映射到两台虚拟机上就行了。

virtual

二、安装2个虚拟机

有了KVM接下来就是在这上面安装虚拟机了,这一块费了好大的劲,而且走了不少弯路,后来发现安装Ubuntu Server真的很简单。

第一步,建立一个准备安装操作系统的硬盘文件,我建立了一个位于vhost文件夹下的20G,qcow2文件,当然也可以选择raw格式,虽然性能上raw强一些,却少了snapshot快照,所以我选择qcow2。当然一会我们要在xml文件中修改,不然无法启动。

qemu-img create -f qcow2 /home/ivan/vhost/web-server.qcow2 20G

第二步,在命令行下使用virt-install,配合以下参数即可建立,为了标注方便我将代码分成了若干行,实际上这些代码需要写在一行里:

virt-install –name=web server //安装一个名称为web server的虚拟机

     –virt-type=kvm –hvm //采用的虚拟技术为KVM,后面的hvm我也不知道什么意思

     –ram=1536 //内存设定为1.5G,够用就好

     –vcpus=2 //提供2个CPU

     –network bridge=br0,model=virtio //采用网络桥模式接入路由器,方便将来远程操纵

     –graphics vnc,port=5901 //使用VNC的图形模式,不能用putty时查看运行情况

     –disk path=/home/ivan/vhost/web-server.qcow2,bus=virtio //定义虚拟机的硬盘文件位置及驱动模式

     –os-type=linux //操作系统类别为linux

     –cdrom=/home/ivan/usb/ubuntu-server.iso //定义安装镜像的位置

     –debug //开启除错模式

这样就建立起一个虚拟机了,内存1.5G,处理器双核,通过桥接进入路由器,方便使用端口映射。VNC纯属娱乐,可用可不用。

第三步,进入虚拟机控制平台,即virsh,不需要root权限。进入后可使用自带的命令进行查看、修改、停机、重启等工作,命令如下:

$virsh

   list –all  //列出所有的虚拟机

   destroy web-server //强制关掉web-server虚拟机

    reboot web-server //重启虚拟机,不过这个命令我没有成功过,提成完成但没重启

    start web-server //虚拟机关闭情况下开启虚拟机

    edit web-server //更改虚拟机的配置文件,通常是XML格式,默认使用vim打开编辑

我们在建立了硬盘和虚拟机之后需要使用edit web-server对其XML文件进行修改,先来看一下刚建完的虚拟机配置文件:

<!–

WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE

OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:

virsh edit ubuntu-server

or other application using the libvirt API.

–>

 

<domain type=’kvm’>

   <name>ubuntu-server</name>

   <uuid>4c7f19ff-cca8-81c7-c506-0cdca39efc7d</uuid>

   <memory unit=’KiB’>1048576</memory>

   <currentMemory unit=’KiB’>1048576</currentMemory>

   <vcpu placement=’static’>1</vcpu>

   <os>

    <type arch=’x86_64′ machine=’pc-i440fx-trusty’>hvm</type>

     <boot dev=’hd’/>

   </os>

   <features>

    <acpi/>

     <apic/>

     <pae/>

   </features>

   <clock offset=’utc’/>

   <on_poweroff>destroy</on_poweroff>

   <on_reboot>restart</on_reboot>

   <on_crash>restart</on_crash>

   <devices>

     <emulator>/usr/bin/kvm-spice</emulator>

     <disk type=’file’ device=’disk’>

       <driver name=’qemu’ type=’raw’/>

       <source file=’/home/ivan/vhost/ubuntu-server.qcow2’/>

       <target dev=’vda’ bus=’virtio’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x05′ function=’0x0’/>

     </disk>

     <disk type=’block’ device=’cdrom’>

       <driver name=’qemu’ type=’raw’/>

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>

     </disk>

     <controller type=’usb’ index=’0′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x01′ function=’0x2’/>

     </controller>

     <controller type=’pci’ index=’0′ model=’pci-root’/>

     <controller type=’ide’ index=’0′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x01′ function=’0x1’/>

     </controller>

     <interface type=’network’>

        <mac address=’52:54:00:60:b5:b0’/>

       <source network=’default’/>

       <model type=’virtio’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x03′ function=’0x0’/>

     </interface>

     <serial type=’pty’>

       <target port=’0’/>

     </serial>

     <console type=’pty’>

       <target type=’serial’ port=’0’/>

     </console>

     <input type=’mouse’ bus=’ps2’/>

     <input type=’keyboard’ bus=’ps2’/>

     <graphics type=’vnc’ port=’-1′ autoport=’yes’/>

     <sound model=’ich6′>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x04′ function=’0x0’/>

     </sound>

     <video>

       <model type=’cirrus’ vram=’9216′ heads=’1’/>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x02′ function=’0x0’/>

     </video>

     <memballoon model=’virtio’>

       <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x06′ function=’0x0’/>

     </memballoon>

   </devices>

</domain>

相信有些服务器基础的应该都能明白里面是什么意思,我们需要修改的两处:

1. <boot dev=’hd’ />需要改成cdrom,表示从cdrom文件中启动。

2. 需要把cdrom的文件位置给重新设置一下,现在的是:

<disk type=’block’ device=’cdrom’>

       <driver name=’qemu’ type=’raw’/>

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>

</disk>

需要改成这样:

<disk type=’file’ device=’cdrom’> //要把类型block改成file

       <driver name=’qemu’ type=’raw’/>

       <source file=’/home/ivan/ubuntu-server-14.04.2.iso’/> //ISO文件位置

       <target dev=’hdc’ bus=’ide’/>

       <readonly/>

       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0’/>//这一行不加也可以,重启后会自动添加

</disk>

然后就可以开机了,不过虽然开了机却没有办法安装,这时候vnc就来作用了,我们只需要在vnc的服务器地址中输入主机的IP,后面加上在XML文件中设置的VNC端口号就可以像正常的显示器一样显示出安装界面了,然后就心情的使用web服务器吧,是安装LAMP还是LNMP随意,可以参考之前的文章:AWS-EC2建立wordpress及问题处理

三、建立samba服务器并共享其他虚拟机

接下来用同样的方法建立第二台虚拟机,我们命名为home-nas,这台机器上我们需要安装Samba服务器、FTP服务器、dlna服务器、pptp服务器、Shadowsocks服务器,用途如下:

Samba服务器:用于家里多台电脑、平板、手机文件共享,比如可以把小电影放上去,随时看;

FTP服务器:说实话用处不大,只是在家外连上FTP传输速度会比Samba快一些,还可以断点续传;

dlna服务器:有些电视机不识别Samba只识别dlna,可以共享一些视频和孩子照片给老人大屏观看;

pptp服务器:家里网络是电信,为了在外面方便使用家里的Samba和配置服务器的;

Shadowsocks服务器:仅供学习使用,再就是如果公司不允许访问的网站可以上一下,比如人人网。

 

接下来一个一个来安装吧:

1、设立Samba服务器

安装samba,可以使用tasksel来安装,这是最简单的方法,安装完成后需要对/etc/samba/smb.conf进行配置,其他基本不需要动,只要在配置文件最下面加上一段指定共享文件夹的代码:

[Samba-Folder]                   //可以随意更改名字

       path = /home/ivan/share    //自行指定位置

       available = yes            //是否可用,当然yes

       browsealbe = yes           //是否可浏览,当然yes

       public = yes               //是否公开,当然yes

       writable = yes             //是否可写入,当然yes

如果想共享多个文件夹也没问题,再下面再加一段这样的代码就行了,注意【】中的不要重名。同时path后面的目录我们需要使用下面的命令增加可读写权限:

sudo chmod 777 /home/ivan/share

接下来创建一个用户专门用来登录samba,当然也可以使用现有的linux用户来登录,只是需要单独设置一个samba专用密码,我们假设现在使用另一个用户名yao来登录:

sudo useradd yao

sudo smbpasswd -a yao

输入两次密码就可以开始使用了,当然为了安全起见我们需要对yao这个用户再加一个linux密码,这样使用yao也可以登录linux了,命令是sudo passwd yao。

 

2、设立FTP服务器

我们安装最常用的vsftp软件,安装完成后对/etc/vsftpd.conf进行配置,更改以下几项即可,有些可能已经默认配置好了:

#禁用匿名用户登陆

anonymous_enable=NO

#允许本地用户登陆

local_enable=YES

#允许本地用户写入

write_enable=YES

#注意:这个地方如果不配置,就会出现只有root用户可以登陆,普通用户不可以

check_shell=NO

#掩码,决定了上传上来的文件的权限。设置为000使之有最大权限

local_umask=000

#允许记录日志

xferlog_enable=YES

#允许数据流从20端口传输

connect_from_port_20=YES

#日志路径

xferlog_file=/var/log/vsftpd.log

#ftp欢迎语,可以随便设置

ftpd_banner=hi,guys!

#注意:这个选项可以保证用户锁定在指定的家目录里,防止系统文件被修改。

chroot_local_user=YES

#注意:这个不配置有可能出现只能下载不能上传

allow_writeable_chroot=YES

#配置了可以以stand alone模式运行

listen=YES

#注意:该选项不配置可能导致莫名其妙的530问题

seccomp_sandbox=NO

#拒绝用户列表中的用户要选择NO,也就是说列表中的可以访问

userlist_deny=NO

#是否使用用户列表,当然用YES,然后我们下面指定一个文件作为列表,列出允许的用户名

userlist_enable=YES

#记录允许本地登陆用户名的文件

userlist_file=/etc/vsftpd/allowed_users

#指定一个目录,让所有登录的都进入这个目录

local_root=/home/ivan/share

建立并修改用户列表,位置:/etc/vsftp/allowed_users,里面加入允许的名字,比如root, yao等等。

配置所有后重启服务:sudo service vsftpd restart或是sudo /etc/init.d/vsftpd restart。

3、设立dlna服务器

这个就更简单了,只需要安装minidlna,再配置一条目录路径就OK了,配置文件位置:/etc/minidlna.conf

port                                //服务端口,默认为8200 

media_dir=V,/home/ivan/share/videos //(逗号前为类型标识:A音频,P图片,V视频)

media_dir=V,/home/ivan/share/music  //可以设置多个

media_dir=V,/home/ivan/share/photo  //第三个目录

friendly_name=IvanYao               //服务器名称,在其它设备中看到的名称

inotify                             //true为自动发现媒体目录中的新文件

配置所有后重启服务:sudo /etc/init.d/minidlna force-reload,接下来电视看大片吧,速度不错哦。

4、pptp服务器网上教程一大堆,不再重复了。

5、Shadowsocks服务器的使用方法参考:shadowsocks帮你上淘宝

这个小小的戒指可以对抗大气污染

雾霾是可恶的,它会让动物和人得很多呼吸系统疾病,会缩短人的寿命。雾霾还让到处变的很脏,闻起来也不好,总之有种种的坏处,而没有好处。

雾霾由汽车尾气、烧煤和其他飘浮在大气中的杂质组成。我们该怎么办?

desktop-1426610681

雾霾会引起哮喘、肺气肿、支气管炎、肺炎和肺活量下降。这往往都是吸烟的人才会得的病,你现在只要呼吸就会得了。

desktop-1426610674

在严重雾霾的地区,比如中国的北京,人们需要佩戴口罩才敢出门,不过这依然会让人不适。

desktop-1426610675

艺术家Daan Roosegaarde有个疯狂的计划。他虽然出生在荷兰,却生活在北京。他的计划是用静电吸附灰尘,然后把这些污染变成高端珠宝。听起来很疯狂?虽然不会普及,但是这个方法却对人类是一个警示。

使用静电吸附浮尘是可行的,医院都在使用静电作为空气净化的一种方式。把这些浮尘带上正电,然后使用负电极把它们从空气中吸出来。大规模的设备也可以在北京使用,建议放置在某些大型公园中。通常一个公园配备的设置可以净化40平方公里,如果测试成功可以推广到全世界。

desktop-1426610679

雾霾中的浮尘会拉向地表并自动收集起来,就像这样。

desktop-1426610676

这些黑色的粉末让人觉得很神奇,原来飘在天上和拿在手里是如此的不同,也深深为一直呼吸着这样的空气感到恐惧。接下来这些粉末会在机器的压缩下变成珠宝,当然不是之前听说的石墨变金刚石,而是放在玻璃中做成首饰。

desktop-1426611995

desktop-1426611997

Roosegaarde希望这些首饰不仅仅是昙花一现,让人觉得惊奇过后就不再有什么意义,他想让这个精致的小东西真正得以流行,并且成为对抗污染的一支新部队,如果每100个人拥有一个这样的戒指,中国就不会再有这么严重的雾霾了。

不如我们在京东搞一个众筹?

这个小小的戒指可以对抗大气污染

雾霾是可恶的,它会让动物和人得很多呼吸系统疾病,会缩短人的寿命。雾霾还让到处变的很脏,闻起来也不好,总之有种种的坏处,而没有好处。

雾霾由汽车尾气、烧煤和其他飘浮在大气中的杂质组成。我们该怎么办?

desktop-1426610681

雾霾会引起哮喘、肺气肿、支气管炎、肺炎和肺活量下降。这往往都是吸烟的人才会得的病,你现在只要呼吸就会得了。

desktop-1426610674

在严重雾霾的地区,比如中国的北京,人们需要佩戴口罩才敢出门,不过这依然会让人不适。

desktop-1426610675

艺术家Daan Roosegaarde有个疯狂的计划。他虽然出生在荷兰,却生活在北京。他的计划是用静电吸附灰尘,然后把这些污染变成高端珠宝。听起来很疯狂?虽然不会普及,但是这个方法却对人类是一个警示。

使用静电吸附浮尘是可行的,医院都在使用静电作为空气净化的一种方式。把这些浮尘带上正电,然后使用负电极把它们从空气中吸出来。大规模的设备也可以在北京使用,建议放置在某些大型公园中。通常一个公园配备的设置可以净化40平方公里,如果测试成功可以推广到全世界。

desktop-1426610679

雾霾中的浮尘会拉向地表并自动收集起来,就像这样。

desktop-1426610676

这些黑色的粉末让人觉得很神奇,原来飘在天上和拿在手里是如此的不同,也深深为一直呼吸着这样的空气感到恐惧。接下来这些粉末会在机器的压缩下变成珠宝,当然不是之前听说的石墨变金刚石,而是放在玻璃中做成首饰。

desktop-1426611995

desktop-1426611997

Roosegaarde希望这些首饰不仅仅是昙花一现,让人觉得惊奇过后就不再有什么意义,他想让这个精致的小东西真正得以流行,并且成为对抗污染的一支新部队,如果每100个人拥有一个这样的戒指,中国就不会再有这么严重的雾霾了。

不如我们在京东搞一个众筹?

备份一个配置好的ubuntu

很多时候用ubuntu都是为了折腾,折腾就难免把系统搞死,重新安装重新配置那是相当的漫长,因此也想在ubuntu上找一个可以备份整个系统的软件,但是最终没有找到,连ghost都不识别最新的LINUX分区。于是乎只能使用LINUX自带的牛X的tar命令了,以下是详细的命令和步骤:

一、备份

Linux不会限制root用户访问任何文件,你可以把分区上的所有东西都扔到一个tar文件里去!

所以备份前先要进入root用户模式,通常你需要先给root用户加一个密码才行:

$ sudo passwd root

然后输入两次root密码,再进入root

$ sudo su

接下来进入文件系统的根目录:

cd /

下面是用来备份系统的完整命令,注意命令中cvpzf前面是单横线,而exclude前面是双横线,博客展示出来可能会自动合并双横线,大家注意修改,不然会无法进行,提示命令出错:

tar -cvpzf ubuntu20150319.tar.gz  –exclude=/ubuntu20150319.tar.gz –exclude=/proc –exclude=/lost+found –exclude=/mnt –exclude=/sys /

这个命令中包含的意思有:

“tar”就是我们备份系统所使用的命令/程序

“cvpfz”是tar的选项参数,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来压缩文件尺寸”

“ubuntu20150319.tar.gz”是我们将要得到的档案文件的文件名如果想把这个文件放到自己定义的文件夹也可以,比如”/home/ivan/ubuntu20150319.tar.gz”。

“/”是我们要备份的目录,在这里是整个文件系统,不要忘记加上。

在档案文件名“ubuntu20150319.tar.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“ubuntu20150319.tar.gz”这个档案文件本身必须排除在外,格式是-exclude=/文件或文件夹名,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排除在外,那么挂载在“/mnt”上的其它分区也会被备份,如果里面是空的也无所谓。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

执行备份命令之前请再确认一下你所键入的命令是不是你想要的,执行备份命令可能需要一段不短的时间,我备份的内容大概8.6G,压缩后3.5G。

备份完成后,在文件系统的根目录将生成一个名为“ubuntu20150319.tar.gz”的文件,现在你可以把它烧录到DVD上或者放到你认为安全的地方去。

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,忽略它,不影响什么。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,不过经过测试,发现也没有压缩太多,8.6G压缩后是3.3G,只比gz格式少0.2G。

操作方法是用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

tar -cvpjf ubuntu.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/ubuntu.tar.bz2 –exclude=/mnt –exclude=/sys /

2. 恢复系统

在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!

接着最上面的说明进入到root用户,并把文件“ubuntu20150319.tar.gz”拷贝到分区的根目录下。

在 Linux中还有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。

使用下面的命令来恢复系统:

# tar -xvpfz ubuntu20150319.tar.gz -C /

如果你的档案文件是使用Bzip2压缩的,应该用:

# tar -xvpfj backup.tar.bz2 -C /

注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。

执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被你排除在外的目录:

# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys

当你重启电脑,你会发现就跟ghost了一遍一样!

备份一个配置好的ubuntu

很多时候用ubuntu都是为了折腾,折腾就难免把系统搞死,重新安装重新配置那是相当的漫长,因此也想在ubuntu上找一个可以备份整个系统的软件,但是最终没有找到,连ghost都不识别最新的LINUX分区。于是乎只能使用LINUX自带的牛X的tar命令了,以下是详细的命令和步骤:

一、备份

Linux不会限制root用户访问任何文件,你可以把分区上的所有东西都扔到一个tar文件里去!

所以备份前先要进入root用户模式,通常你需要先给root用户加一个密码才行:

$ sudo passwd root

然后输入两次root密码,再进入root

$ sudo su

接下来进入文件系统的根目录:

cd /

下面是用来备份系统的完整命令,注意命令中cvpzf前面是单横线,而exclude前面是双横线,博客展示出来可能会自动合并双横线,大家注意修改,不然会无法进行,提示命令出错:

tar -cvpzf ubuntu20150319.tar.gz  –exclude=/ubuntu20150319.tar.gz –exclude=/proc –exclude=/lost+found –exclude=/mnt –exclude=/sys /

这个命令中包含的意思有:

“tar”就是我们备份系统所使用的命令/程序

“cvpfz”是tar的选项参数,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来压缩文件尺寸”

“ubuntu20150319.tar.gz”是我们将要得到的档案文件的文件名如果想把这个文件放到自己定义的文件夹也可以,比如”/home/ivan/ubuntu20150319.tar.gz”。

“/”是我们要备份的目录,在这里是整个文件系统,不要忘记加上。

在档案文件名“ubuntu20150319.tar.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“ubuntu20150319.tar.gz”这个档案文件本身必须排除在外,格式是-exclude=/文件或文件夹名,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排除在外,那么挂载在“/mnt”上的其它分区也会被备份,如果里面是空的也无所谓。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

执行备份命令之前请再确认一下你所键入的命令是不是你想要的,执行备份命令可能需要一段不短的时间,我备份的内容大概8.6G,压缩后3.5G。

备份完成后,在文件系统的根目录将生成一个名为“ubuntu20150319.tar.gz”的文件,现在你可以把它烧录到DVD上或者放到你认为安全的地方去。

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,忽略它,不影响什么。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,不过经过测试,发现也没有压缩太多,8.6G压缩后是3.3G,只比gz格式少0.2G。

操作方法是用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

tar -cvpjf ubuntu.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/ubuntu.tar.bz2 –exclude=/mnt –exclude=/sys /

2. 恢复系统

在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!

接着最上面的说明进入到root用户,并把文件“ubuntu20150319.tar.gz”拷贝到分区的根目录下。

在 Linux中还有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。

使用下面的命令来恢复系统:

# tar -xvpfz ubuntu20150319.tar.gz -C /

如果你的档案文件是使用Bzip2压缩的,应该用:

# tar -xvpfj backup.tar.bz2 -C /

注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。

执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被你排除在外的目录:

# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys

当你重启电脑,你会发现就跟ghost了一遍一样!

使用七牛导致评论出错的解决

qiniu

之前的文章一直没有人发评论,连垃圾评论都没有,今天发了一个文章朋友看了给了评论,不过最终评论被她用短信发了过来,说网站没有办法留言,这么影响用户体验的事情居然发生了这么久,我飞快上线开始查找原因。原因很容易就baidu出来了,由于使用七牛+WP-SUPER-CACHE把所有的js文件都传到七牛了,结果就是评论的时候把内容传去了七牛,而没有给服务器,导致出错。

解决办法网上也有很多,很多都提到了_deel.url这个词,不过我翻了好几个主题都没有找到这个变量,比如XIU主题,它的变量就是jui.url。本着自学自用,找到最简单方法的原则,我改动了custom.js文件,有的主题是在jquery.js中,请大家查找”comment.php”一般会定位到如下代码:

url: jui.uri + ‘/modules/comment.php’,
            data: $(this).serialize(),
            type: $(this).attr(‘method’),
            error: function(request) {
                $(‘.comt-loading’).hide();
                $(‘.comt-error’).show().html(request.responseText);
                setTimeout(function() {
                        $submit.attr(‘disabled’, false).fadeTo(‘slow’, 1);
                        $(‘.comt-error’).fadeOut()
                    },
                    3000)
            },

我们只需要把url里面的jui.rui删除,在单引号里面加上绝对网址地址就可以了,只不过这种方法只针对一个博客有效,如果想要让主题通用,就需要使用var来给变量赋值了,不过我认为不如直接改方便,一般主题定了不会轻易改变。

让你的树莓派自动获取外网地址

1397200254556

 

树莓派的用途有千百种,其中一种就是搭建一个HTTP服务器,用于学习和折腾,但是在国内有一个问题是除了专线以外其他上网方式都是随机IP,每一天都可能被更换N次IP地址,那么作为一个HTTP服务器而言就有点不合适了,一个是我们不可能一直呆在路由器附近查看其IP地址,然后更新DNS记录。更重要的是如果你想从其他地方访问你的服务器,会发现找不到IP,连接不上去,SSH都无法正常使用,那么伟大的互联网为我们准备了动态DNS服务,根据楼主的测试希网pubyun.com提供的动态域名最为好用。

第一步,我们需要提前在路由器上把常用的端口映射到树莓派上,这个随意,我使用的是192.168.1.102。常用的端口包括:

80        HTTP

443      HTTPS

1723    VPN

8000    WDCP的控制端口

8080    自己常用于SHADOWSOCKS服务端口

22        SSH远程连接端口

第二步,有的路由器自带了DDNS功能,比如TOTOLINK以及现在绝大多数的智能路由,如果你买的是这种,那么下面的文章可以不看了,自带的功能已经可以完成自动获取树莓派外网IP了,接下来说的就是如何利用树莓派自已来获取外网IP,并更新到DNS服务器上去。

由于PPPOE连接会频繁更新IP,所以我们要实现的功能是每隔一定时间自动获取一次外网IP,并上传到希网的动态域名上,比如shumeipai.f3322.org,那么就需要用到LINUX上常见的一个小功能crontab,以为配合的w3m程序(针对UBUNTU),过程如下:

#crontab –u root –e               //打开root用户的crontab文件

在打开的文件最后面加入一行命令:

*/15 * * * * w3m -no-cookie -dump ‘http://希网用户名:希网密码@members.3322.org/dyndns/update?system=dyndns&hostname=shumeipai.f3322.org’>/dev/null

解释一下这个命令中的含义:

*/15 * * * *是crontab命令中控制时间的语段,第一个*表示分钟,第二个表示小时,第三个表示日,第四个表示月,第五个表示周。/15表示每15分钟执行一次。

w3m是UBUNTU/DEBIAN下一个文本互联网访问程序,通常用于各种API。

>/dev/null这个后缀是用于控制crontab发送事件邮件的,crontab每执行一次命令就会发送一个邮件到服务器默认的邮箱中,这个命令可以阻止这个功能。

加入这行代码保存后重启即可生效,不过f3322.org由于被大量用于垃圾网站,很多防木马程序会拦截这个域名,建议使用自己的域名或二级域名CNAME到shumeipai.f3322.org上,这样使用自己的域名就可以直接访问到树莓派了。

公司有墙的不能上淘宝的,可以用树莓派建立一个VPN,再搭一个SHADOWSOCKS,可以自己用,也可以共享,反正免费的。

用phpMyAdmin管理AWS的RDS

标题听起来很绕口,不过相信对新手会很有用,介绍AWS数据库服务器的文章不多见,因些找了很多国外的介绍才完成的。

AWS的EC2应该很多小伙伴都在用了,确实很方便、稳定,不过由于分配的资源不多,所以性能受了些影响,突然想起来AWS除了提供免费一年的EC2之外,还有一个RDS(关系型数据库服务),说白了就是一个单独的VPS用来跑MYSQL(当然也提供其他几种类型的数据库,包括微软的)。有这么好的免费资源,可以把EC2上的网站数据库转移到单独的RDS上来,减轻EC2的负担,那不是很好?说干就干,接下来把整个过程跟大家分享一下。

一、第一步当然是你得有一个AWS的账号,并且一起建立一个RDS实例,点击图中的蓝色按钮即可开始引导。

image

选择我们需要的数据库种类,当然我们选择最常用的MYSQL。

image 接下来的页面会比较唬人,如果选了YES会开始收费,主要是问我们要不要更高的处理器和更多的硬盘这里我们选No,之后点Next。

image

本页主要是选择一些基本的数据库服务器的资源,有点类似于EC2的系统、处理器、内存等,不得不赞美一下亚马逊的大方,这RDS其实也就是一台独立的服务器,而且提供的跟EC2规格是一样的,楼主EC2选的是t2.micro(1处理器,1G内存),这里选择的实例级别是db.t1.micro(1处理器,0.6G内存),主要是因为楼主需要的MYSQL版本是5.5,如果你想用5.6版本的话就可以选择db.t2.micro(1处理器,1G内存)。这里选择版本一定要根据EC2上安装的php-mysql版本一致,不然会出错。下面的Multi-AZ Deployment选No,选Yes是要钱的。再下面是选择存储器类别和容量的,我们就默认的SSD,再填写20G(免费的最大容量)就可以了。

image

本页下半段主要是填写数据库的主账号和密码的,第一行是填一个识别号,会成为你MYSQL服务器地址的一部分,请随意,下面是用户名和两次密码,接下来就可以下一步了。

image

这一页上半段是设置安全相关的,第一行和第二行默认,第三行是允许公开访问(因为考虑可能会使用Navicat或是mysql-front来远程访问,所以开放公开访问),可用区域建议跟我们EC2的一样,这样两个VPS在一个机房速度会比较快,再下面VPC Security Groups是用来控制访问IP和端口的,在RDS的控制面板中无法修改,需要自己在EC2中设置一个security group专门给RDS使用,只要开放3306给全部IP就可以了。

image

中间这一段提示设置一个空数据库,设置不设置都可以,这个数据库是可以自己使用的,所以不妨设置一个。第二行是端口号,默认3306即可,其他三行默认。

image

终于快大功告成,最后一部分是设置自动备份的,需要提醒大家的是这个备份说明会持续半小时,不过据网友反应通常会进行4个小时,这4个小时服务器是停掉的,还是考虑考虑能不能接受。如果能接受,我建议选择UTC的17点开始,这时是中国的凌晨1点,影响较小。下面是自动升级维护,通常也需要半个小时,这个不是周期性的,影响较小,默认即可。

image

OK了,现在点蓝色按钮去看看我们的实例吧,这个MYSQL服务器配置时间稍长,估计会五分钟左右,等配置完成后我们可以在实例详单中看到Endpoint,是一个url地址,后面跟着3306,这个就是将来我们远程的MYSQL数据库地址,为了使用方便,我自己CNAME了一个二级域名到这个网址,假设是rds.mydomain.com,以后就可以用自己的短域名来管理数据库VPS了。

image

二、使用程序进行远程管理,当然你可以使用navicat或是mysql-front来管理,不过这两个软件都是收费的,当然也有破解的,不支持使用破解软件,我使用phpmyadmin,有个电脑就可以上网登录,使用更加方便,phpmyadmin程序我也放在EC2上,单独设置一个二级域名存放phpmyadmin内容,假设这个网址是mysql.mydomain.com,现在就相当于EC2上的php程序读取RDS上的数据库。

关于域名和lamp-server的设置和安装就不详细说明了,如果有需要可以参考之前的《AWS-EC2建立wordpress及问题处理》。

三、接下来是最重要的安装和配置phpmyadmin的配置文件了,这个文件如果不配置会有很多功能不能使用,虽然可以登录,但会提示高级功能不能使用,并且建立新用户的时候可能会出现失败。

我们上传好phpmyadmin文件后,进入phpmyadmin的根目录,里面有一个config.sample.inc.php文件,很多网上教程说需要把这里的信息配置好改名为config.inc.php,不过其实这个文件和libraries文件夹的config.default.php文件有很多内容是重复的,只是config.inc.php优先级低,会优先使用config.default.php的内容,经过我多次尝试,只改后者会比较好。我们需要一条一条核对以下内容,一个下划线都不能少,否则白填,其他没有列出的选项可以保持默认。

/* 设置phpmyadmin的绝对地址,这里把刚才的phpmyadmin域名放上去,注意要带http,不用怕双斜杠后面显示被注释,系统可以正常识别 */

$cfg[‘PmaAbsoluteUri’] = ‘http://mysql.mydomain.com';

/* 设置cookie短语码,随意设置,没什么用,可以用123456 */

$cfg[‘blowfish_secret’] = ”;

/* 设置控制账号的用户名,这个控制账号是用来存取phpmyadmin数据库的,官方建议取作pma,现在数据库中还不存在这个账号,需要我们登录后创建。 */

$cfg[‘Servers’][$i][‘controluser’] = ‘pma';

/* 设置控制账号的密码 */

$cfg[‘Servers’][$i][‘controlpass’] = ‘换成你的密码';

/* 更改登录phpmyadmin的验证方式,可以选空密码,config,和cookie,最安全的是cookie,前两个不用密码 */

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie';

/* 设置主账号用户名,这个属于管理员账号 */

$cfg[‘Servers’][$i][‘user’] = ‘换成RDS设置的用户名';

/* 设置主账号密码 */

$cfg[‘Servers’][$i][‘password’] = ‘换成自己的密码';

/* 这个是设置一个phpmyadmin自己需要的数据库,目前服务器上也没有,需要我们登录后使用phpmyadmin自带的一个数据库文件导入建立,文件位于phpmyadmin根目录下sample目录中,文件名是create_tables.sql */

$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin';

/* 以下是phpmyadmin数据库中的表,需要在这里对每个变量使用的表进行对应,注意有的地方是双下划线,有的地方是单下划线 */

$cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma__bookmark';
$cfg[‘Servers’][$i][‘relation’] = ‘pma__relation';
$cfg[‘Servers’][$i][‘table_info’] = ‘pma__table_info';
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma__table_coords';
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma__pdf_pages';
$cfg[‘Servers’][$i][‘column_info’] = ‘pma__column_info';
$cfg[‘Servers’][$i][‘history’] = ‘pma__history';
$cfg[‘Servers’][$i][‘table_uiprefs’] = ‘pma__table_uiprefs';
$cfg[‘Servers’][$i][‘tracking’] = ‘pma__tracking';
$cfg[‘Servers’][$i][‘userconfig’] = ‘pma__userconfig';
$cfg[‘Servers’][$i][‘recent’] = ‘pma__recent';
$cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite';
$cfg[‘Servers’][$i][‘users’] = ‘pma__users';
$cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups';
$cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding';
$cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches';
$cfg[‘Servers’][$i][‘central_columns’] = ‘pma__central_columns';

至此,配置文件搞定,将整个phpmyadmin文件夹中所有内容上传到mysql.mydomain.com的根目录中即可访问了。

四、开始建立pma用户、phpmyadmin数据库,并建立二者的权限关系。

在数据库总界面上点击导入,上传create_tables.sql文件,执行导入后成功会有提示,并且左侧数据库列表中会增加一个phpmyadmin数据库,不建立本数据库会出现提示:

image

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to ‘Operations’ tab of any database to set it up there.

点击数据库总界面上的用户,再点击添加新用户,用户名为pma,密码随自己心意,如图:

image

如果不建立pma用户,会出现的错误提示:

使用配置文件中定义的控制用户连接失败。

创建二者权限,再次点击主界面用户,找到pma用户,编辑权限,点击上面的数据库按钮,在选择框中选择phpmyadmin并执行,权限全部选择,如图:

image

第五步,恩,没有了,不过小提示一下,这时如果不退出重新登录一下可能下面还会有出错提醒,只要重新登录一下就好了,至此就可以尽情使用phpmyadmin进行数据库导入导出备份了,然后只需要在EC2的网站中把本地数据库地址localhost更改为RDS数据库地址rds.mydomain.com就可以了,一切如常,基本感觉不到变化呢,哈哈哈,我的EC2终于不会每天固定时间CPU爆炸了。