一、Linux
操作系统:CentOS 6.4
1.配置好可用的yum源
2.开发环境支持:
# yum groupinstall -y "Development tools" # yum groupinstall -y "Server Platform Development"
二、Apache
编译安装httpd-2.4.9
1.安装pcre-devel(依赖包)
#yum install pcre-devel -y (关于pcre:http://baike.baidu.com/view/3963592.htm)
2.安装apr,apr-util
#tar -xf apr-1.5.0.tar.bz2 -C /usr/src/ #cd /usr/src/apr-1.5.0 #./configure --prefix=/usr/local/apr //指定其安装位置 # make && make install (关于apr: http://zh.wikipedia.org/wiki/Apache%E5%8F%AF%E7%A7%BB%E6%A4%8D%E8%BF%90%E8%A1%8C%E6%97%B6) #tar -xf apr-util-1.5.3.tar.bz2 -C /usr/src/ # cd /usr/src/apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install
3.安装httpd
#tar -xf httpd-2.4.9.tar.bz2 -C /usr/src # cd /usr/src/httpd-2.4.9 # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=most --with-mpm=event ================================================================ 释义: --prefix=/usr/local/apache #→指定其安装位置 --sysconfdir=/etc/httpd #→指定配置文件安装位置 --enable-so #→启用基于DSO的方式动态加载模块 --enable-ssl #→启用基于https协议的功能 --enable-cgi #→启用基于cgi协议的功能 --enable-rewrite #→启用支持URL重写的功能 --with-zlib #→指定支持在互联网上发送数据报文时,通用的压缩库的API --with-pcre #→指定支持poll的cgi --with-apr=/usr/local/apr #→指定par的安装路径 --with-apr-util=/usr/local/apr-util/ #→指定par-util的安装路径 --enable-modules=most #→启用大多数常用的模块 --enable-mpms-shared=all #→启用加载所有的mpm模块 --with-mpm=event #→指定接下来httpd的工作模式是event ====================================================================== # make && make install
模块加载的方式:
a).静态:使用--with-mpm=指定模块名称;一旦编译安装完成,无法卸载,只能从新编译安装。
b).动态:使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。可运行时加载,构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新编译安装。
配置:
a).设置pid文件的路径:
#vim /etc/httpd/httpd.conf //添加 PidFile "/var/run/httpd.pid"
b).配置httpd服务脚本
#vim /etc/rc.d/init.d/httpd //修改 apachectl=/usr/local/apache/bin/apachectl httpd=${HTTPD-/usr/local/apache/bin/httpd}
c).权限+启动
# chmod +x /etc/rc.d/init.d/httpd # chkconfig --add httpd # chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig httpd on # chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
验证:
# service httpd start # ps -elFH
三、MySQL
1.安装
# tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local # ln -sv /usr/local/mysql-5.5.33-linux2.6-x86_64 mysql 创建软连接,易于操作
2.为数据库创建逻辑卷
# fdisk /dev/sda //10G #pvcreate /dev/sda3 //创建物理卷 #vgcreate myvg /dev/sda8 //创建卷组 #lvcreate -L 8G -n mydata myvg //创建逻辑卷 #mke2fs -t ext4 /dev/myvg/mydata //格式化逻辑卷 # mkdir /mydata //创建逻辑卷挂载目录 #mkdri -pv /mydata/data //创建mysql数据存放目录 # vim /etc/fstab //添加开机自动挂载 /dev/myvg/mydata /mydata ext4 defaults 0 0 # mount -a //挂载
3.新建用户以安全方式运行进程
#groupadd -r mysql //创建系统组mysql #useradd -r -s /sbin/nologin -g mysql mysql -M -D /mydata/data mysql //创建系统用户mysql #chown -R mysql:mysql /mydata/data //设置目录属主属组
4.初始化mysql
# cd /usr/local/mysql # scripts/mysql_install_db --datadir=/mydata/data --user=mysql //初始化数据库 # chown -R root . //设置当前目录所有文件属主为root
5.提供脚本
#cd /usr/local/mysql #cp support-files/mysql.server /etc/rc.d/init.d/mysqld //设置脚本mysqld #chmod +x /etc/rc.d/init.d/mysqld //给脚本执行权限 # chkconfig --add mysqld //添加开机启动 # chkconfig mysqld on
6.提供配文件
#cd /usr/local/mysql #cp support-files/my-large.cnf /etc/my.cnf #vim /etc/my.cnf thread_concurrency = 2 //修改,并发线程数,bithread_concurrency的值为CPU个数乘以2 datadir = /mydata/data #添加,mysql数据文件的存放路径:
7.其他配置
# vim /etc/profile.d/mysqld.sh export PATH=/usr/local/mysql/bin:$PATH # source /etc/profile.d/mysqld.sh #vim /etc/man.config MANPATH /usr/local/mysql/man //添加此行 # ln -sv /usr/local/mysql/include /usr/include/mysql //输出mysql的头文件至系统头文件路径/usr/include # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf //输出mysql的库文件给系统库 #ldconfig //重载系统库:
8.启动服务
# service mysqld start # ss -rnl | grep 3306
9.用户初始化
#mysql mysql> use mysql mysql> select host,user,password from user; mysql> DELETE FROM user WHERE user = ''; //删除空用户 mysql> DELETE FROM user WHERE user = '::1'; //删除ipv6用户 mysql> UPDATE user SET password = PASSWORD('Hoolee') WHERE password = ''; //为root用户设置密码 mysql> FLUSH PRIVILEGES;
四、PHP
编译安装PHP,将php当作httpd的模块的方式安装在httpd上,从而实现php与httpd通信
1.解决开发环境和依赖关系
# yum -y install bzip2-devel # yum -y install libmcrypt-devel # yum -y groupinstall "Desktop Platform Development"
2.安装php
# tar xf php-5.4.26.tar.bz2 # cd /usr/src/php-5.4.26/ # ./configure--prefix=/usr/local/php --with-openssl --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib--with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache2/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts =============================================================== 释义: --prefix=/usr/local/php //指定其安装位置 --with-openssl //指定支持openssl功能 --with-mysql=mysqlnd //指定与mysql服务器的链接 --with-mysqli=mysqlnd //指定与mysql服务器的链接 --with-pdo-mysql=mysqlnd //指定与mysql服务器的链接 --enable-mbstring //支持多字节string --with-freetype-dir //指定安装的字体库头文件 --with-jpeg-dir //指定jpeg类型的库 --with-png-dir //指定支持png类型的库 --with-zlib //支持互联网上通用压缩库,先压缩再传送,减少带宽 --with-libxml-dir=/usr //指定xml库文件的路径 --enable-xml //启用支持xml功能 --enable-sockets //启用php支持套接字功能 --with-apxs2=/usr/local/apache2/bin/apxs //基于apxs实现让php编译成apache模块 --with-mcrypt //支持额外的加密库 --with-config-file-path=/etc //指定php配置文件放置路径 --with-config-file-scan-dir=/etc/php.d //指定php配置文件的分段文件放置路径 --with-bz2 //指定支持压缩库 --enable-maintainer-zts //当apache使用worker或event这两个MPM,编译时使用该选项 ====================================================================== [root@www php-5.4.26]# make && make install
附:
a).若使用PHP5.3以上版本,为链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysql
3.提供配置文件
# cp php.ini-production /etc/php.ini
4.修改httpd配置,支持php
# vim /etc/httpd/httpd.conf //定位AddType,添加 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps //#定位至DirectoryIndex, 补充 #DirectoryIndex index.php index.html
5.测试
//创建授权测试用户 #mysql -u root -pHoolee mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'172.16.1.2' IDENTIFIED by 'testpass'; mysql> FLUSH PRIVILEGES; mysql>\q; //创建测试页面 #vim /usr/local/apache/htdocs/vim index.php <?php $link = mysql_connect('172.16.1.2','test','testpass'); if ($link) echo "Connect to Mysql server success!"; else echo "Connect to Mysql server failure!"; mysql_close(); phpinfo(); ?> # service httpd reload
浏览器访问:172.16.1.2成功
五、Xcache
1.安装xcache
# tar xf xcache-3.0.3.tar.gz # cd xcache-3.0.3 # /usr/local/php/bin/phpize //phpize是用来安装php扩展模块的,通过phpize可以建立php的 外挂模块,若你想在原来编译好的php中加入memcached或者 ImageMagick等扩展模块,就需要使用phpize # # ./configure --enable=xcache --with-php-config=/usr/local/php/bin/ php-config # make && make install //显示xcache模块路径:/usr/local/php/lib/php/extensions/no-debug-zts-20100525/
2.编辑配置文件,整合php + xcache
# vim xcache.ini //添加模块路径 extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so # cp xcache.ini /etc/php.d/
3.测试
a).安装 phpmyadmin
b).使用ab命令做压力测试