一、安装配置PHP
1、下载Php的版本zip包之后,解压缩到指定目录。下载地址:http://www.php.net/downloads.php
2、在Apache的httpd.conf文件中加入以下
#Php模块加载
LoadModulephp5_module"D:/Software/GreenSoft/Php/php5.4.6/php5apache2_2.dll"
#php.ini路径设置
PHPIniDir"D:/Software/GreenSoft/Php/php5.4.6/"
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php-source.phps
#加入后缀名过滤
AddHandlerapplication/x-httpd-php.php
#或者以下配置应用过滤
<FilesMatch\.php$>
SetHandlerapplication/x-httpd-php
</FilesMatch>
二、配置MySql
在php.ini修改以下配置:
#修改php的扩展库目录为你的实际路径
extension_dir="D:/Software/GreenSoft/Php/php5.4.6/ext"
#去掉#extension=php_mysql.dll前面的#号
extension=php_mysql.dll
三、安装MySql
MySql的下载地址:http://www.mysql.com/downloads/
下载安成相应版本的压缩包后。解压至相应的目录D:\Software\GreenSoft\MySql\MySql56。
1.将Mysql安装成服务
在Windows环境变量的系统变量Path中追加D:\Software\GreenSoft\MySql\MySql56\bin;,并在Dos窗口中输入以下命令:
#进入mysql的bin目录
cdD:\Software\GreenSoft\MySql\MySql56\bin
#停掉之前开启的mysql进程
mysqladmin-uroot-pdebugshutdown
#安装mysql服务。指定服务名MySql56,配置文件名路径
mysqld--installMySql56--defaults-file=D:\Software\GreenSoft\MySql\MySql56\my.cnf
#启动服务程序
netstartMySql56
#停止服务程序
netstopMySql56/mysqladmin-urootshutdown
#移除服务
mysqld--removeMySql56/scdeleteMySql56
#测试MySql
mysqlshow
mysqlshow-urootMySql56
mysqladminversionstatusproc
mysqltest
2.配置MySql配置文件
port=3306#mysql服务端默认监听(listenon)的TCP/IP端口
serverid=1
socket=/tmp/mysql.sock
basedir="D:/Software/GreenSoft/MySql/MySql56/"#基准根路径
datadir="E:/DataRoot/MySqlData/"#mysql数据库文件所在目录
log-error="D:/Software/GreenSoft/MySql/MySql56/log/error.log"#错误日志文件
log-slow-queries="D:/Software/GreenSoft/MySql/MySql56/log/slow-query.log"
character-set-server=latin1#服务端使用的字符集默认为8比特编码的latin1字符集
default-storage-engine=INNODB#创建新表时将使用的默认存储引擎
wait_timeout=10#指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION#SQL模式为strict模式
max_connect_errors=10000000
max_connections=100#mysql服务器支持的最大并发连接数
back_log=384#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
query_cache_size=32#查询缓存大小,用于缓存SELECT查询结果
read_buffer_size=4M#默认为64K,#用于对MyISAM表全表扫描时使用的缓冲区大小。针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时,MySql会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。
read_rnd_buffer_size=16M#默认为256K
key_buffer_size=54M#KeyBuffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读)
sort_buffer_size=32M#默认为256K,connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size
join_buffer_size=8M#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
skip-locking#避免MySQL的外部锁定,减少出错几率增强稳定性。
skip-name-resolve#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
skip-networking#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!
table_cache=1024#物理内存越大,设置就越大.默认为2402,调到512-1024最佳
table_open_cache=256#设置table高速缓存的数量
tmp_table_size=34M#内存中的每个临时表允许的最大大小,默认为16M,调到64-256最挂
thread_cache_size=120#默认为60缓存的最大线程数
thread_concurrency=8#该参数取值为服务器逻辑CPU数量*2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4*2=8
#InnoDB相关参数
innodb_additional_mem_pool_size=3M#InnoDB用于存储元数据信息的内存池大小,一般不需修改
innodb_buffer_pool_size=105M#InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。
innodb_flush_log_at_trx_commit=1#事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒。
innodb_log_buffer_size=2M#InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,即使是长事务。
innodb_log_file_size=53M#每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100%
innodb_thread_concurrency=9#InnoDB内核最大并发线程数
#MyISAM相关参数
myisam_max_sort_file_size=100G#mysql重建索引时允许使用的临时文件最大大小
myisam_sort_buffer_size=68M
配置说明:
basedir=path
使用给定目录作为根目录(安装目录)。
character-sets-dir=path
给出存放着字符集的目录。
datadir=path
从给定目录读取数据库文件。
pid-file=filename
为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。
socket=filename
为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统;默认设置一般是/var/lib/mysql/mysql.sock文件)。在Windows环境下,如果MySQL客户与服务器是通过命名管道进行通信的,–sock选项给出的将是该命名管道的名字(默认设置是MySQL)。
lower_case_table_name=1/0
新目录和数据表的名字是否只允许使用小写字母;这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。
mysqld程序:语言设置
character-sets-server=name
新数据库或数据表的默认字符集。为了与MySQL的早期版本保持兼容,这个字符集也可以用–default-character-set选项给出;但这个选项已经显得有点过时了。
collation-server=name
新数据库或数据表的默认排序方式。
lanuage=name
用指定的语言显示出错信息。
mysqld程序:通信、网络、信息安全
enable-named-pipes
允许Windows2000/XP环境下的客户和服务器使用命名管道(namedpipe)进行通信。这个命名管道的默认名字是MySQL,但可以用–socket选项来改变。
local-infile[=0]
允许/禁止使用LOADDATALOCAL语句来处理本地文件。
myisam-recover[=opt1,opt2,...]
在启动时自动修复所有受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE;它们与myisamchk程序的同名选项作用相同。
old-passwords
使用MySQL3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL4.1版本开始引入的新加密算法)。
port=n
为MySQL程序指定一个TCP/IP通信端口(通常是3306端口)。
safe-user-create
只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令;这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令)。
shared-memory
允许使用内存(sharedmemory)进行通信(仅适用于Windows)。
shared-memory-base-name=name
给共享内存块起一个名字(默认的名字是MySQL)。
skip-grant-tables
不使用mysql数据库里的信息来进行访问控制(警告:这将允许用户任何用户去修改任何数据库)。
skip-host-cache
不使用高速缓存区来存放主机名和IP地址的对应关系。
skip-name-resovle
不把IP地址解析为主机名;与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进。
skip-networking
只允许通过一个套接字文件(Unix/Linux系统)或通过命名管道(Windows系统)进行本地连接,不允许ICP/IP连接;这提高了安全性,但阻断了来自网络的外部连接和所有的Java客户程序(Java客户即使在本地连接里也使用TCP/IP)。
user=name
mysqld程序在启动后将在给定UNIX/Linux账户下执行;mysqld必须从root账户启动才能在启动后切换到另一个账户下执行;mysqld_safe脚本将默认使用–user=mysql选项来启动mysqld程序。
mysqld程序:内存管理、优化、查询缓存区
bulk_insert_buffer_size=n
为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。
key_buffer_size=n
用来存放索引区块的RMA值(默认设置是8M)。
join_buffer_size=n
在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K)。
max_heap_table_size=n
HEAP数据表的最大长度(默认设置是16M);超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。
max_connections=n
MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。
query_cache_limit=n
允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。
query_cache_size=n
查询缓存区的最大长度(默认设置是0,不开辟查询缓存区)。
query_cache_type=0/1/2
查询缓存区的工作模式:0,禁用查询缓存区;1,启用查询缓存区(默认设置);2,”按需分配”模式,只响应SELECTSQL_CACHE命令。
read_buffer_size=n
为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB);这个选项的设置值在必要时可以用SQL命令SETSESSIONread_buffer_size=n命令加以改变。
read_rnd_buffer_size=n
类似于read_buffer_size选项,但针对的是按某种特定顺序(比如使用了ORDERBY子句的查询)输出的查询结果(默认设置是256K)。
sore_buffer=n
为排序操作分配的缓存区的长度(默认设置是2M);如果这个缓存区太小,则必须创建一个临时文件来进行排序。
table_cache=n
同时打开的数据表的数量(默认设置是64)。
tmp_table_size=n
临时HEAP数据表的最大长度(默认设置是32M);超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。
mysqld程序:日志
log[=file]
把所有的连接以及所有的SQL命令记入日志(通用查询日志);如果没有给出file参数,MySQL将在数据库目录里创建一个hostname.log文件作为这种日志文件(hostname是服务器的主机名)。
log-slow-queries[=file]
把执行用时超过long_query_time变量值的查询命令记入日志(慢查询日志);如果没有给出file参数,MySQL将在数据库目录里创建一个hostname-slow.log文件作为这种日志文件(hostname是服务器主机名)。
long_query_time=n
慢查询的执行用时上限(默认设置是10s)。
long_queries_not_using_indexs
把慢查询以及执行时没有使用索引的查询命令全都记入日志(其余同–log-slow-queries选项)。
log-bin[=filename]
把对数据进行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变更日志,binaryupdatelog)。这种日志的文件名是filename.n或默认的hostname.n,其中n是一个6位数字的整数(日志文件按顺序编号)。
log-bin-index=filename
二进制日志功能的索引文件名。在默认情况下,这个索引文件与二进制日志文件的名字相同,但后缀名是.index而不是.nnnnnn。
max_binlog_size=n
二进制日志文件的最大长度(默认设置是1GB)。在前一个二进制日志文件里的信息量超过这个最大长度之前,MySQL服务器会自动提供一个新的二进制日志文件接续上。
binlog-do-db=dbname
只把给定数据库里的变化情况记入二进制日志文件,其他数据库里的变化情况不记载。如果需要记载多个数据库里的变化情况,就必须在配置文件使用多个本选项来设置,每个数据库一行。
binlog-ignore-db=dbname
不把给定数据库里的变化情况记入二进制日志文件。
sync_binlog=n
每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。
log-update[=file]
记载出错情况的日志文件名(出错日志)。这种日志功能无法禁用。如果没有给出file参数,MySQL会使用hostname.err作为种日志文件的名字。
mysqld程序:镜像(主控镜像服务器)
server-id=n
给服务器分配一个独一无二的ID编号;n的取值范围是1~2的32次方启用二进制日志功能。
log-bin=name
启用二进制日志功能。这种日志的文件名是filename.n或默认的hostname.n,其中的n是一个6位数字的整数(日志文件顺序编号)。
binlog-do/ignore-db=dbname
只把给定数据库里的变化情况记入二进制日志文件/不把给定的数据库里的变化记入二进制日志文件。
mysqld程序:镜像(从属镜像服务器)
server-id=n
给服务器分配一个唯一的ID编号
log-slave-updates
启用从属服务器上的日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)。
master-host=hostname
主控服务器的主机名或IP地址。如果从属服务器上存在mater.info文件(镜像关系定义文件),它将忽略此选项。
master-user=replicusername
从属服务器用来连接主控服务器的用户名。如果从属服务器上存在mater.info文件,它将忽略此选项。
master-password=passwd
从属服务器用来连接主控服务器的密码。如果从属服务器上存在mater.info文件,它将忽略此选项。
master-port=n
从属服务器用来连接主控服务器的TCP/IP端口(默认设置是3306端口)。
master-connect-retry=n
如果与主控服务器的连接没有成功,则等待n秒(s)后再进行管理方式(默认设置是60s)。如果从属服务器存在mater.info文件,它将忽略此选项。
master-ssl-xxx=xxx
对主、从服务器之间的SSL通信进行配置。
read-only=0/1
0:允许从属服务器独立地执行SQL命令(默认设置);1:从属服务器只能执行来自主控服务器的SQL命令。
read-log-purge=0/1
1:把处理完的SQL命令立刻从中继日志文件里删除(默认设置);0:不把处理完的SQL命令立刻从中继日志文件