首页 > 服务器配置 > 博客迁移到Linux主机小记

博客迁移到Linux主机小记

2014年8月12日 发表评论 阅读评论

之前博客是存放在SAE上的,而由于近段时间SAE问题较多,而且由于SAE对访问量的限制,空间读写的限制,都导致WordPress的诸多不便(升级功能不能用,在线安装插件,安装主题不能用)所以一狠心,买了一台VPS,把博客迁移到该VPS了,
VPS是Linode的10美刀/月的主机,IP为日本的,25G SSD空间,1 Core,1G RAM,Debian 7,月流量2TB,已经够我用了
域名A记录到IP,使用环境为典型的LAMP,下面大概记一下LAMP环境的配置,也算是为自己日后留个笔记吧
首先安装环境所需的软件包和相应模块

在安装的过程中会出现设置mysql的root密码部分,先暂时直接回车跳过,随后设置

配置apache2

在该目录下apache2.conf为主配置文件,mods-enabled为模块配置文件夹(内部软连接到mods-available),一般使用a2enmod使用就好,不用在这里修改,sites-enabled为网站虚拟主机设置文件夹(内部软连接到sites-available),一般需要配置的地方主要为sites-enabled目录里,其他的则无须过多考虑,
打开apache2.conf,搜索MaxKeepAliveRequests,去掉注释 ,修改其后数值为1000(最大连接数设置为1000),其他的无需过多设置,
进入sites-available,把默认的default复制几份,让每一个配置文件(虚拟主机)对应一个网站,便于管理,默认的default内容

需要修改的几个地方:
DocumentRoot — 表示该虚拟主机使用的根目录的绝对路径,例如:DocumentRoot /var/www
AllowOverride — None改为All,意为允许使用.htaccess来重写URL
ServerName — 该网站的域名,如不指定则默认为IP打开的那个网址,例如:
ErrorLog — 错误日志的存放地,例如:
CustomLog — 访问日志的存放地,例如:
虚拟目录中
AllowOverride — None改为All,意为允许使用.htaccess来重写URL
Options — Indexes FollowSymLinks MultiViews 改为Options -Indexes FollowSymLinks MultiViews 禁止该虚拟目录遍历
具体的apache设置可以参考http://liudaoru.iteye.com/blog/336338
完成之后添加重写模块并重启apache

设置PHP

设置php.ini

查找timezone

查找expose

php函数部分我一个都没禁用,因为不怎么懂…留待日后再做分析吧,设置按了保存退出即可

设置Mysql

首先是修改mysql的root密码,进入到mysql的命令行之后,输入

即可修改,下次使用

来进入mysql命令行
为了保证网站之间的安全,不建议直接使用mysql的root账户来让网站对数据库做读写操作,所以很有必要给每个网站建立一个用户,首先进入到mysql命令行

这样就可以了,最后重启apache服务

在/var/www下放置一个php文件,内容为

如果能正常打开即表示整个环境部署完毕,还需要添加或删除什么自行根据配置参考即可
对于图片资源,我使用的是BAE的云存储功能,具体可在上一次迁移到SAE的文章中找到
链接http://blog.l1n3.net/blog-move-to-sae/

设置Memcached

首先安装Memcached和PHP相关组件

安装完毕之后设置memcached,我这里的设置是这样的

设置完之后启动memcached

然后在WordPress中安装WP Memcached Manager插件,然后启用该插件
选择Edit Servers,如图设置即可


完成之后点击Add Server即可启用
查看效果的话可以在WordPress后台的Memcached设置下查看,如图

Get Hits下如果显示为>0%即表示已经成功启用,如果是0%,多访问几次自己的博客,让Memcached去缓存一些,然后在查看就可以了

其他的安全方面设置

首先是禁止apahce跨目录读取,防止跨站
设置之前是酱紫的,使用中国菜刀作为php一句话木马的客户端,可以看到是可以跨目录读取文件的


然后在apache的虚拟主机设置中加入这个

重启apache

重启之后可以看到已经无法使用中国菜刀来做到跨目录

虽然不能直接通过读目录来遍历,但是依然可以通过执行命令的方式去读取&遍历文件,如图

所以,防患于未然,既然要杀,就杀的死死的,不让webshell去执行命令就好了
修改php.ini,禁止掉相关的函数就可以了,具体为shell_exec,system,passthru,popen这四个函数

然后重启apache2
返回来再查看中国菜刀的命令执行,可以看到已经无法进行命令执行了

其他说明

如需转载烦请注明出处
来自于LinE's Blog
From: http://blog.l1n3.net
谢谢~~

分类: 服务器配置 标签: ,
  1. A11riseforme
    2014年8月30日00:12 | #1

    shell_exec,system,passthru,popen, 目测这四个函数还不够

    • line
      2014年8月31日14:41 | #2

      以后在使用过程中在根据情况逐渐处理吧,谢谢A11牛

  1. 本文目前尚无任何 trackbacks 和 pingbacks.