win10下安装apache2.4+php5.4.4+mysql5.7

一、安装准备
apache(httpd-2.4.35-x86-vc11.zip)下载地址:

https://www.apachehaus.com/cgi-bin/download.plx

php(php-5.4.44-Win32-VC9-x86.zip)官方扩展下载地址:

https://windows.php.net/downloads/releases/

mysql(mysql-installer-community-5.7.23.0.msi)官方下载地址:

https://downloads.mysql.com/archives/community/

二、安装apache
1、解压httpd-2.4.35-x86-vc11.zip,重命名为Apache24,并复制到你的安装目录
2、打开Apache24\conf\http.conf文件,修改以下内容

1)将SRVROOT值修改为当前apache文件夹位置

2)修改DocumentRoot路径

3)开启rewrite
LoadModule rewrite_module modules/mod_rewrite.so

4)修改网站默认启动文件
在配置中找到 DirectoryIndex 增加index.php

5)修改配置

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Require all denied
Satisfy all

修改其中的Deny from all 为allow from all(允许所有人访问)
修改其中的AllowOverride None为 AllowOverride All
修改其中的Require all denied为 Require all granted

3、以管理员身份进入cmd,并进入apache的bin目录,执行命令安装apache服务
安装服务:httpd -k install -n “Apache24″
卸载服务:httpd -k uninstall -n “Apache24″
启动服务:httpd -k start -n “Apache24″
停止服务:httpd -k stop -n “Apache24″
或进入bin目录,双击打开ApacheMonitor.exe,进行apache的启动和关闭

三、安装php
1、解压php-5.4.44-Win32-VC9-x86.zip,并重命名为php-5.4.44,拷贝到你的安装目录
2、复制php-5.4.44\php.ini-development并重命名为php.ini
3、打开php.ini修改如下配置
1)修改extension_dir目录指向php-5.4.44\ext,去掉前面的分号
2)打开你所需要的扩展,比如:extension=php_mysqli.dll
3)short_open_tag = On
4)设置默认时区date.timezone = PRC

curl安装时注意把你的php安装目录设置成系统环境变量就可以解决问题,不用拷贝网上说的那些乱七八糟的dll文件,一会儿放这儿,一会儿又放那儿,几下就整晕了

四、结合apache与php

打开Apache24\conf\http.conf文件,在文件的最后增加下面的配置

Include conf/extra/httpd-vhosts.conf #虚拟主机配置文件
AddType application/x-httpd-php .php #让apache识别php文件

LoadModule php7_module D:/netljc/php-5.4.44/php7apache2_4.dll
PHPIniDir “D:\netljc\php-5.4.44″ #指定php.ini所在的目录

五、配置虚拟主机
打开Apache24\conf\extra\httpd-vhosts.conf

ServerName test.com www.test.com
Documentroot D:\netljc\wwwroot\test\
DirectoryIndex index.html index.htm index.php #设置优先访问级

index.php
phpinfo();
?>
浏览器访问:http://www.test.com/index.php

redis服务端源码安装

#安装准备
yum install gcc-gcc++

#下载源码包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz

#解压
tar -zvxf redis-5.0.0.tar.gz
cd redis-5.0.0

#编译
make

#安装,并指定安装路径
make PREFIX=/home/wwwroot/redis install

#在源码包中复制配置文件到安装目录
cp redis.conf /home/wwwroot/redis/redis.conf
cd /home/wwwroot/redis/
vi redis.conf
编辑 daemonize no为 daemonize yes,后端运行

#启动redis
bin/redis-server ./redis.conf

#关闭
bin/redis-cli shutdown

#查看redis是否运行
ps -ef | grep -i redis

#客户端连接
bin/redis-cli

mysql5.7主从配置

场景:在同一台服务器上配置两个mysql实例,端口3306(主)、3307(从),服务器IP:192.168.19.155

第一步:在主mysql(3306端口)中创建一个从mysql(3307端口)主机中可以登录的MySQL用户
GRANT REPLICATION SLAVE ON *.* TO ‘slave’@’192.168.19.155′ IDENTIFIED BY ‘123456’;
FLUSH PRIVILEGES;

第二步:修改主mysql的配置,my.cnf

[code]

[mysqld3306]
port = 3306 # 设置监听开放端口
user=mysql # 设置运行用户
basedir   =/home/wwwroot/mysql
datadir   =/home/wwwroot/mysql/data3306 # 设置数据目录
socket    =/home/wwwroot/mysql/mysql3306.sock # 设置sock存放文件名
pid-file  =/home/wwwroot/mysql/mysql3306.pid # pid文件
log-error =/home/wwwroot/mysql/log/mysql3306.log # 错误日志
log-bin   =mysql-bin #开启二进制日志
server-id =001 #服务器id必须唯一
binlog-format=mixed #binlog format有三种形式:Statement、Mixed、Row,默认设置为mixed
binlog-do-db=demo #同步的库
binlog-ignore-db=mysql #不需要同步的库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

[/code]

登录主mysql

mysql -u root -p123456 -S \home\wwwroot\mysql\mysql3306.sock

执行命令:SHOW MASTER STATUS\G;

记录下File、Position两个选项

a

第二步:修改从mysql的配置,my.cnf

[code]

[mysqld3307]
port = 3307
user=mysql
basedir   =/home/wwwroot/mysql
datadir   =/home/wwwroot/mysql/data3307
socket    =/home/wwwroot/mysql/mysql3307.sock
pid-file  =/home/wwwroot/mysql/mysql3307.pid
log-error =/home/wwwroot/mysql/log/mysql3307.log
log-bin   =mysql-bin
server-id =002
binlog-format=mixed
replicate-ignore-db = mysql #不需要同步的库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys

[/code]

登录从mysql

mysql -u root -p123456 -S \home\wwwroot\mysql\mysql3307.sock

[code]

stop slave;
CHANGE MASTER TO\
MASTER_HOST="192.168.19.155",\
MASTER_USER="slave",\
MASTER_PASSWORD="123456",\
MASTER_LOG_FILE="mysql-bin.000032",\
MASTER_LOG_POS=733;
start slave

[/code]

在从服务器上执行命令:SHOW SLAVE STATUS\G 查看状态b

注意Slave_IO_Running、Slave_SQL_Running这两项一定要是 yes

Slave_IO_Running:在主服务器上同步二进制日志到从服务器
Slave_SQL_Running: 在从服务器上执行通过过来的二进制日志中的sql

 

 

centos 设置环境变量

在Linux CentOS系统上安装完MySQL后,为了使用方便,需要将mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行相关的mysql命令,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将mysql加入到环境变量中的方法(假设mysql安装在/home/wwwroot/mysql/中)。

方法一:直接运行命令export PATH=$PATH:/home/wwwroot/mysql/bin

使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。

方法二:执行vi ~/.bash_profile修改文件中PATH一行,将/home/wwwroot/mysql/bin加入到PATH=$PATH:$HOME/bin一行之后

这种方法只对当前登录用户生效

方法三:修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
export PATH=$PATH:/home/wwwroot/mysql/bin

centos7源码安装mysql5.7+版本并实现多个实例

一、安装前准备工作

1.1 检查 linux 系统版本

[code][root@localhost ~]#cat /etc/system-release[/code]

1.2 检查是否安装了 mysql

[code]
[root@localhost ~]# rpm -qa | grep mysql
[root@localhost ~]# rpm -e –nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64
[/code]

若存在 mysql 安装文件,则会显示 mysql安装的版本信息
如:mysql-connector-odbc-5.2.5-6.el7.x86_64
卸载已安装的MySQL,卸载mysql命令,如下:
将/var/lib/mysql文件夹下的所有文件都删除干净。
细节注意:
检查一下系统是否存在 mariadb 数据库,如果有,一定要卸载掉,否则可能与 mysql 产生冲突。
系统安装模式的是最小安装,所以没有这个数据库。
检查是否安装了 mariadb,如果有就使劲卸载干净:

[code]
[root@localhost ~]# rpm -qa | grep mariadb
[root@localhost ~]# systemctl stop mariadb
[root@localhost ~]# rpm -qa | grep mariadb
[root@localhost ~]# rpm -e –nodeps mariadb-5.5.52-1.el7.x86_64
[root@localhost ~]# rpm -e –nodeps mariadb-server-5.5.52-1.el7.x86_64
[root@localhost ~]# rpm -e –nodeps mariadb-libs-5.5.52-1.el7.x86_64
[/code]

1.3 系统内存检查
安装5.6以及以上版本的mysql需要服务器的内存至少在1G以上。

1.4 安装必要的软件包
yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake

1.5 下载安装文件,下载源码版本,选择Source Code
wget https://downloads.mysql.com/archives/get/file/mysql-5.7.23.tar.gz

二、安装

2.1 添加用户

[code]
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql
[/code]

2.2 创建安装目录
[code]
[root@localhost ~]# mkdir -p /home/wwwroot/mysql
[root@localhost ~]# chown -R mysql:mysql /home/wwwroot/mysql
[/code]

2.3 编译安装
[code]
[root@localhost ~]# tar -zxvf mysql-5.7.23.tar.gz
[root@localhost ~]# cd mysql-5.7.23
[root@localhost ~]# cmake \
-DCMAKE_INSTALL_PREFIX=/home/wwwroot/mysql \
-DMYSQL_DATADIR=/home/wwwroot/mysql/data3306 \
-DSYSCONFDIR=/home/wwwroot/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/home/wwwroot/mysql/mysqld3306.sock\
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DMYSQL_USER=mysql \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

[root@localhost ~]# make && make install
[/code]

参数说明:
DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径
DMYSQL_DATADIR=/data/mysql:数据文件存放位置
DSYSCONFDIR=/etc:my.cnf路径
DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎
DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎
DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径
DMYSQL_TCP_PORT=3306:端口
DENABLED_LOCAL_INFILE=1:允许从本地导入数据
DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区
DEXTRA_CHARSETS=all:安装所有的字符集
DDEFAULT_CHARSET=utf8:默认字符
DWITH_EMBEDDED_SERVER=1:嵌入式服务器

2.4 第一种安装方式:每个端口的配置文件独立
2.4.1 添加配置文件,并初始化数据库,实例化两个端口
my3306.cnf
[code]
[client]
port = 3306
socket = /home/wwwroot/mysql/mysql3306.sock

[mysqld]
basedir = /home/wwwroot/mysql
datadir = /home/wwwroot/mysql/data3306
port = 3306
socket = /home/wwwroot/mysql/mysql3306.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[/code]
my3307.cnf
[code]
[client]
port = 3307
socket = /home/wwwroot/mysql/mysql3307.sock

[mysqld]
basedir = /home/wwwroot/mysql
datadir = /home/wwwroot/mysql/data3307
port = 3307
socket = /home/wwwroot/mysql/mysql3307.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[/code]
[code]
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld \
–defaults-file=/home/wwwroot/mysql/my3306.cnf \
–user=mysql \
–basedir=/home/wwwroot/mysql \
–datadir=/home/wwwroot/mysql/data3306 \
–initialize-insecure

[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld \
–defaults-file=/home/wwwroot/mysql/my3307.cnf \
–user=mysql \
–basedir=/home/wwwroot/mysql \
–datadir=/home/wwwroot/mysql/data3307 \
–initialize-insecure
[/code]
initialize-insecure#不需要密码
2.4.2 启动mysql后台运行
[code]
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld_safe –defaults-extra-file=/home/wwwroot/mysql/my3306.cnf –user=mysql &
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld_safe –defaults-extra-file=/home/wwwroot/mysql/my3307.cnf –user=mysql &
[/code]
如果只是单例(一台服务器只运行一个端口),可以用下面的方式添加服务,拷贝服务脚本到init.d目录
[code]
[root@localhost ~]# cp /home/wwwroot/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost ~]# chkconfig mysql –add
[root@localhost ~]# chkconfig mysql on
[root@localhost ~]# service mysql start
[root@localhost ~]# service mysql restart
[root@localhost ~]# service mysql stop
[/code]

2.4.5 进入3307端口的mysql,初始化root密码
[code]
[root@localhost ~]# mysql -u root -p -S /home/wwwroot/mysql/mysql3307.sock
[root@localhost ~]# SET PASSWORD = PASSWORD(‘123456′);
[root@localhost ~]# GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
[root@localhost ~]# flush privileges;
[/code]
建立软连接,不然mysql -uroot执行不了
[code]ln -s /home/wwwroot/mysql/bin/mysql /usr/bin[/code]

2.4.6 停止MYSQL实例,对应的sock文件
[code]
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqladmin -u root -p123456 -S /home/wwwroot/mysql/mysql3306.sock shutdown
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqladmin -u root -p123456 -S /home/wwwroot/mysql/mysql3307.sock shutdown
[/code]

2.5 第二种安装方式:使用mysql自带的多实例
2.5.1 初始化数据库,使用同一个配置文件
my.cnf
[code]
[mysqld_multi]
mysqld =/home/wwwroot/mysql/bin/mysqld_safe
mysqladmin=/home/wwwroot/mysql/bin/mysqladmin
log =/home/wwwroot/mysql/log/mysql_multi.log
user =xxx
password =xxx

[mysqld3306]
# 设置监听开放端口 [多实例中一定要不同]
port = 3306
# 设置运行用户
#user=mysql
basedir =/home/wwwroot/mysql
# 设置数据目录 [多实例中一定要不同]
datadir =/home/wwwroot/mysql/data3306
# 设置sock存放文件名 [多实例中一定要不同]
socket =/home/wwwroot/mysql/mysql3306.sock
#log-error =/home/wwwroot/mysql/log/mysql3306.log
pid-file =/home/wwwroot/mysql/mysql3306.pid

[mysqld3307]
port = 3307
#user=mysql
basedir =/home/wwwroot/mysql
datadir =/home/wwwroot/mysql/data3307
socket =/home/wwwroot/mysql/mysql3307.sock
#log-error =/home/wwwroot/mysql/log/mysql3307.log
pid-file =/home/wwwroot/mysql/mysql3307.pid
[/code]
2.5.2 初始化数据库
[code]
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld \
–defaults-file=/home/wwwroot/mysql/my.cnf \
–user=mysql \
–basedir=/home/wwwroot/mysql \
–datadir=/home/wwwroot/mysql/data3306 \
–initialize-insecure

[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld \
–defaults-file=/home/wwwroot/mysql/my.cnf \
–user=mysql \
–basedir=/home/wwwroot/mysql \
–datadir=/home/wwwroot/mysql/data3307 \
–initialize-insecure
[/code]
2.5.3 启动mysql
[code][root@localhost ~]# /home/wwwroot/mysql/bin/mysqld_multi –defaults-file=/home/wwwroot/mysql/my.cnf start [/code]
有可能会报错,需要执行下面的代码设置PATH
[code]
[root@localhost ~]# vi /etc/profile
[/code]
找到export PATH=段,加入:/home/wwwroot/mysql/bin
也可以使用
[code]
[root@localhost ~]# cp /home/wwwroot/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
[root@localhost ~]# service mysqld_multi start 3306,3307
[root@localhost ~]# service mysqld_multi restart
[root@localhost ~]# service mysqld_multi stop
[/code]
如果后面不加3306或者3307默认是对所有的实例进行操作,my.cnf中设置的mysqld_multi段中设置的用户密码在stop的时候会用到,因为是明文,所以需要修改启动脚本
[code]
[root@localhost ~]# vi bin/mysqld_multi
修改
my $com= join ‘ ‘, ‘my_print_defaults’, @defaults_options, $group;

my $com= join ‘ ‘, ‘my_print_defaults -s’, @defaults_options, $group;
[/code]
2.5.4 查看实例的运行状态
[code]
[root@localhost ~]# service mysqld_multi report
[root@localhost ~]# /home/wwwroot/mysql/bin/mysqld_multi report
[/code]

centos使用unzip命令解压中文文件名乱码

解决办法:

1、修改服务器编码

[code]

vim /etc/locale.conf

[/code]

将LANG=”XXXX” 改为LANG=”zh_CN.UTF-8″。

2、加入环境变量

[code]

vim /etc/environment

#加入下面两行

UNZIP=”-O CP936″

ZIPINFO=”-O CP936″

[/code]

也可以通过添加参数解决

[code]

unzip -O GBK xxx.zip

[/code]

centos管理服务的两种方式service和systemctl

1.service命令
service命令其实是去/etc/init.d目录下,去执行相关程序

# service命令启动redis脚本
service redis start
# 直接启动redis脚本
/etc/init.d/redis start
# 开机自启动
update-rc.d redis defaults

2.systemctl命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl
1)systemctl命令兼容了service
即systemctl也会去/etc/init.d目录下,查看,执行相关程序

systemctl redis start
systemctl redis stop
# 开机自启动
systemctl enable redis

2)systemctl命令管理systemd的资源Unit
systemd的Unit放在目录/usr/lib/systemd/system
主要有四种类型文件.mount,.service,.target,.wants

.mount文件定义了一个挂载点,[Mount]节点里配置了What,Where,Type三个数据项
等同于以下命令:
mount -t hugetlbfs /dev/hugepages hugetlbfs

1

.service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节

2
[Unit]
Description:描述,
After:在network.target,auditd.service启动后才启动
ConditionPathExists: 执行条件

[Service]
EnvironmentFile:变量所在文件
ExecStart: 执行启动脚本
Restart: fail时重启

[Install]
Alias:服务别名
WangtedBy: 多用户模式下需要的

.target定义了一些基础的组件,供.service文件调用

3

.wants文件
.wants文件定义了要执行的文件集合,每次执行,.wants文件夹里面的文件都会执行

任务 旧指令 新指令
使某服务自动启动 chkconfig –level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig –level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息)
systemctl is-active httpd.service (仅显示是否 Active)
加入自定义服务 chkconfig –add test systemctl load test.service
删除服务 chkconfig –del xxx 停掉应用,删除相应的配置文件
显示所有已启动的服务 chkconfig –list systemctl list-units –type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

centos7防火墙端口设置及相关操作命令

1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl –failed

3.配置firewalld-cmd

查看版本: firewall-cmd –version
查看帮助: firewall-cmd –help
显示状态: firewall-cmd –state
查看所有打开的端口: firewall-cmd –zone=public –list-ports
更新防火墙规则: firewall-cmd –reload
查看区域信息: firewall-cmd –get-active-zones
查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0
拒绝所有包:firewall-cmd –panic-on
取消拒绝状态: firewall-cmd –panic-off
查看是否拒绝: firewall-cmd –query-panic

那怎么开启一个端口呢
添加
firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd –reload
查看
firewall-cmd –zone= public –query-port=80/tcp
删除
firewall-cmd –zone= public –remove-port=80/tcp –permanent

php字符串的Heredoc、Nowdoc结构

Heredoc 结构

第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。

Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义,但是上文中列出的转义序列还可以使用。变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。
[php]
<?php
$bar = <<<LABEL
Nothing in here...
LABEL;
?>
[/php]

Nowdoc 结构

就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的

一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。
[php]

<?php
class foo {
public $bar = <<<'EOT'
bar
EOT;
}
?>

[/php]

php错误级别

 

常量 说明
1 E_ERROR 报告导致脚本终止运行的致命错误
2 E_WARNING 报告运行时的警告类错误(脚本不会终止运行)
4 E_PARSE 报告编译时的语法解析错误
8 E_NOTICE 报告通知类错误,脚本可能会产生错误
16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。
32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。
64 E_COMPILE_ERROR 编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR。
128 E_COMPILE_WARNING 编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告。
256 E_USER_ERROR 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
512 E_USER_WARNING 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
1024 E_USER_NOTICE 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
4096 E_RECOVERABLE_ERROR 开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())
8191 E_ALL 所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

 

//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);

注意:使用set_error_handler函数后error_reporting的设置将全部失效,可以通过set_error_handler函数的第二个参数解决这个问题