设为首页 收藏本站
查看: 722|回复: 0

LAMP第三部分php配置和mysql配置

[复制链接]

尚未签到

发表于 2015-8-20 11:24:57 | 显示全部楼层 |阅读模式
  
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
[iyunv@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]
  这样就不再循环了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-101573-1-1.html 上篇帖子: [转]fedora下搭建lamp 下篇帖子: yum 安装LAMP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表