调优,安全
如果是运维一个网站,PHP搭建的话,可能会出现500的错误,白页
怎么去排查呢,今天就涉及到这方面的东西

http://blog.csdn.net/bsi_l4/article/details/49632729 关于Ctrl+R的
http://blog.csdn.net/jiazhen/article/details/3488956 以及/etc/inputrc文件详解

///////////////////////////
查找我们的php配置文件在哪
方法1:/usr/local/php/etc/php -i |head
方法2:phpinfo(),在web界面找Loaded Configuration File的路径()最靠谱的方法

开机启动,放到rc.local

disable_functions = 默认为空

curl使用方法

display_errors = On/Off (默认Off )

一、php配置
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

在php.ini里面,禁掉一些危险的函数
其中,shell_exec和exec比较危险,必须禁掉

php即使有错误,Apache检测不出来

2.配置错误日志error_log
display_error=on(这个相当于是调试开关,如果出现200的空白页,可以看到具体的错误)

但是这样会被别有用心的人看到
那要怎么办呢,既记录日志又不给别人看
display_error=off
error_log=/path/to/logfile,/usr/local/php/logs/error.log
log_errors = On
error_reporting = E_ALL|E_STRICT(日志级别)

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

/usr/local/php/logs/error.log
注意这个文件的权限

3.配置open_basedir(这是一个安全配置)
应用场景:服务器有多个网站,把它分割开,令不同网站不相互影响
相当于chroot

php.ini:open_basedir=/dir1/:/dir2

eg: php.ini : open_basedir=/data/www2/:/tmp/
这是限定一个的

但是我们如果我们有几个网站的话,把所有的目录都打开,会很危险,那该怎么办呢

*因为我们(不同的)虚拟主机都是在Apache里面配置的,所以这个时候我们就要去那里配置了,不同的VitualHost配置不同的base_dir
/usr/local/apache/conf/extra/v...conf :在virtualhost里面加上这句
php_admin_value open_basedir "/dir1/:/dir2"
eg: php_admin_value open_basedir "/data/www2/:/tmp/"
(配置了以后在php.ini那里记得注释掉那句)
/etc/local/php/bin/php -m 列出模块

4.安装php的拓展模块(memcache,这是个缓存用的)
http://www.aminglinux.com/thread-45-1-1.html

如果Apache不重启,phpinfo也是搜不到的

二、MySQL配置(部分常用的参数)

autoconf.noarch要安装这个东西

这个时候我们要/etc/my.cnf配置文件

[mysqld]
socket = /tmp/mysqld.socket
为MySQL客户程序与服务器之间的本地通信制定一个套接字文件(Linux下默认是/var/lib.mysql/mysql.sock文件)

port = 3306
#指定MySQL侦听的端口

skip-name-resolve (反解析)
#指定MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间,但需要注意,如果开启选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求
↑这个类似我们sshd里面

key_buffer = 384M
#key_buffer是用于索引块得缓冲区大小,增加它可以得到更好处理的索引(对所有读和多重写),索引被所有的县城共享
key_buffer大小视内存大小而定

table_open_cache = 512
#MySQL每打开一个表,都会杜如一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才回去磁盘上读取,默认值64,假定系统有200个并发连接,则需要将此参数设置为200*N(N位每个连接所需要的文件描述符数目);当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上

max_allowed_packet = 4M
#接收的数据包大小;增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出场查询或者MySQLd必须返回打的结果时MySQLd才会分配更多内存。该变量之所以取较小默认值时一中预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因为偶然使用打的信息包而导致内存溢出

sort_buffer_stze = 2M
#没意思情况执行排序时适用的缓冲大小,如果想要增加ORDER BY的速度,首先可以让MySQL使用索引而不是额外的排序阶段,如果不能,可以尝试增加sort_buffer_size变量的大小

read_buffer_size = 2M
#读查询操作能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享,对表进行顺序扫描的请求分配一个读入缓冲区,MySQL会为他分配一段内存缓冲区,如果对表的顺序扫描请求非常平凡,并却你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高性能

join_buffer_size = 2M
#联合查询操作所能适用的缓冲区大小,和sort_buffer_size一样,改参数对应的分配内存也是每连接独享

query_cache_size = 2M
#指定MySQL查询结果缓冲区大小

read_md_buffer_size = 2M
#随机读缓冲区大小,按任意书序读取行时(例如,按照排序顺序),将分配一个随机读缓存区,进行排序查询时,MySQL会首先扫描一遍改缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值,但MySQL会为每个用户连接发放该缓冲空间,所以应尽量适当设置改配置,以避免内存开效果大

myisam_sort_buffer_size = 64M
#MyISAM表发生变化时重新排序所需的缓冲

thread_concurrency = 8
#最大并发线程数,取值为服务器逻辑CPU数量*2

thread_cache = 8
#该值表示可以重新利用保存在缓存中线程的数量,当断开连接时若缓存中海油空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么线程将被重新创建,设值规律为:1G内存设置为8,2G内存设置为16,4G以上设置为64

max_connections = 1000
#MySQL最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以适当调整该值,不能盲目提高设值,可通过conn%通配符查看当前状态的连接数量,以定夺值的大小

max_connect_errors = 6000
#对于同一主机,如果有超过该参数值个数的中断错误链接,则该主机将被禁止连接,如需要对该主机进行解禁,执行:FLUSH_HOST

open_files_limit = 65535
#MySQL打开的文件描述符限制,默认最小1024

skip_locking
#避免MySQL的外部锁定,减少出错几率增强稳定性

wait_timeout = 8
#表示空闲的连接超时时间,默认是28800s,这个参数适合interactive_timeout一起使用的,也就是说要想让wait_timeout生效,必须同时设置interactive_timeout

interactive_timeout = 8

log_query_time = 1
#慢查询日志的超时时间

log_slow_queries = /path/to/slow_queries
#慢查询日志路径,必须配合上面的参数一同使用

拓展部分看图片

【CentOS】LAMP相关3的更多相关文章

  1. centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课

    centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节 ...

  2. 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配 ...

  3. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  4. 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目

    在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目 作者 DonnieZero 关注 2017.07.29 22:02* 字数 2218 阅读 5556评论 3喜欢 1赞赏 1 ...

  5. centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课

    centos  LAMP第四部分mysql操作  忘记root密码  skip-innodb 配置慢查询日志 mysql常用操作  mysql常用操作 mysql备份与恢复   第二十二节课 mysq ...

  6. centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课

    centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...

  7. 【CentOS】LAMP相关2

    ////////////////配置Apache//////////////////////////// 拿一个discuz来演示 LFS是什么,然后去掌握以下吧,对我们的提升很大?????听说广州的 ...

  8. 【CentOS】LAMP相关4

    MySQL不支持TAB补全.mysql_history命令历史 用SOCKET形式登陆:mysql -uroot -p123456,mysql -uroot -p123456 -S /var/lib/ ...

  9. CentOS LAMP环境 配置详解

    要想在linux上实现网页服务器(www)需要Apache这个服务器软件,不过Apache仅能提供最基本的静态网站数据而已,想要实现动态网站的话,最好还是要PHP与MySQL的支持,所以下面我们将会以 ...

随机推荐

  1. Myeclipse 构建工作空间出错

    MyEclipse工作空间报错如下:'Building workspace' has encountered a problem. Errors occurred during the build.并 ...

  2. Sublime Text 3 安装Package Control

    原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: ...

  3. UI第十七节——UIScrollView

    // 实例化一个ScrollView    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen main ...

  4. Java Bean、POJO、 Entity、 VO 、PO、DAO

    Java Bean.POJO. Entity. VO , 其实都是java 对象,只不过用于不同场合罢了.    Java Bean: 就是一个普通的Java 对象, 只不过是加了一些约束条件.  声 ...

  5. [转载]PV操作简单理解

      原文链接:http://blog.csdn.net/liushuijinger/article/details/7586656 进程通常分为就绪.运行和阻塞三个工作状态.三种状态在某些条件下可以转 ...

  6. mysql:ibdata1和mysql-bin log管理

    MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空:truncate table xxx;然后o ...

  7. HTML页面如何判断是手机访问还是电脑访问

    可以通过js来判断访问设备,代码如下: <script type="text/javascript"> var system ={}; var p = navigato ...

  8. Linux下安装流量监控工具iftop

    在Linux系统中,top命令可以查看系统资源包括内存,CPU占用信息,查看和探测网络状态可以使用netstat,nmap等工具,实时流量监控可以使用iftop,下面是在CentOS7系列系统上安装i ...

  9. markdown博文测试

    一级标题 二级标题 正文 三级标题 C代码: // code #include <stdio.h> int main() { printf("Hello, World!\n&qu ...

  10. CentOS7中安装MySQL(简便)及 网站的搭建

    一.首先,我们需要配置CentOS7中网络环境的搭建,物理机IP为192.168.100.39,虚拟机IP为192.168.100.139,网络模式设置为桥接模式 ,再进入系统挂载光盘.输入命令   ...