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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介:

部署LAMP平台和网站的防盗链

 

定制LAMP平台

一:安装、运行MySQL5.6服务器

LAMP构成:LinuxApacheMySQLPHP/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文件下记录的密码

 

二:编译安装 httpdphp

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

 

注:在源码安装前一定要安装gccmake开发工具

 

 

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

.. ..

[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.tanrea.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.tanrea.com中的警告图片










本文转自 无心低语 51CTO博客,原文链接:http://blog.51cto.com/fengzhankui/1545915,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
负载均衡 网络协议 应用服务中间件
C++文件服务器项目—Nginx—3(三)
C++文件服务器项目—Nginx—3(三)
380 0
|
1天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23268 1
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
3天前
|
人工智能 API 开发工具
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
Claude Code是我目前最推荐的AI编程工具,没有之一。 它可能不是最简单的,但绝对是上限最高的。一旦跑通安装、接上模型、定好规范,你会发现很多原本需要几小时的工作,现在几分钟就能搞定。 这套方案的核心优势就三个字:可控性。你不用依赖任何不稳定服务,所有组件都在自己手里。模型效果不好?换一个。框架更新了?自己决定升不升。 这才是AI时代开发者该有的姿势——不是被动等喂饭,而是主动搭建自己的生产力基础设施。 希望这篇保姆教程,能帮你顺利上车。做出你自己的作品。
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
|
11天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
4244 23
|
5天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
2440 6
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
6天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
2926 8
|
23天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
19815 61
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)

热门文章

最新文章