Tag Archives: Linux

WordPress迁移笔记

最开始的时候,我的这个网站是建在实验室的Amazon EC2上面的。

后来因为临近毕业,不再用实验室租的服务器了,就在RamNode上面重新部署了一遍Wordpress,同时架了一个shadowsocks在上面。

但是ss用的人好多,不知道为什么突然有一天就被封掉了,3.6刀一个月的稳定VPS就这么没了。

最近找到一个叫做VirMach的VPS在打折,算上打折码35刀一年,试用了一下还比较稳定。于是又要把Wordpress搬到这个网站上面来。搬来搬去挺麻烦的,网上的教程不是很具体,或者因为一些版本的原因不是非常贴合。摸索了一会终于解决了这些问题,现在记录一下运行的步骤,万一以后又要转移的时候可以拿出来看看。

总体上来说,包括三个步骤:
Part I:  迁移数据库
参考链接:
RamNode上面登录mysql:
root@www:/usr/local/bin# mysql -uroot -ptsinghua
然后检查有多少个数据库:
mysql> show databases;
好多啊
| Database           |
+——————–+
| information_schema |
| lzq_wordpress      |
| mysql              |
| performance_schema |
| sys                |
| wordpress_db
这里看了一下wp-config.php文件,貌似用到的其实也就只有wordpress_db这个数据库
所以只dump出这个数据库
root@www:/home/lzq/wordpress# mysqldump -uroot -pwordpress_db > wordpress_db.sql
密码好像是tsinghua
另外可以通过wget传输放在共享目录里面的数据,这样会更快一点
root@shaojuanzi:/home# wget www.lzq8272587.cn/photo/wordpress_db.sql
在另一个主机上面再导入数据库
创建一个相同名字的数据库
mysql> create database wordpress_db;
然后再插入数据
root@shaojuanzi:/home/lzq# mysql -uroot -p wordpress_db < ../wordpress_db.sql
记得在配置文件里面修改密码
root@shaojuanzi:/home/lzq/wordpress# vim wp-config.php
Part II: 迁移网站
把之前的整个网站打包
root@shaojuanzi:/home/lzq/wordpress# vim wp-config.php
放到web文件夹里面去,然后用wget下载
在/etc/apache2/apache2.conf这个文件里面加入下面的内容,设置网站的默认主页为我们自己的
<Directory /home/lzq/wordpress/photo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
<Directory /home/lzq/wordpress>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
然后注意到,现在这个conf文件只是include了另一个配置文件,所以要找到
site-available/000-default文件
修改成以下的内容
root@www:/home/lzq/wordpress/photo# cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request’s Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /home/lzq/wordpress
<Directory /home/lzq/wordpress/photo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
<Directory /home/lzq/wordpress>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
        # Available loglevels: trace8, …, trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with “a2disconf”.
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
这样就可以了!!
Part III:重启
root@shaojuanzi:/etc/apache2/sites-available# /etc/init.d/mysql start
root@shaojuanzi:/etc/apache2# /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
哎呀妈呀终于算是成功的把网站迁移过去了。
千万千万不要再被封掉了!

 

SS使用方法

Shadowsocks使用说明(2016-05-27更新)

直接到这个地址下载你的平台(Windows,Android,Mac)所需要的版本:http://pan.baidu.com/s/1o8b7GOM

安装shadowsocks(Windows下直接点开就行,其它平台类似。这里以Windows举例),并运行。

 

在小图标处找到shadowsocks,打开服务器设定,如上图所示,选择Servers->Edit

Servers。

 

 

如上图所示设置,密码为tsinghua。

 

2016-5-27更新:这里52的IP地址暂时不开放使用了,请使用107.161.26.199这个IP。同理,下面出现的52开头的IP地址全部换成107开头的这个地址。

 

确定以后,选择服务器为52开头的服务器,并且启动代理,Enable System Proxy如下图所示。

 

代理模式的话,两种都可以。简单解释一下,这里PAC大概就是国内网站不走代理,其它流量走代理;Global模式就是所有流量都走代理。

 

此时可测试,IE之类的打开浏览器可以正常使用。

 

如果是Chrome,可以安装一个插件,然后启动shadowsocks之后选择“系统代理”

 

 

原理就是socks5代理了。

Ubuntu上查看磁盘使用情况

查看当前文件夹大小
du -sh 文件夹/文件
du -sk 文件夹/文件
du -sm 文件夹/文件
查看指定文件或者文件夹的大小
sh/sk/sm 的区别:
sh 根据文件大小显示为nK/nM/nG eg. [4.0K xxx.log]
sk 根据文件大小显示为nK eg. [4.3K xxx.log]
sm 根据文件大小显示为nM eg. [7M xxx.log]

查看所有磁盘大小
df -h

Git shell使用方法

因为要使用两个git,一个是github,另一个是学校的git9,所以需要用到git shell创建项目

创建新项目的方法:(参考以下链接)
http://blog.csdn.net/dengjianqiang2011/article/details/9260435

一进入应该是在github目录下

$ makdir ~/hello-world //创建一个项目hello-world
$ cd ~/hello-world //打开这个项目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m ‘first commit’ //提交更新,并注释信息“first commit”
$ git remote add origin git@github.com:defnngj/hello-world.git //连接远程github项目
$ git push -u origin master //将本地项目更新到github项目上去

Git Push(向远程Github提交本地代码)
$ git push git@github.com:hepusheng/linux-2.6.11-study-note.git master // 把本地仓库提交到远程仓库的master分支中

$ git remote add origin git@github.com:hepusheng/linux-2.6.11-study-note.git
$ git push -u origin master

这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向git@github.com:hepusheng/linux-2.6.11-study-note.git,也就是说你操作origin的时候,实际上就是在操作git@github.com:hepusheng/linux-2.6.11-study-note.git。
默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支。

在向远程提交代码时出现了错误:
1.error:failed to push some refs to …
当要push代码到git时,出现提示:
error:failed to push some refs to …
Dealing with “non-fast-forward” errors
From time to time you may encounter this error while pushing:
$ git push origin master
To ../remote/
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to ‘../remote/’
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the ‘non-fast forward’
section of ‘git push –help’ for details.

问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去,特别对于在Github上新建版本仓库时,因为它为了增加其它人对用户提交的代码的可读性时,默认是要求新建一个README.md文件,和系统会生成.gitignore 文件。所以在push化码到远程仓库时,因为我们本地仓库中没有类似于README.md或.gitignore 等文件,这样就是提示(Non-fast-forward). 有2个方式可以解决这个问题:

强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容,这种方式不建议使用。
git push -f

2. 先把git的东西fetch到你本地然后merge后再push
$ git fetch
$ git merge
这2句命令等价于
$ git pull
可是,这时候又出现了如下的问题:
上面出现的 [branch “master”]是需要明确(.git/config)如下的内容
[branch “master”]
remote = origin
merge = refs/heads/master
这等于告诉git2件事:
1,当你处于master branch, 默认的remote就是origin。
2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变
如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
之后再重新git pull下。最后git push你的代码,到此步顺利完成时,则可以在Github上看到你新建的仓库以及你提交到仓库中文件了,OK。

最后,在本地编辑了代码之后,上传到某个分支上去,用以下代码:

git add -u

git commit -m ‘info’

git push git@git.net9.org:lzq8272587/networkwatcher.git master(推送到master分支上)