A-A+

LAMP平台的搭建和网站的防盗链的方法

2016年02月20日 电脑网络 暂无评论 阅读 3 views 次

网站的资源被其它网站盗链之后,对流量和服务器性能的影响都很大。下面讲一下部署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 集成包

  1. [root@redhat6 ~]# tar  xf /root/桌面/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar  
  2. [root@redhat6 ~]# rpm  -Uvh MySQL-shared-*.rpm  \  
  3.  MySQL-server-5.6.15-1.el6.x86_64.rpm \  
  4.  MySQL-client-5.6.15-1.el6.x86_64.rpm \  
  5.  MySQL-devel-5.6.15-1.el6.x86_64.rpm  
  6. .. ..  
  7. A RANDOM PASSWORD HAS BEEN SET FOR THEMySQL root USER !        
  8. You will find that password in'/root/.mysql_secret'.                 //提示密码文件路径  
  9. .. ..  

3. 启动 mysql 服务,并修改管理密码

  1. [root@redhat6 ~]# service mysqlrestart             
  2. [root@redhat6 ~]# cat  /root/.mysql_secret    
  3. # The random password set for the root .... : SycwHa23          //安装时记录的随机密码  
  4.    
  5. [root@redhat6 ~]# mysqladmin password -uroot -p '123456'  
  6. Enter password:      //验证旧密码,输入.mysql_secret文件下记录的密码  

二:编译安装 httpd、php

1. 安装 httpd

  1. [root@redhat6 ~]# yum -y install openssl-devel               //安装依赖库  
  2.   
  3. [root@redhat6 ~]# tar  zxf /root/桌面/httpd-2.2.26.tar.gz  
  4. [root@redhat6 ~]# yum -y gcc*         //安装所需的gcc开发工具  
  5. [root@redhat6 ~]# rpm -q make        //查看是否安装make编译工具  
  6. make-3.81-20.el6.x86_64  
  7. [root@svr5 ~]# cd  httpd-2.2.26/  
  8. [root@svr5 httpd-2.2.26]# ./configure\                   //配置安装位置以及httpd一些其他的功能  
  9.  --prefix=/usr/local/httpd \  
  10.  --enable-so --enable-rewrite --enable-cgi \  
  11.  --enable-charset-lite --enable-ssl  
  12.    
  13. [root@redhat6 httpd-2.2.26]# make&&  make  install           //编译+安装  
  14. [root@redhat6 httpd-2.2.26]# cp  /usr/local/httpd/bin/apachectl  /etc/init.d/httpd   
  15.                                         //拷贝服务控制脚本,可以通过service httpd start 开启/关闭服务   
  16.    
  17. [root@redhat6 httpd-2.2.26]# vim  /etc/init.d/httpd                //修改脚本,在开头添加服务chkconfig识别参数  
  18. # chkconfig: 35 85 15  
  19. # description: Apache is a World Wide WebServer  
  20. .. ..  
  21. [root@redhat6 ~]# service httpd stop  
  22. [root@redhat6 ~]# service httpd start  
  23. [root@redhat6 ~]# chkconfig httpd on  
  24. //如果没有以上操作,通过service启动将会找不到此服务,而且chkconfig也将找不到此服务  

测试httpd是否可用

在浏览器中输入http://服务器IP地址

为了实现访问的方便,设置DNS将服务器的IP地址解析为www.tarena.com

注:在源码安装前一定要安装gcc,make开发工具

2. 安装 php

  1. [root@redhat6 ~]# yum -y installlibxml2-devel              //安装依赖库  
  2. [root@redhat6 ~]# tar  zxf /root/桌面/php-5.4.24.tar.gz  
  3. [root@redhat6 ~]# cd  php-5.4.24/   
  4. [root@redhat6 php-5.4.24]# ./configure \                         //配置php,对php的一些功能进行定制  
  5.  --prefix=/usr/local/php --enable-mbstring --enable-sockets \  
  6.  --with-apxs2=/usr/local/httpd/bin/apxs \  
  7.  --with-mysql=mysqlnd --with-mysqli=mysqlnd \  
  8.  --with-pdo-mysql=mysqlnd \  
  9.  --with-config-file-path=/usr/local/php  
  10. [root@svr5 php-5.4.24]# make &&make install               //编译+安装  
  11. .. ..  
  12. [root@redhat6 php-5.4.24]# cpphp.ini-development /usr/local/php/php.ini  //php安装之后配置文件不存在,需要从模板拷贝,然后进行修改  
  13. [root@redhat6 ~]# vim/usr/local/php/php.ini                  //建立配置文件  
  14. .. ..  
  15. default_charset = "utf-8"                                  //设置默认字符集   
  16. file_uploads = On                                     //允许从PHP网页上传文件  
  17. upload_max_filesize = 2M                                //允许上传的文件大小  
  18. max_file_uploads = 20                                     //每个请求最多上传文件数  
  19. [MySQL]  
  20. mysql.default_socket =/var/lib/mysql/mysql.sock  
  21. //指定MySQL套接字文件路径,如果不指定那么将无法访问数据库   

三:LAMP平台协同配置及测试

1. 调整 httpd.conf 配置文件

  1. [root@redhat6 ~]# vim  /usr/local/httpd/conf/httpd.conf  
  2. .. ..  
  3. LoadModule php5_module   modules/libphp5.so  
  4. <IfModule dir_module>  
  5.    DirectoryIndex index.html index.php                        //设置默认首页  
  6. </IfModule>  
  7. AddType application/x-httpd-php  .php                       //识别.php网页  
  8. .. ..  

2. 启动 LAMP 平台服务

  1. [root@svr5 ~]#/usr/local/httpd/bin/apachectl  restart  
  2. .. .. http://www.luyouqiboke.com  
  3. [root@svr5 ~]# service mysql restart   
  4. Shutting down MySQL...                          [确定]  
  5. Starting MySQL....                                         [确定]  
  6.    
  7. [root@svr5 ~]# netstat -anpt | grep -E'mysql|httpd'  
  8. tcp       0      0 :::80           :::*         LISTEN     27842/httpd  
  9. tcp       0      0 :::3306    :::*         LISTEN      27722/mysqld  

3. 创建测试网页,测试访问结果

1. 确保能正确解析 PHP 网页

  1. [root@redhat6 ~]# vim  /usr/local/httpd/htdocs/test1.php  
  2. <?php  
  3. phpinfo();  
  4. ?>  

—— 从浏览器访问 http://www.tarena.com/test1.php

2. 确保PHP网页可访问 MySQL 数据库

  1. [root@redhat6 ~]# vim/usr/local/httpd/htdocs/test2.php  
  2. <?php  
  3.    $link=mysql_connect('localhost','root','123456');  
  4.    if($linkecho "Success !!";               //成功则显示Success !!  
  5.    else echo "Failure !!";               //失败则显示Failure !!  
  6.    mysql_close();                           //关闭数据库连接  
  7. ?>  

—— 从浏览器访问 http://www.tarena.com/test2.php

注:在这个过程中最常见的问题就是访问数据库失败,主要原因是因为在修改php配置文件时,mysql.default_socket添加位置错误,一定要添加到[MySQL]所在的下面,还有一个原因就是在修改http配置文件时发生错误,AddType application/x-httpd-php .php 位置添加错误,然后检查mysql数据库是否启动成功。

四:部署 Discuz! X论坛系统

1. 提前为论坛建好数据库、授权用户

  1. [root@redhat6 ~]# mysql  -u root  -p                 //连接本机的 MySQL 数据库系统  
  2. Enter password:                                //验证数据库管理密码  
  3. .. ..  
  4. mysql> CREATE DATABASE bbsdb;                             //建库   
  5. mysql> GRANT all ON bbsdb.* TOrunbbs@localhost   IDENTIFIED BY  'adm123';  
  6.                                                 //创建该数据库的使用用户及密码,可以有权管理此数据库  
  7. mysql> QUIT                                          //退出客户端  

2. 释放及部署 Discuz! X 论坛程序包

  1. [root@redhat6 pub]# unzip  Discuz_X3.1_SC_UTF8.zip  -d tdir  
  2. .. ..  
  3. [root@redhat6 pub]# cp  -rf tdir/upload/ /usr/local/httpd/htdocs/bbs  
  4. [root@redhat6 pub]# cd  /usr/local/httpd/htdocs/bbs/  
  5. [root@redhat6 ~]# grep ^User/usr/local/httpd/conf/httpd.conf   
  6. User daemon  
  7. //因为httpd程序的默认用户是damon所以要给用户daemon对新添加的文件有读取的权限  
  8. [root@redhat6 bbs]# chown  -R daemon  template/  config/ data/ uc_server/  uc_client/  
  9. //使Web服务对相关目录有写入权限  

3. 通过Web界面执行安装

1)浏览器中访问http://www.tarena.com/bbs/install/

.. ..
.. ..

2)善后处理

  1. [root@redhat6 bbs]# mv install/  install.lock    //设置成功后避免再对设置进行修改  
  2. [root@redhat6 bbs]# chmod  600 install.lock/  
  3. [root@redhat6 bbs]# ls -ld install.lock/  
  4. 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能够正确访问

  1. [root@redhat5 ~]# yum -y install httpd   
  2. [root@redhat5 html]# cd /var/www/html/  
  3. [root@redhat5 html]# vim index.html   //建立测试网页  
  4. <html>  
  5. <head>  
  6. <title>防盗链测试页</title>  
  7. 显示来自外部站点的图片:  
  8. <imgsrc="http://www.tarena.com/bbs/static/image/common/logo.png">  
  9. </head>  
  10. </html>  
  11. [root@redhat5 html]# service httpd restart  

在浏览器中输入服务器IP地址能够正常访问到www.tanrena.com中的图片

2. 在受害网站上修改 httpd.conf 配置,启用防盗链

  1. [root@redhat6 bbs]# vim/usr/local/httpd/conf/httpd.conf   
  2. <Directory"/usr/local/httpd/htdocs">  
  3.    SetEnvIfNoCase Referer "^http://www.tarena.com/"  TRUSTED  
  4.    <FilesMatch "\.(jpg|gif|png)">  
  5.            Order Allow,Deny  
  6.            Allow from env=TRUSTED  
  7.            Allow from 127.0.0.1  
  8.    </FilesMatch>  
  9.    .. ..  
  10. </Directory>  
  11. [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 配置,改用重定向策略

  1. [root@redhat6 /]# vim/usr/local/httpd/conf/httpd.conf  
  2. <Directory"/usr/local/httpd/htdocs">   
  3.    RewriteEngine on  
  4.    RewriteCond %{HTTP_REFERER}  !^$  
  5.    RewriteCond %{HTTP_REFERER} !^http://www.tarena.com/.*$  [NC]  
  6.    RewriteRule .*\.(jpg|gif|png)$ http://www.tarena.com/bbs/noref.bmp [R,L]  
  7.    .. ..  
  8. </Directory>  
  9. [root@redhat6 /]# service httpd restart  

然后在盗链网站上输入服务器IP地址发现显示www.luyouqiwang.com中的警告图片。

标签:

给我留言