`
天梯梦
  • 浏览: 13634758 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

把Apache里面的网站和MySQL数据库移动到home盘

 
阅读更多

最近茶叶在纠结如何管理Linux,碾过配置LAMP这一章,遂在自己的机器上搭建了若干虚拟服务器(一个用于做笔记的WP和一个无聊的站)。无奈经常重装系统,把它们丢在数据库里面特别不靠谱,所以要把它们都搬迁到home盘里面去。

 

首先我有这些东西:

 

站点:note(就是那个WP,反正不用区别对待)

目录

/var/www/vhosts/note

配置文件

/etc/apache2/sites-available/note

 

站点:test

目录

/var/www/vhosts/test

配置文件

/etc/apache2/sites-available/test

 

现在开始搬迁。

 

由于要搬到home,就给建立个文件夹吧:

/home/www/vhosts/

然后把/var/www/vhosts里面的note和test移动过来。(没看出vhosts这个名字有魔法,这是一开始的时候茶叶照书抄的。)

 

现在我们有了这两个文件夹:

/home/www/vhosts/note

/home/www/vhosts/test

 

然后修改Apache2里面这2个站的配置文件,比如我们vim这个配置文件:/etc/apache2/sites-available/note

 

修改目录位置:

DocumentRoot /var/www/vhosts/note/

<Directory /var/www/vhosts/note/>
               Options FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
</Directory>

为:

DocumentRoot /home/www/vhosts/note/


<Directory /home/www/vhosts/note/>
               Options FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
</Directory>


然后注销原来的设置,启用新设定。(可能用不着注销吧?但是我发现/etc/apache2/sites-enabled里面的文件是自动生成的,而修改sites-available处的文件后直接a2ensite又出现站点已经启动的提示,所以我就注销了一遍。)

sudo a2dissite note test;sudo a2ensite note test

 

然后reload这个Apache2。

 

这下应该是在新的位置跑起来了。

 

然后我们来搬动MySQL数据库。找到一篇文章:

http://forum.ubuntu.org.cn/viewtopic.php?t=378207

 

照着这个东西来:

 

首先我们要关闭数据库和Apache等种种东西,否则是不可以搬动它的。

sudo service mysql stop

 

然后我们搬走它:(我建立了一个db文件夹)

sudo mv /var/lib/mysql /home/db/

 

编辑MySQL的配置文件/etc/mysql/my.cnf,把其中datadir(这一项在[mysqld]里面)后面的目录改为我们的目录,如:

datadir = /home/db/mysql/

 

按照一般的解释,Ubuntu有一个叫做Apparmor的软件用来保护系统不受错误的设置损害,像我们这样直接改动过后是跑不起来的。

 

现在我们修改这个Apparmort:

sudo vim /etc/apparmor.d/usr.sbin.mysqld
 

注释掉原来的两行目录位置,新增加我们的目录,后面选项不变。

#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
 /home/db/mysql/ r,
 /home/db/mysql** rwk,

 

还要修改一个文件:

sudo vim /etc/apparmor.d/abstractions/mysql

 

注释掉原来的行,加入我们的目录:

#   /var/lib/mysql/mysql.sock rw,
  /home/db/mysql/mysql.sock rw,

 

然后就搞定了~~

 

重启这个Apparmor、MySQL、Apache2:

 

    sudo /etc/init.d/apparmor reload
    sudo /etc/init.d/mysql start
    sudo service apache2 start
 

 

然后就搞定啦~~

 

最后做了小修改,免得外面访问进来可以列目录(我那两个站只绑定了本地回环上面的ip地址),我在/etc/apache2/apache2.conf中加入了这么几行,这样外面进来就会提示禁止访问:

#To forbid access to /vaw/www/
<Directory /var/www/>
       Options FollowSymLinks
</Directory>

 

来源:http://leosong.diandian.com/post/2012-12-12/40047556190

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics