9. 配置防盗链
http://www.lishiming.net/thread-71-1-1.html

防止别人的网站,放你网站图片的链接,

位置一般情况下在 /usr/local/apache/conf/httpd.conf
或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
添加

SetEnvIfNoCase Referer "^http://www.ccvita.com" local_ref
SetEnvIfNoCase Referer "^http://ccvita.com" local_refSetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>

还一种写法,是用正则的,这种写法在各个版本的apache比较通用。
写法是

SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>

10. 访问控制
apache的order allow deny
http://www.lishiming.net/thread-832-1-1.html

apache限制某个目录下的php文件没有执行权限 http://www.lishiming.net/thread-1000-1-1.html
apache 针对访问uri 限制ip http://www.lishiming.net/thread-5365-1-1.html
几种限制ip的方法 http://www.lishiming.net/thread-6519-1-1.html

11. apache rewrite相关,后面讲到
apache 限制指定user_agent http://www.lishiming.net/thread-1033-1-1.html
apache 限制某些目录不能访问通过rewrite实现 http://www.lishiming.net/thread-3587-1-1.html
apache rewrite 出现死循环 http://www.lishiming.net/thread-1043-1-1.html

一. php配置
查看配置文件的路径 /usr/local/php/bin/php -i |grep -i config
vi /usr/locall/php/etc/php.ini

查找/disable_function
1. 配置disable_function
disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

禁止这些函数,禁止黑客用这些黑客访问

2. 配置error_log
display_error=off 这里如果是on 有助于我们去排错和调试========
log_errors=on
error_log=/usr/local/php/logs/php_errors.log 这里写绝对路径,创建logs目录,权限777
error_reporting = E_ALL & ~E_NOTICE 错误级别

查看网站出错的状态码
curl -I -x127.0.0.1:80 http://www.111.com/forum.php

错误级别参考 http://www.aminglinux.com/bbs/thread-6973-1-1.html

3. 配置open_basedir 限定访问目录

open_basedir = /data/www1:/tmp 在php.ini里面配置,一种方法,指定到别的目录去,就访问不了了

php_admin_value open_basedir "/data/www1:/tmp" 在虚拟主机配置,二种方法,

> /usr/local/php_errors.log 清空日志的意思

4. 安装php的扩展模块(memcache)
http://www.aminglinux.com/bbs/thread-45-1-1.html

源码包的模块
cd /usr/local/src/php-5.3.28/ext/

如果想要用哪些模块,就进入到模块 执行这个命令
ext]# cd ftp
[root@Centos6 ftp]#/usr/local/php/bin/phpize
需要安装autoconf yum install autoconf
然后再执行一下命令/usr/local/php/bin/phpize
ls
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install 这时告诉你这个动态模块在哪里
ls + 模块路径
出现 ftp.so

/usr/local/php/bin/php -i |grep -i extension_dir

vi /usr/local/php/etc/php.ini 配置加上ftp模块,需要手动加
进去加上 extension=ftp.so extension这里说明是一个动态加载
然后 /usr/local/php/bin/php -m |grep ftp 就多了ftp这个模块了

二. mysql配置

mysql调优: http://www.aminglinux.com/bbs/thread-5758-1-1.html

/etc/my.cnf 已经拷贝了这个模板
[mysqld]
socket = /tmp/mysql.sock # 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)等我写完后你再读
port = 3306 # 指定MsSQL侦听的端口
key_buffer = 384M # key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。索引被所有的线程共享,key_buffer的大小视内存大小而定。
table_cache = 512 # 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销
sort_buffer_size = 2M # 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。
注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB
read_buffer_size = 2M # 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。=====
query_cache_size = 32M # 指定MySQL查询结果缓冲区的大小
read_rnd_buffer_size = 8M # 改参数在使用行指针排序之后,随机读用的。
myisam_sort_buffer_size =64M # MyISAM表发生变化时重新排序所需的缓冲
thread_concurrency = 8 # 最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2
thread_cache = 8 # #缓存可重用的线程数
skip-locking # 避免MySQL的外部锁定,减少出错几率增强稳定性。 wait_timeout = 8 # 表示空闲的连接超时时间,默认是28800s,这个参数是和interactive_timeout一起使用的,也就是说要想让wait_timeout 生效,必须同时设置interactive_timeout
interactive_timeout = 8
long_query_time = 1 ##慢查询日志的超时时间
log_slow_queries = /path/to/slow_queries ## 慢查询日志路径,必须配合上面的参数一同使用

============
查看key_reads / key_read_requests 这两的值
登录mysql

SHOW STATUS LIKE 'key_read%';

--------
show varables like 'table%'

apache 限制指定user_agent http://www.lishiming.net/thread-1033-1-1.html
打开虚拟主机配置文件
判断是用什么搜索引擎
有些user_agent 不是我们想要的,可以通过rewrite功能针对 %{HTTP_USER_AGENT} 来rewirete到404页,从而达到限制某些user_agent的请求。

配置如下
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*bot.* [NC]
RewriteCond %{REQUEST_URI} !^/404*
RewriteRule .* /404.html
</IfModule>

测试curl -xlocalhost:80 www.111.com -I 跳到了404
curl -A "sfjslkfjlsjgssfhsl "-xlocalhost:80 www.111.com -I 这个就不是404了

curl -A "botslkfjlsjgssfhsl "-xlocalhost:80 www.111.com -I 这个是404 因为包含了bot

请注意,你的404.html千万别再跳转到其他页面了,否则很有可能就会死循环了。
其实rewrite到404.html 并不是很好的办法,而apache的rewrite功能有一项就是forbidden ,那就是 F
配置如下
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*bot.* [NC]
RewriteRule .* - [F]
</IfModule>
======================
apache 限制某些目录不能访问通过rewrite实现 http://www.lishiming.net/thread-3587-1-1.html

deny allow肯定是可以实现的,但是这个必须指定准确的目录,如果有很多个目录,但是都包含某个名字,比如
bbs.1.com/1/tmp/123.html
bbs.1.com/2/tmp/123.html
bbs.1.com/3/1/2/tmp/123.html
……
如果有很多,需要逐一去定义Directory 模块,这显然很麻烦,使用rewrite模块的 REQUEST_URI 就可以很容易实现。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^.*/data/* [NC] #data这个目录下的都访问不了
RewriteRule .* - [F]
</IfModule>

访问一下网站,看到很多东西没有出来,按下12,会看到有的文件是403就是限制了这个目录下面的文件了

======================
apache rewrite 出现死循环 http://www.lishiming.net/thread-1043-1-1.html

我的一条规则
RewriteRule ^.* /beian.html [R,L]
复制代码
使用curl测试,没有问题,但是使用浏览器访问时,出现了无限循环。
本来访问的是 www.111.com 结果变成了 www.111.com/111/111/111/.....
虽然在最后加了 [L] 依然不管用,可能apache还是不够智能,一直满足条件就一直去匹配,一直去跳转。最后没招了只能再加一个条件。

RewriteCond %{REQUEST_URI} !^/beian.html [NC]
RewriteRule ^.* /beian.html [R,L]

这样就不再循环了。

LAMP第三部分php配置和mysql配置的更多相关文章

  1. centos LAMP第三部分php,mysql配置 php配置文件 配置php的error_log 配置php的open_basedir 安装php的扩展模块 phpize mysql配置第二十一节课

    centos   LAMP第三部分php,mysql配置 php配置文件   配置php的error_log  配置php的open_basedir 安装php的扩展模块 phpize  mysql配 ...

  2. LAMP第三部分php,mysql配置

    php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshell ...

  3. 性能调优之MySQL篇三:MySQL配置定位以及优化

    1.优化方式 一般的优化方法有:硬件优化,配置优化,sql优化,表结构优化.下面仅仅介绍配置优化,具体优化设置可以参考本人另外一篇博客,传送门:https://www.cnblogs.com/lang ...

  4. LAMP 3.0 mysql配置讲解

    mysql 安装好后,我们是从安装包的 support-files 里面复制过来一个模板配置文件,默认 mysql 配置文件是在/etc/my.cnf 下,其实这个路径或者文件名字我们是可以修改的,在 ...

  5. lamp :在Linux 下搭建apache、Mysql、php

    CentOS下搭建LAMP环境 LAMP: Linux + Apache + PHP + Mysql. 系统: CentOS 7,64位. CentOS安装 我选取了64位的CentOS 7这个Lin ...

  6. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  7. MySQL配置

    一.登录MySQL 要登录到MySQL只需要使用如下命令. mysql -h localhost -u root -p localhost:IP地址: root:用户名: database:数据库名( ...

  8. Zabbix监控mysql配置及故障告警配置

    本文主要介绍zabbix监控mysql的配置,包含使用zabbix自带模板监控mysql相关信息及自定义key监控mysql同步情况.同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配 ...

  9. CentOS6.5 MySQL 配置设置总结笔记

    三.登录MySQL 登录MySQL的命令是mysql, mysql 的使用语法如下:  mysql [-u username] [-h host] [-p[password]] [dbname]  u ...

随机推荐

  1. 【转】iOS学习笔记(八)——iOS网络通信http之NSURLConnection

    移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLConnection实现http通信的方式. NSURLC ...

  2. 2018.1.30 PHP编程之验证码

    PHP编程之验证码 1.创建验证码函数 验证码函数输入通用函数,将函数放入global.func.php里. //创建一个随机码 for($ i=0;$i<4;$i++){ $_nmsg. = ...

  3. Unity的sendmessage用法

    刚学完sendmessage用法,自己也尝试测试了一下,用法如下: 1.在unity2017新建一个场景test 2.在场景中添加一个立方体cube作为主角,另添加一个胶囊体capsule,调整为如图 ...

  4. 深入理解new String()

    一. 引言 new String("hello")这样的创建方式,到底创建了几个String对象? 二. 分析 String s1 = "HelloWorld" ...

  5. iOS 控制section不悬停 --- iOS开发系列 ---项目中成长的知识八

    一般情况下,tableview中的section是会默认不随着tableview的滚动而滚动的,而是会等到属于这个section的cell滑完过后,然后往上顶(不知道大家能不能听懂=_=!) 有些时候 ...

  6. 第三篇、Swift基础学习

    1.常量与变量 什么是常量和变量 在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量 使用let来定义常量,定义之后不可以修改 使用var来定义变量,定义之后可以修改 变量的 ...

  7. STL笔记(こ)--删除数组中重复元素

    使用STL中的Unique函数: #include<bits/stdc++.h> using namespace std; void fun(int &n) //配套for_eac ...

  8. LGTB 学分块

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  65536kB 描述 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成 3 块 今天他得 ...

  9. 【解题报告】AtCoder ABC115 (附英文题目)

    ------------------------------迟到的AK---------------------------------- A - Christmas Eve Eve Eve Time ...

  10. 十一、Shell 文件包含

    Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号( ...