博客声明:此博客里面的主要内容有apache、mysql、fastcgi和xcache的相关配置
###############################################################
###############################################################
Apache的配置
################################################################
##############################################################
LAMP的配置相关信息
####################
Linux-2.6.32
Apache:ASF apache sofware foundation(Apache软件基金会)http、tomcat、cloudware
http-2.4.4
php-5.4.13
MySQL-5.5(rpm 通用二进制 源码)
http-->MySQL--php -->XCache
Apache2.4.4依赖1.4.1的Apr
apr:apache portable runtime 阿帕奇可移植环境
apr库 apr-util库提供的工具
rpm安装包:
/bin /sbin /usr/bin /usr/sbin
/lib /usr/lib
/etc
/usr/share{doc,man}
编译安装:
/usr/local/apr
bin,sbin
lib
etc
share/{doc,man}
==================================================================
=================================================================
Apache的配置环境
###################################
安装之前确认开发环境以安装和系统时间确保时间是当前时间,selinux是关闭的
developed library developed tool
下载apr-1.4.6 和apr-util-1.4.1源码包
apr-->apr-util -->apache
cd apr下
./configure prefix=/usr/local/apr
(红帽6不需要安装apr因为它已经更新到1.4.1
cd apr-util
./configure prefix=/usr/local/apr-util --with-apr=/usr/local/apr
./configure --help可以查看编译要求
cd apache
./configure --help
==============================================================
==============================================================
关闭selinux和iptables
==================
1、yum -y install pcre-devel gcc+ gcc 正则
2、tar -zxf apr-1.4.6.tar.bz2
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
3、 tar -zxf apr-util-1.4.1.tar.bz2
cd apr-util-1.4.1
4、 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd(配置文件位置) --enable-so (动态加载模块,如果不启用会导致php模块不能加载)--enable-ssl(提供https访问) --enable-deflate 压缩后发给客户端 --enable-proxy-fcgi(php以fastcgi工作) --enable-mpms-shared=all(2.4默认以event编译安装,2.2以prefork编译)--with-mpm=event 默认以哪种模式启动
--enable-rewrite 支持URL重写 --enable-cgid --enable-mods=most --enable-modules-shared=most --with-apr=/usr/loca/apr --with-apr-tuil=/usr/local/apr-util
--enable-cgid 对应event 和worker模块
--enable-cgi对应perfork模块
mpm多通道模块
5、
==============================================================
=============================================================
###############################################################
###############################################################
MySQL的二进制安装
##############################################################
################################################################
编译环境
#######################################
CENTOS6.5 X86_64
mysql的通用二进制包5.5.41
#######################################
1、tar -zxf -C /usr/local
——————————————————————————————————————————————————————
注:通用二进制直接解压就可以使用但是必须安装在/usr/local/
——————————————————————————————————————————————————————
2、cd /usr/loca/
3、ln -sv mysql长名 MySQL
——————————————————————————————————————————————————————
注:最好把MySQL包名的长格式连接成MySQL
——————————————————————————————————————————————————————
3、groupadd -r -g 306 mysql
useradd -g 306 -r -u 306 mysql -r 为系统用户
———————————————————————————————————————————————————————
注:添加MySQL的用户主和用户
————————————————————————————————————————————————————————
4、chown -R mysql:mysql /usr/local/mysql/*
————————————————————————————————————————————————————————
注:修改mysql下的文件的权限
————————————————————————————————————————————————————————
5、scripts/mysql_install_db --user=mysql --datadir=/mydata/data &
————————————————————————————————————————————————————————
注:以mysql用户,初始化数据库,更改data的存放位置
逻辑卷分区,不放在原来的目录下,因为MySQL数据很大的
————————————————————————————————————————————————————————
6、chown -R root /usr/local/mysql/*
————————————————————————————————————————————————————————
注:再次更改mysql下的文件权限,如果没有更改data目录的位置
则要保持data的用户组和用户均为mysql
/usr/local/install-binary里面有详细的配置说明
————————————————————————————————————————————————————————
7、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list |grep mysqld
_______________________________________________________
注:确保/etc/init.d/mysqd ,具有执行权限
___________________________________________________________
8、vim /etc/my.cnf
datadir=/mydata/data
(添加data目录的位置,用于我们上面没有使用默认的data)
service mysqld start
netstat -tulnp |grep 3306
————————————————————————————————————————————————————————
MySQL的配置文件格式:/etc/my.cnf 集中式配置文件
[mysql]客户端
[mysqld]服务端
[client]客户端
/etc/my.cnf-->/etc/mysql/my.cnf->$basedir/my.cnf(安装目录)-->$datadir/my.cnf-->~/.my.cnf以最后一个为准
my.cnf 下有很多配置 它们以内存大小区分的
socket =/tmp/mysql.sock 源码包安装的socket的位置
socket =/var/lib/mysql/mysql.sock rpm安装包
datadir = /mydatat/data
——————————————————————————————————————————————————————————————
9、vim /etc/profile/mysql.sh
source /etc/profile/mysql.sh 或者重新打开一个中断,就可以是配置生效
——————————————————————————————————————————————————————————————
注:把MySQL的路径添加在里面,export PATH=$PATH:/usr/local/mysql/bin
这样就可以直接使用/bin下的命令了,不用加绝对路径了
把源码包中的命令添加到系统变量中,便于调用
————————————————————————————————————————————————————————————
10、vim /etc/man.config
——————————————————————————————————————————————————————————————
注;把源码包中的man文件加到系统变量中
——————————————————————————————————————————————————————————————
11、vim /etc/ld.so.conf.d/mysql.cof
/uar/loca/mysql/lib
ldconfig -v 加载库文件
——————————————————————————————————————————————————————————————
注: 把源码包中的库文件,让它们被内核识别
——————————————————————————————————————————————————————————————
12、ln -sv /usr/local/mysql/include /usr/include/mysql 改变头文件的链接位置
————————————————————————————————————————————————————————————
注: 把源码包中的头文件加到系统变量中
————————————————————————————————————————————————————————————
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mysql 服务器维护两类变量
服务器变量:information_schema
定义MySQL服务器运行特性
show global variables
状态变量:performance_schema
保存了MySQL服务器运行统计数据
show global status
mysql 通配符
_任意单个字符
%任意多个字符
压力测试工具
ab
http_load
webbench
siege
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#####################################################################
###############################################################
MySQL的主从复制
###############################################################
###############################################################
配置环境
###################
前提2台服务器的MySQL已经安装,且可以启动
2台服务器的网络已经连通
通过phpinfo();查询lamp环境的配置
bin-log日志已经开启,show variables like "%log%";确认bin-log是否开启
#####################################################################
一、master配置
vim /etc/my.cnf
1、启用二进制日志
mysql-bin=master-bin
log-bin-index=master-bin.index
2、选择一个唯一 server-id
server-id=0-2^32-1
3、创建具有复制权限的用户
replication slave 复制的从节点
replication client 具有连接主服务器,从主服务器复制数据的权限
二、slave
vim /etc/my.cnf
1、启用中继日志
relay-log=relay-log
relay-log-index =
2、选择一个唯一的 server-id
server-id=
3、连接主服务器,并开始复制数据
首先得要在主服务器上对从服务器进行用户授权
必须保证从服务器可以通过授权的用户进行远程登录
进入slave 的MySQL里面
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘rep‘@‘%‘ IDENTIFIED BY ‘rep123‘;
FLUSH PRIVILEGES; 创建用户账户和密码
更改slave的相关配置
change master to
master_host=‘192.168.216.33‘,
master_port=3306,
master_user=‘rep‘,
master_password=‘123‘,
#这2个配置项是根据mater的show master status;查询得出的
master_log_file=‘mysql-bin.000012‘,
master_log_pos=421;
启动slave ,
slave start;
查看salve 的状态,确定io-running 为yes
确定thred-runing 也为 yes
show slave status\G;
如果报的是2003 connecting 则为网络不通,可能是密码,权限,和网络
##############################################################
##############################################################
MySQL的主主复制
##############################################################
##############################################################
1、在两台服务器上各自建立一个具有复制权限的用户
2、修改配置文件
主服务器
[mysqld]
server-id=10
log-bin=mysql-bin
relay-log=relay-mysql
relay-log-index=relay-mysql.index
auto-increment-increment=2
auto-increment-offset=1
从服务器
[mysqld]
server-id=20
log-bin=mysql-bin
relay-log=relay-mysql
relay-log-index=relay-mysql.index
auto-increment-increment=2
auto-increment-offset=1
3、查看对方的show master status;添加change master to
A:查看B的二进制日志文件及位置,并作为自己的复制起点
B:如上查看A的相关日志文件及位置
##############################################################
###############################################################
MySQL的半同步设置
##############################################################
###############################################################
###############################################################
###############################################################
PHP的模块化的工作方式配置
###############################################################
###############################################################
1、配置选项
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbsting(支持多字节的文字) --with-freetype-dir(字体库) --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr
--enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apx(将它编译成阿帕奇的模块,如果是模块编译就需要,如果是fastcgi就不需要) --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts(如果是prefork 就不需要,如果是event和worker就需要)
1、这里是为了支持apache的worker或event这两个mpm,编译时使用了 --enable-maintainer-zts选项,如果使用fastcgi则不选用该选项
2、如果使用php5.3以上版本,为了链接mysql数据库,可以指定mysqlnd,这样在本机就不需要先安装mysql或mysql开发包
mysqlnd从php5.3开始可用,可以编译时绑定到他,但是从php5.4开始它就是默认设置了, ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
2、复制配置文件
cp /usr/local/php/php.ini-production /etc/php.ini
————————————————————————————————————————————————————————————————————————————————
3、修改配置文件
vim /etc/php.ini
[php]
vim /etc/apache/apache.conf
addtype application/x-httpd-php .php
addtype application/x-httpd-php-source .phps
在<ifmodule dir_module>
directoryindex index.php index.html
</ifmodule>
————————————————————————————————————————————————————————————————————————
注:由于是编译成Apache的模块,所以不用启动服务
如果加上--enable-fpm 则表示启动fastcgi模式,这样就要启动fpm服务,当然必须取消上面./configure 中的--with-apxs2=/usr/local/apache/bin/apx选项
================================================================
===============================================================
===============================================================
PHP的fastcgi工作模式配置
===============================================================
=================================================================
1、编译(解压php的安装包)
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbsting(支持多字节的文字) --with-freetype-dir(字体库) --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr
--enable-xml --enable-sockets --enable-fpm(编译成fastcgi模式) --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
--enable-maintainer-zts(去掉这一项,因为不在是工作在模块式的方式下)
2、make && make install
3、配置php-fpm
cp php.ini-production /etc/php.ini
cp sapl/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
4、cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/etc/php-fpm.conf
vim /usr/loacl/php/etc/php-fpm.conf
pm.max_children=50
pm.start_server=5
pm.min_spare_server=2
pm.max_spare_server=8
pid=/usr/local/php/var/run/php-fpm.pid
5、启动php-fpm
service php-fpm start
ps aux | grep php-fpm
netstat -tulnp | grep php-fpm
获得9000端口
二、配置httpd-2.4.4
1、启用httpd的相关模块
在Apache2.4以后已经专门有一个模块针对FASTCGI的实现,此模块为mod_proxy_fcgi.so,其实它是作为mod_proxy.so模块的扩充,因此,这两个
模块都要加载 loadModule proxy_module modules/mod_proxy.so
loadmodule proxy_fcgi_module modules/mod_proxy_fcgi.so
2、配置的虚拟主机支持使用fcgi
在主配置文件中加上
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
在主配置文件中的根目录中加入Index.php的支持
<ifmodule dir_module>
dirctoryindex index.php index.html
</ifmodule>
proxyrequests off 关闭正向代理功能
proxypassmatch ^/(.*\.php)$ fcgi://192.168.0.1:9000/path
注:在虚拟主机中添加以上2行
三、安装XCCHE
##############################################################
###############################################################
PHP和Xcache的结合,提高php执行的效率
##############################################################
##############################################################
1、安装xcache
tar -zxf xcache-2.0.0.0.tar.gz
cd xcache-2.0.0.0
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/php-config
make && make install
最后会出现一个zend_extension_ts扩展库的位置
________________________________________________________
注:phpize 准备好一个扩展,准备为其编译
php-config 获取php的配置信息和安装时的信息
xcache 是php的扩展
=========================================================
2、编辑xcache的配置文件
mkdir /etc/php.d
cp xcache.ini /etc/php.d
vim /etc/php.d/xcache.ini
更改zend_extension_ts后面的文件位置,即是安装后最后出现的信息,记得加上xcache.so
[xcacheadmin]xcache的管理,可以关闭的
[xcache]
xcache.shm_scheme(共享内存)="mmap" 内存映射
xcache.size =60M opcode的共享内存空间 设为0则不启用xcache功能
xcache.countf=1 cpu个数
xcache.slots=8k 缓存中的槽位
xcache.ttl=0 缓存永远不过期0
xcache.gc_interval=0 gc 垃圾回收器 是否扫描
server httpd restart 重启http服务 因为是作为http模块编译的
通过php.info()查看xcache有没有启动
====================================================================