LAMP平台的搭建和网站的防盗链的方法
网站的资源被其它网站盗链之后,对流量和服务器性能的影响都很大。下面讲一下部署LAMP平台和网站的防盗链的方法。
定制LAMP平台
一:安装、运行MySQL5.6服务器
LAMP构成:Linux、Apache、MySQL、PHP/Perl/Python
1. 清理冲突程序
[root@redhat6 ~]# yum -y remove httpdmysql-server mysql php
.. ..
[root@redhat6 ~]# rm -rf /etc/my.cnf/var/lib/mysql //清理干扰文档
2. 安装 MySQL 5.6的 rpm-bundle 集成包
- [root@redhat6 ~]# tar xf /root/桌面/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar
- [root@redhat6 ~]# rpm -Uvh MySQL-shared-*.rpm \
- MySQL-server-5.6.15-1.el6.x86_64.rpm \
- MySQL-client-5.6.15-1.el6.x86_64.rpm \
- MySQL-devel-5.6.15-1.el6.x86_64.rpm
- .. ..
- A RANDOM PASSWORD HAS BEEN SET FOR THEMySQL root USER !
- You will find that password in'/root/.mysql_secret'. //提示密码文件路径
- .. ..
3. 启动 mysql 服务,并修改管理密码
- [root@redhat6 ~]# service mysqlrestart
- [root@redhat6 ~]# cat /root/.mysql_secret
- # The random password set for the root .... : SycwHa23 //安装时记录的随机密码
- [root@redhat6 ~]# mysqladmin password -uroot -p '123456'
- Enter password: //验证旧密码,输入.mysql_secret文件下记录的密码
二:编译安装 httpd、php
1. 安装 httpd
- [root@redhat6 ~]# yum -y install openssl-devel //安装依赖库
- [root@redhat6 ~]# tar zxf /root/桌面/httpd-2.2.26.tar.gz
- [root@redhat6 ~]# yum -y gcc* //安装所需的gcc开发工具
- [root@redhat6 ~]# rpm -q make //查看是否安装make编译工具
- make-3.81-20.el6.x86_64
- [root@svr5 ~]# cd httpd-2.2.26/
- [root@svr5 httpd-2.2.26]# ./configure\ //配置安装位置以及httpd一些其他的功能
- --prefix=/usr/local/httpd \
- --enable-so --enable-rewrite --enable-cgi \
- --enable-charset-lite --enable-ssl
- [root@redhat6 httpd-2.2.26]# make&& make install //编译+安装
- [root@redhat6 httpd-2.2.26]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
- //拷贝服务控制脚本,可以通过service httpd start 开启/关闭服务
- [root@redhat6 httpd-2.2.26]# vim /etc/init.d/httpd //修改脚本,在开头添加服务chkconfig识别参数
- # chkconfig: 35 85 15
- # description: Apache is a World Wide WebServer
- .. ..
- [root@redhat6 ~]# service httpd stop
- [root@redhat6 ~]# service httpd start
- [root@redhat6 ~]# chkconfig httpd on
- //如果没有以上操作,通过service启动将会找不到此服务,而且chkconfig也将找不到此服务
测试httpd是否可用
在浏览器中输入http://服务器IP地址
为了实现访问的方便,设置DNS将服务器的IP地址解析为www.tarena.com
注:在源码安装前一定要安装gcc,make开发工具
2. 安装 php
- [root@redhat6 ~]# yum -y installlibxml2-devel //安装依赖库
- [root@redhat6 ~]# tar zxf /root/桌面/php-5.4.24.tar.gz
- [root@redhat6 ~]# cd php-5.4.24/
- [root@redhat6 php-5.4.24]# ./configure \ //配置php,对php的一些功能进行定制
- --prefix=/usr/local/php --enable-mbstring --enable-sockets \
- --with-apxs2=/usr/local/httpd/bin/apxs \
- --with-mysql=mysqlnd --with-mysqli=mysqlnd \
- --with-pdo-mysql=mysqlnd \
- --with-config-file-path=/usr/local/php
- [root@svr5 php-5.4.24]# make &&make install //编译+安装
- .. ..
- [root@redhat6 php-5.4.24]# cpphp.ini-development /usr/local/php/php.ini //php安装之后配置文件不存在,需要从模板拷贝,然后进行修改
- [root@redhat6 ~]# vim/usr/local/php/php.ini //建立配置文件
- .. ..
- default_charset = "utf-8" //设置默认字符集
- file_uploads = On //允许从PHP网页上传文件
- upload_max_filesize = 2M //允许上传的文件大小
- max_file_uploads = 20 //每个请求最多上传文件数
- [MySQL]
- mysql.default_socket =/var/lib/mysql/mysql.sock
- //指定MySQL套接字文件路径,如果不指定那么将无法访问数据库
三:LAMP平台协同配置及测试
1. 调整 httpd.conf 配置文件
- [root@redhat6 ~]# vim /usr/local/httpd/conf/httpd.conf
- .. ..
- LoadModule php5_module modules/libphp5.so
- <IfModule dir_module>
- DirectoryIndex index.html index.php //设置默认首页
- </IfModule>
- AddType application/x-httpd-php .php //识别.php网页
- .. ..
2. 启动 LAMP 平台服务
- [root@svr5 ~]#/usr/local/httpd/bin/apachectl restart
- .. .. http://www.luyouqiboke.com
- [root@svr5 ~]# service mysql restart
- Shutting down MySQL... [确定]
- Starting MySQL.... [确定]
- [root@svr5 ~]# netstat -anpt | grep -E'mysql|httpd'
- tcp 0 0 :::80 :::* LISTEN 27842/httpd
- tcp 0 0 :::3306 :::* LISTEN 27722/mysqld
3. 创建测试网页,测试访问结果
1. 确保能正确解析 PHP 网页
- [root@redhat6 ~]# vim /usr/local/httpd/htdocs/test1.php
- <?php
- phpinfo();
- ?>
—— 从浏览器访问 http://www.tarena.com/test1.php
2. 确保PHP网页可访问 MySQL 数据库
- [root@redhat6 ~]# vim/usr/local/httpd/htdocs/test2.php
- <?php
- $link=mysql_connect('localhost','root','123456');
- if($link) echo "Success !!"; //成功则显示Success !!
- else echo "Failure !!"; //失败则显示Failure !!
- mysql_close(); //关闭数据库连接
- ?>
—— 从浏览器访问 http://www.tarena.com/test2.php
注:在这个过程中最常见的问题就是访问数据库失败,主要原因是因为在修改php配置文件时,mysql.default_socket添加位置错误,一定要添加到[MySQL]所在的下面,还有一个原因就是在修改http配置文件时发生错误,AddType application/x-httpd-php .php 位置添加错误,然后检查mysql数据库是否启动成功。
四:部署 Discuz! X论坛系统
1. 提前为论坛建好数据库、授权用户
- [root@redhat6 ~]# mysql -u root -p //连接本机的 MySQL 数据库系统
- Enter password: //验证数据库管理密码
- .. ..
- mysql> CREATE DATABASE bbsdb; //建库
- mysql> GRANT all ON bbsdb.* TOrunbbs@localhost IDENTIFIED BY 'adm123';
- //创建该数据库的使用用户及密码,可以有权管理此数据库
- mysql> QUIT //退出客户端
2. 释放及部署 Discuz! X 论坛程序包
- [root@redhat6 pub]# unzip Discuz_X3.1_SC_UTF8.zip -d tdir
- .. ..
- [root@redhat6 pub]# cp -rf tdir/upload/ /usr/local/httpd/htdocs/bbs
- [root@redhat6 pub]# cd /usr/local/httpd/htdocs/bbs/
- [root@redhat6 ~]# grep ^User/usr/local/httpd/conf/httpd.conf
- User daemon
- //因为httpd程序的默认用户是damon所以要给用户daemon对新添加的文件有读取的权限
- [root@redhat6 bbs]# chown -R daemon template/ config/ data/ uc_server/ uc_client/
- //使Web服务对相关目录有写入权限
3. 通过Web界面执行安装
1)浏览器中访问http://www.tarena.com/bbs/install/
.. ..
.. ..
2)善后处理
- [root@redhat6 bbs]# mv install/ install.lock //设置成功后避免再对设置进行修改
- [root@redhat6 bbs]# chmod 600 install.lock/
- [root@redhat6 bbs]# ls -ld install.lock/
- drw-------. 5 root root 4096 2月 18 16:03 install.lock/
4. 使用、管理 Discuz! X 论坛系统
1)访问前台页面:http://服务器地址/bbs/
测试用户注册、发帖、回帖等论坛操作
2)后台管理:http://服务器地址/bbs/admin.php
调整全局设置、版块、用户、群组 ……
网页防盗链及地址重写
案例环境:
受害网站:www.tarena.com 192.168.4.2/24(主机名redhat6)
盗链网站:192.168.4.3/24(主机名redhat5)
1.在盗链网站上建立测试网页
[root@redhat5 ~]# vim /etc/resolv.conf
nameserver 192.168.4.2
在浏览器中输入www.tarena.com能够正确访问
- [root@redhat5 ~]# yum -y install httpd
- [root@redhat5 html]# cd /var/www/html/
- [root@redhat5 html]# vim index.html //建立测试网页
- <html>
- <head>
- <title>防盗链测试页</title>
- 显示来自外部站点的图片:
- <imgsrc="http://www.tarena.com/bbs/static/image/common/logo.png">
- </head>
- </html>
- [root@redhat5 html]# service httpd restart
在浏览器中输入服务器IP地址能够正常访问到www.tanrena.com中的图片
2. 在受害网站上修改 httpd.conf 配置,启用防盗链
- [root@redhat6 bbs]# vim/usr/local/httpd/conf/httpd.conf
- <Directory"/usr/local/httpd/htdocs">
- SetEnvIfNoCase Referer "^http://www.tarena.com/" TRUSTED
- <FilesMatch "\.(jpg|gif|png)">
- Order Allow,Deny
- Allow from env=TRUSTED
- Allow from 127.0.0.1
- </FilesMatch>
- .. ..
- </Directory>
- [root@redhat6 bbs]# service httpd restart
然后在盗链网站上输入服务器IP地址发现不能正常显示www.luyouqiwang.com中的超链接图片
3. 通过 Rewrite 机制防盗链(启用警告图片)
1)准备警告图片 noref.bmp
[root@redhat6 /]# cp /root/桌面/noref.png /usr/local/httpd/htdocs/bbs/
2)调整第2步的 Web 配置,改用重定向策略
- [root@redhat6 /]# vim/usr/local/httpd/conf/httpd.conf
- <Directory"/usr/local/httpd/htdocs">
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://www.tarena.com/.*$ [NC]
- RewriteRule .*\.(jpg|gif|png)$ http://www.tarena.com/bbs/noref.bmp [R,L]
- .. ..
- </Directory>
- [root@redhat6 /]# service httpd restart
然后在盗链网站上输入服务器IP地址发现显示www.luyouqiwang.com中的警告图片。