CentOS 6.9编译安装LAMP环境,并部署phpMyAdmin,使用XCache优化性能

一、使用的程序包名称及版本:

httpd:2.4.29

mariadb-server:10.2.9

php:5.6.32

备注:httpd-2.4.x依赖于apr-1.4+以及apr-util-1.4+,而CentOS6.9 yum安装的apr和apr-util的版本均为1.3.9,httpd的版本为2.2.15,所以如果要在CentOS 6.9中使用httpd-2.4.x,只能重新源码编译安装

apr:Apache Portable Runtime,Apache运行时环境,可以理解为Apache虚拟机,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。


二、准备工作:

1、 下载相关程序包:

  • httpd-2.4.29,http://mirror.bit.edu.cn/apache/httpd/
  • mariadb-10.2.9,https://downloads.mariadb.org/
  • php-5.6.32,http://www.php.net/downloads.php
  • phpMyAdmin-4.7.5-all-languages.zip,https://www.phpmyadmin.net/downloads/
  • xcache-3.2.0,http://xcache.lighttpd.net/wiki/ReleaseArchive

2、 关闭iptables和SELinux

3、 服务器时间校对

4、 配置epel源

5、 安装开发环境程序包组:# yum -y groupinstall "Development Tools" "Server PlatformDevelopment"

6、 安装依赖程序包:# yum -y install pcre-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel curl-devel libpng-devel gmp-devel libc-client-devel recode-devel net-snmp-devel libtidy-devel libjpeg-devel freetype-devel readline-devel libicu-devel unzip

7、 配置相关库文件:# ln -sv /usr/lib64/libc-client.so /usr/lib/libc-client.so  # ln -sv /usr/lib64/libldap* /usr/lib/


三、安装配置httpd-2.4.29

1、 安装配置apr-1.6.2:

# tar -xf apr-1.6.2.tar.gz -C /usr/src

# cd /usr/src/apr-1.6.2

# vim configure --> 用#号注释第30951行代码$RM"$cfgfile"

# ./configure --prefix=/usr/local/apr16 --enable-threads --enable-posix-shm --enable-pool-concurrency-check --enable-other-child --disable-ipv6 --with-sendfile

# make && make install

# vim /etc/ld.so.conf.d/apr16.conf  -->  /usr/local/apr16/lib

# ldconfig

2、 安装配置apr-util-1.6.0:

# tar -xf apr-util-1.6.0.tar.gz -C /usr/src

# cd /usr/src/apr-util-1.6.0

# ./configure --prefix=/usr/local/apr-util16 --with-apr=/usr/local/apr16 --with-crypto

# make && make install

# vim /etc/ld.so.conf.d/apr-util16.conf -->  /usr/local/apr-util16/lib

# ldconfig

3、 编译安装httpd-2.4.29:

# groupadd -r apache

# useradd -r -g apache apache

# id apache

# tar -xf httpd-2.4.29.tar.gz -C /usr/src

# cd /usr/src/httpd-2.4.29

# ./configure --prefix=/usr/local/apache24 --enable-modules=all --enable-mods-shared=all --enable-authn-dbm --enable-authn-anon --enable-authn-dbd --enable-authn-socache --enable-authz-dbm --enable-authz-owner --enable-authz-dbd --enable-authnz-fcgi --enable-auth-form --enable-auth-digest --enable-allowmethods --enable-isapi --enable-file-cache --enable-cache --enable-cache-disk --enable-cache-socache --enable-socache-shmcb --enable-socache-dbm --enable-socache-memcache --enable-so --enable-watchdog --enable-macro --enable-dbd --enable-dumpio --enable-echo --enable-case-filter --enable-case-filter-in --enable-buffer --enable-data --enable-ratelimit --enable-ext-filter --enable-request --enable-include --enable-reflector --enable-substitute --enable-sed --enable-deflate --enable-http --enable-log-forensic --enable-logio --enable-luajit --enable-mime-magic --enable-cern-meta --enable-expires --enable-ident --enable-usertrack --enable-unique-id --enable-remoteip --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-fcgi --enable-proxy-scgi --enable-proxy-fdpass --enable-proxy-wstunnel --enable-proxy-ajp --enable-proxy-balancer --enable-proxy-express --enable-proxy-hcheck --enable-session --enable-session-cookie --enable-session-crypto --enable-session-dbd --enable-slotmem-shm --enable-slotmem-plain --enable-ssl --enable-dialup --enable-lbmethod-byrequests --enable-lbmethod-bytraffic --enable-lbmethod-bybusyness --enable-lbmethod-heartbeat --enable-mpms-shared=all --enable-heartbeat --enable-heartmonitor --enable-dav --enable-asis --enable-info --enable-suexec --enable-cgid --enable-cgi --enable-dav-fs --enable-dav-lock --enable-vhost-alias --enable-negotiation --enable-imagemap --enable-actions --enable-speling --enable-userdir --enable-rewrite --with-apr=/usr/local/apr16 --with-apr-util=/usr/local/apr-util16 --with-pcre --with-z --with-ssl --with-mpm=event

# make -j 4 && make install

# ls /usr/local/apache24

备注:.so扩展名的文件为模块文件,静态加载的模块不会显示在modules目录下,静态加载的模块会内嵌在系统里。动态加载的模块都会显示在modules目录下,启用这些模块,只需要在主配置文件中使用LoadModule命令装载这些模块即可。

4、 配置httpd-2.4.29:

(1)导出二进制程序目录至PATH环境变量:

# vim /etc/profile.d/httpd24.sh  -->  export PATH=/usr/local/apache24/bin:$PATH

# . /etc/profile.d/httpd24.sh

# echo $PATH

(2)导出头文件:# ln -sv /usr/local/apache24/include /usr/include/httpd24

(3)导出man帮助文档:# vim /etc/man.config -->  MANPATH /usr/local/apache24/man

(4)配置使用service命令控制httpd服务:# cp /usr/local/apache24/bin/apachectl /etc/init.d/httpd24

备注:为了不和yum方式安装的httpd冲突,所以服务脚本名称叫httpd24,如果仍命名为httpd,以后使用命令# yum -y install httpd后,服务脚本会被httpd覆盖,不过此httpd24只支持start| restart | stop

(5)修改主配置文件httpd.conf:

# cd /usr/local/apache24/conf

# cp httpd.conf httpd.conf.bak

# vim httpd.conf

  • 新增代码:ServerName localhost:80
  • 将参数User和Group的值都修改为apache,表示以apache用户和组的身份运行httpd
  • #号注释第147行LoadModulesession_cookie_module  modules/mod_session_cookie.so
  • #号注释第148行LoadModulesession_crypto_module  modules/mod_session_crypto.so
  • #号注释第149行LoadModulesession_dbd_module  modules/mod_session_dbd.so

# httpd -t

(6)配置httpd开机自启:

# vim /etc/init.d/httpd24,在首行#!/bin/sh下,新增如下2行代码:

# chkconfig: 2345 95 60

# description: Apache HTTP Server 2.4.29

# chkconfig --add httpd24

# chkconfig httpd24 on

# chkconfig --list httpd24

5、 启动httpd服务,并在浏览器中输入192.168.1.144:

# service httpd24 start

# ss -tnl | grep :80

# ps -ef | grep httpd

# httpd -M | grep mpm  -->  mpm_event_module (shared)

四、安装配置二进制格式的mariadb-10.2.9

1、 虚机添加新硬盘,创建LVM逻辑卷,并创建用于存放mariadb数据的目录:

(1)虚机新硬盘添加完成后,需要重启服务器,新硬盘才能被识别

(2) 创建LVM分区:

# partx -a /dev/sdb  -->  忽略错误提示

# cat /proc/partitions

(3)创建pv:# pvcreate /dev/sdb1  # pvs

(4)创建vg:# vgcreate mysqlvg /dev/sdb1 # vgs

(5)创建lv:# lvcreate -l +100%FREE mysqlvg -n mysqldata   # lvs

(6)格式化LVM分区:# mke2fs -t ext4 /dev/mysqlvg/mysqldata

(7)创建挂载点:# mkdir -pv /data

(8)开机自动挂载:# vim /etc/fstab  -->  /dev/mysqlvg/mysqldata  /data ext4  defaults  0  0

(9)挂载分区并查看分区信息:# mount -a    # mount    # df -Th

(10)创建用于存放mariadb数据的目录:# mkdir -pv /data/mysqldata

(11)创建mysql用户和组:# groupadd -r mysql    # useradd -r -g mysql mysql    # id mysql

(12)设置数据目录权限:# cd /data    # chown -R mysql.mysql mysqldata    # chmod -R o-rx mysqldata

2、 安装mariadb-10.2.9:

# tar -xf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local

# cd /usr/local

# mv mariadb-10.2.9-linux-x86_64/ mysql

# cd mysql

# chown -R mysql.mysql .

3、 配置mariadb-10.2.9:

(1)导出二进制程序目录至PATH环境变量中:

# vim /etc/profile.d/mariadb.sh  -->  export PATH=/usr/local/mysql/bin:$PATH

# . /etc/profile.d/mariadb.sh

# echo $PATH

# mysql --version

(2)导出头文件:# ln -sv /usr/local/mysql/include/mysql /usr/include/mysql

(3)导出库文件:# vim /etc/ld.so.conf.d/mariadb.conf -->  /usr/local/mysql/lib    # ldconfig

(4)导出man帮助文档:# vim /etc/man.config -->  MANPATH /usr/local/mysql/man

(5)创建并修改my.cnf配置文件:

# find / -name my.cnf

# mv /etc/my.cnf /etc/my.cnf.bak         //如果系统中事先已存在my.cnf,则将其重命名备份

# cp /usr/local/mysql/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

备注:MariaDB的配置文件my.cnf是集中式的配置文件,可以为多个程序提供配置,包括clientmysqlmysqld等等。查找配置文件的顺序依次为:/etc/my.cnf  -->  /etc/mysql/my.cnf  -->  $BASEDIR/my.cnf -->  --defaults-extra-file=/PATH/TO/CONF_FILE  -->  ~/.my.cnf。如果发现多个my.cnf配置文件,那最后一个被读到的配置文件将会最终生效,即如果存在~/.my.cnf配置文件,那么MariaDB服务器的配置以此文件为准。

# vim/etc/my.cnf

  • 在[mysqld]配置段中增加如下代码:

basedir = /usr/local/mysql

datadir = /data/mysqldata

user = mysql

innodb_file_per_table = on

skip_name_resolve = on

  • 在[mysqld]配置段中注释如下代码:

注释thread_concurrency = 8

注释innodb_additional_mem_pool_size = 16M

(6)初始化mariadb-server:

# ls /data/mysqldata                   //确认数据存放目录必须为空

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata --defaults-file=/etc/my.cnf --skip-name-resolve

# ls /data/mysqldata

(7)使用service命令控制mariadb-server,并设置开机自启:

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# vim /etc/init.d/mysqld,修改如下2行内容:

  • 将第46行basedir参数的值设置为/usr/local/mysql
  • 将第47行datadir参数的值设置为/data/mysqldata

# chkconfig --add mysqld

# chkconfig mysqld on

# chkconfig --list mysqld

4、 启动mariadb-server:

# service mysqld start

# ss -tnl | grep :3306

# ps aux | grep mysqld

5、 mariadb-server安全设置:# mysql_secure_installation

备注:用于设置root用户密码、删除匿名用户、是否允许root用户远程登录、删除测试数据库、重载授权表

# ls /data/mysqldata

6、 允许远程主机访问mariadb-server:

出于安全考虑,mariadb-server默认是不允许远程主机直接访问的

# mysql -uroot -p                    //输入root用户密码

MariaDB [(none)]> grant all privileges on *.* to ‘root‘@‘%‘ identified by‘123456‘ with grant option;

MariaDB [(none)]> flush privileges;

五、安装配置php-5.6.32

1、 编译安装php-5.6.32:

# find / -name php.ini

# mv /etc/php.ini /etc/php.ini.bak         //如果系统中事先已存在php.ini,则将其重命名备份

# tar -xf php-5.6.32.tar.xz -C /usr/src

# cd /usr/src/php-5.6.32

# ./configure --prefix=/usr/local/php56 --with-apxs2=/usr/local/apache24/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php56.d --with-mysql=mysqlnd --with-mysql-sock=/tmp/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-openssl --with-kerberos --with-pcre-regex --with-pcre-dir --with-zlib --with-zlib-dir --with-bz2 --with-curl --with-ldap --with-ldap-sasl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-gettext --with-mhash --with-mcrypt --with-snmp --with-readline --with-recode --with-tidy --with-xmlrpc --with-iconv-dir --with-pear --enable-sysvmsg --enable-sysvsem --enable-sysvshm --disable-ipv6 --enable-mysqlnd --enable-fpm --enable-phpdbg --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-intl --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-zip --enable-zend-signals

# make -j 4 && make install

2、 配置php-5.6.32:

(1)创建并修改php.ini配置文件:# cp /usr/src/php-5.6.32/php.ini-production /etc/php.ini

(2)导出二进制程序目录至PATH环境变量中:

# vim /etc/profile.d/php56.sh  -->  export PATH=/usr/local/php56/sbin:/usr/local/php56/bin:$PATH

# . /etc/profile.d/php56.sh

# echo $PATH


六、配置httpd-2.4.29支持php-5.6.32(以下两种方法二选一)

1、 把php编译成httpd的模块:

(1)修改主配置文件httpd.conf:

# vim /usr/local/apache24/conf/httpd.conf

  • DirectoryIndex index.php index.html
  • 增加代码:AddType application/x-httpd-php .php
  • 确认模块已加载:LoadModule php5_module   modules/libphp5.so

# httpd -t

# service httpd24 restart

# httpd -M | grep php  -->  php5_module (shared)

(2)创建测试页:

# vim /usr/local/apache24/htdocs/index.php

<?php

$conn=mysqli_connect("127.0.0.1","root","123456");

if ($conn)

echo "Success";

else

echo "Failure";

mysqli_close();

phpinfo();

?>

备注:如果在新版本php中使用旧版本phpmysql_connect()函数连接MariaDB,会提示undefined function mysql_connect()。从php 5.5开始,MariaDB就不推荐使用mysql_connect()函数,属于废弃函数,php 7中已经彻底不支持了,其增加了mysqli的函数功能。从某种意义上讲,mysqlimysql系统函数的增强版,更稳定、更高效、更安全,属于面向对象,用对象的方式操作驱动MariaDB数据库。

浏览器中输入192.168.1.144/index.php:

未加载XCache相关模块

2、 通过fpm(FastCGI)方式,将php作为独立的服务运行:

(1)创建并修改php-fpm.conf配置文件:

# cd /usr/local/php56/etc

# cp php-fpm.conf.default php-fpm.conf

# vim php-fpm.conf,修改如下参数的值(参考):

  • pm.max_children= 1024
  • pm.start_servers= 16
  • pm.min_spare_servers= 5
  • pm.max_spare_servers= 20

(2)为php-fpm提供SysV init脚本,并将其添加至服务列表:

# cp /usr/src/php-5.6.32/sapi/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

# chkconfig --list php-fpm

(3)启动php-fpm:

# service php-fpm start

# ss -tnlp | grep php-fpm               //默认情况下,fpm监听127.0.0.1的9000端口

# ps aux | grep php-fpm

(4)修改主配置文件httpd.conf:

# vim /usr/local/apache24/conf/httpd.conf

  • DirectoryIndex index.php index.html
  • 增加代码:AddType application/x-httpd-php .php
  • #号禁用模块:LoadModule php5_module  modules/libphp5.so
  • 装载proxy模块:LoadModule proxy_module   modules/mod_proxy.so
  • 装载proxy_fcgi模块:LoadModule proxy_fcgi_module  modules/mod_proxy_fcgi.so
  • 配置反向代理(也可在虚拟主机中配置),在末尾新增如下2行代码:

    ProxyRequestsOff           //关闭正向代理

    ProxyPassMatch^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache24/htdocs/$1

# httpd -t

# service httpd24 restart

(5)如上述所示创建测试页,并在浏览器中输入192.168.1.144/index.php:

未加载XCache相关模块

# service mysqld stop  -->  Failure,表示php与mariadb-server通信正常


七、安装配置phpMyAdmin

phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MariaDB的数据库管理工具,让管理员可用WebGUI接口管理MariaDB数据库。

# unzip -q phpMyAdmin-4.7.5-all-languages.zip

# cp -a phpMyAdmin-4.7.5-all-languages/ /usr/local/apache24/htdocs

# cd /usr/local/apache24/htdocs

# mv phpMyAdmin-4.7.5-all-languages/ pma

# cd pma

# cp config.sample.inc.php config.inc.php

# openssl rand -base64 8  -->  uRYO7/xG88k=

# vim config.inc.php  -->  $cfg[‘blowfish_secret‘] = ‘uRYO7/xG88k=‘;

# service httpd24 restart

浏览器中输入192.168.1.144/pma:

用户名和密码均为MariaDB数据库的用户名和密码

八、使用XCache优化性能:

XCache是一个又快又稳定的PHP Opcode缓存器,它能够提高PHP的性能。通过把编译PHP后的数据缓冲到共享内存,从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载。

1、 未加载XCache模块时测试性能:# ab -c 20 -n 1000 http://192.168.1.144/pma/index.php

2、 编译安装XCache:

# tar -xf xcache-3.2.0.tar.gz -C /usr/src

# cd /usr/src/xcache-3.2.0

# phpize                     //出现configure脚本

# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config

# make && make install

3、 整合php和XCache:

# mkdir -pv /etc/php56.d

# cp /usr/src/xcache-3.2.0/xcache.ini /etc/php56.d

# vim /etc/php56.d/xcache.ini

  • 若把php编译成httpd的模块,则:# service httpd24 restart
  • 若通过fpmFastCGI)方式,将php作为独立的服务运行,则:# service php-fpm restart

刷新页面,已加载XCache相关模块:

4、 加载XCache模块时测试性能:# ab -c 20 -n 1000 http://192.168.1.144/pma/index.php

性能提升了近5

时间: 2024-10-08 08:26:39

CentOS 6.9编译安装LAMP环境,并部署phpMyAdmin,使用XCache优化性能的相关文章

centos源码编译安装lamp环境

一.熟悉系统环境 查看系统版本号 cat /etc/issue 查看所有硬件的型号 dmidecode | more 查看memory info cat /proc/meminfo | more 查看CPU info cat /proc/cpuinfo 查看磁盘信息 df -lh 二.准备工作 更新系统时间 ntpdate time.windows.com;/sbin/hwclock -w 备份并替换系统的repo文件 sudo mv /etc/yum.repos.d/CentOS-Base.r

64bit centos 6.5 编译安装 LAMP 环境

MySQL5.5.40 编译安装 请参考 MySQL5.5.40编译安装 Apache 2.4.10 编译安装 请参考 Apache 2.4.10 编译安装 PHP 5.4.33 编译安装 下面我们开始编译安装PHP5.4.33 首先下载源码包到用户目录下, 下载PHP5.4.33 也可以使用命令行下载: [[email protected] ~]# wget http://kr1.php.net/get/php-5.4.33.tar.bz2/from/this/mirror 然后解压源码 [[

CentOS 6.6编译安装LAMP(Apache2+PHP+Mysql+PHPmyAdmin)

搭建好开发环境: Linux: CentOS 6.6(Final) x64 Apache:2.2.15 MySQL:5.1.52 PHP:5.3.2 步骤说明: 1.MySQL # yum install mysql mysql-server # chkconfig --levels 235 mysqld on # MySQL 可以随系统自己主动启动 # /etc/init.d/mysqld start # mysql_secure_installation # 设置 MySQL 数据 root

Centos 6.9 编译安装 LAMP + xcache

Centos 6.9 编译安装 LAMP apache 2.4 + Mysql 5.7 + php5.6.34 + Fast-cgi + xcache 实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Apache/2.4.29 (Unix) PHP 5.6.34 (cli) xcache 3.2.0 1. 编译安装apache 2.4 参考Centos 6.

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql (二)

mysql 简介: MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性.目前其属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言. 安装环境: 系统: centos 7.0 最小化安装 软件

centos7.3编译安装LAMP环境并搭建WordPress博客

centos7.3编译安装LAMP环境并搭建WordPress博客 日期:2017年8月6日 软件版本: apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2 mariadb-10.2.7-linux-x86_64.tar.gz php-7.1.7.tar.bz2 wordpress-4.8-zh_CN.tar.gz xcache-3.2.0.tar.gz 1.编译安装apache2.4 yum groupinstall de

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装php (三)

PHP简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP 独特的语法混合了C.Java.Perl以及PHP自创的语法.它可以比CGI或者Perl更快速地执行动态网页.用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标

Centos 6.8编译安装LNMP环境

Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 一 准备工作 环境介绍: OS:Centos 6.8 最小化安装 Nginx:nginx-1.12.2.tar.gz mysql:mysql-boost-5.7.20.tar.gz php:php-7.2.0.tar.bz2 1.1.关闭SELINUX # 修改配置文件,重启服务后永久生效. sed

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Apache (一)

Apache 简介: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中. 安装环境: 系统: centos 7.0 最小化安装 软件:httpd-2.4.26 依赖包:apr .apr-util .pcre .gcc .gcc-c++ .perl-dvel.perl.openssl .openssl-