编译安装LAMP,xcache测试

LAMP组合的编译安装:
    httpd+php整合时有两种方式:
        1.modules: 把php编译成httpd的DSO对象;
            prefork: libphp5
            event, worker: libphp5-zts
            --enable-maintainer-zts
        2.fpm(fastcgi):php作为独立的服务
httpd对fastcgi协议的支持:
    httpd-2.2: 需要额外安装fcgi模块;
    httpd-2.4: 自带fcgi模块;
安装次序:
    httpd2.4, MariaDB5, php5

注意:httpd依赖于apr-1.4+, apr-util-1.4+, [apr-icon]
apr: apache portable runtime:相当于apache与系统之间的兼容层,实现让同一个httpd软件多平台运行,不用每个平台提供一种程序
    centos6默认:apr-1.3.9, apr-util-1.3.9 ------->安装httpd2.4之前需要先安装apr-1.4+,

apr-util-1.4+,[apr-icon],否则不兼容,但是尽量不要覆盖原先的1.3版本,会破坏其他程序

对于centos6,安装前需要先安装开发包组

yum group install " Development tools" "Server Platform Development"

与httpd相关额包需要安装:yum install pcre-devel让应用程序支持正则表达式的扩展库

1.下载用到的包:

(1) 编译安装apr
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr
# make && make install
(2) 编译安装apr-util
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

(3)# tar xf httpd-2.4.9.tar.bz2
# cd httpd-2.4.9
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --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=all --with-mpm=event
# make && make install

解释:

--enable-so:支持动态模块加载机制

--enable-rewrite:只是URL重写

--with-zlib:压缩算法库

--with-pcre:perl扩展程序包

--enable-mpms-shared:支持mpm共享模块机制

--with-mpm:默认使用哪种mpm

补充:
一,构建MPM为静态模块
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
二,构建 MPM 为动态模块
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。

编辑/etc/httpd/httpd.conf,添加如下行即可:
PidFile  "/var/run/httpd/httpd24.pid"这里应该与下面服务脚本指明的pid文件在同一位置

(4)提供服务脚本:

cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24

编辑httpd24文件以下行

这里的pid位置应该与上面httpd.conf配置文件指明的pid文件在同一位置

chmod +x /etc/rc.d/init.d/httpd24

环境变量中导入编译安装的httpd二进制程序路径,并且记得使用hash -r清空hash缓存

vim /etc/profile.d/httpd.sh

. /etc/profile.d/httpd.sh

hash -r

开机启动:

chkconfig --add httpd24 && chkconfig httpd24 on

2.通用二进制安装mariadb:

#mkdir -pv /mydata/data   创建mariadb工作目录

# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data

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

cd /usr/local

ln -sv mariadb-5.5.43-linux-x86_64/ mysql

cd mysql

chown -R root.mysql ./*
scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql

cd /usr/local/mysql

cp support-files/my-large.cnf  /etc/mysql/my.cnf并编辑:

提供服务脚本:

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

开机启动

chkconfig --add mysqld && chkconfig mysqld on

这个mysql的客户端接口程序是/usr/local/mysql/bin/mysql,可以像上面那样修改PATH变量直接调用

3.编译安装php为模块

需要两个包:yum -y install bzip2-devel libmcrypt-devel libxml2-devel,注意libmcrypt-devel在epel源中,提供加解密库

# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config
--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/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts
--with-apxs2=/usr/local/apache/bin/apxs使httpd支持模块方式加载php(把php作为apache的模块)

这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。

make -j 2 && make install

为php提供配置文件:
# cp php.ini-production /etc/php.ini
编辑apache配置文件httpd.conf,以apache支持php
 # vim /etc/httpd24/httpd.conf
 1、添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps
 2、定位至DirectoryIndex index.html
   修改为:
    DirectoryIndex  index.php  index.html

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

重启后发现php模块已经加载

测试代码:编译安装的httpd默认页面在/usr/local/apache/htdocs目录下,创建index.php并测试

php正常,数据库连接正常

4.安装php-myadmin

用unzip解压phpMyadmin

mv phpMyAdmin-4.3.5-all-languages /usr/local/apache/htdocs/pma

cp config.sample.inc.php config.inc.php  编辑:

设置管理员密码:

重读授权表:

登录测试:

安装xcache:

# tar xf xcache-3.0.3.tar.gz
# cd xcache-3.0.3
# /usr/local/php/bin/phpize
# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# make && make install
安装结束时,会出现类似如下行:
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

首先将xcache提供的样例配置导入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
说明:xcache.ini文件在xcache的源码目录中。
接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。

注意最后一个xcache_size是为opcode保存开多大缓存,经常需要调整

重载httpd24服务

测试页刷新后出现了xcache:

安装xcache前压力测试:每秒处理10.73个请求

安装xcache之后,每秒62.43

配置apache-2.4.9以fpm方式的php-5.4.26

如果想让编译的php支持mcrypt扩展,此处还需要下载

libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
mhash-0.9.9-1.el5.centos.i386.rpm
mhash-devel-0.9.9-1.el5.centos.i386.rpm

注意这次安装避开刚刚php以模块方式安装的目录

tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config
--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets
--enable-fpm --with-mcrypt  --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php5.d --with-bz2

make && make install

3、配置php-fpm
为php-fpm提供SysV init脚本,并将其添加至服务列表:
# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on

为php-fpm提供配置文件:
# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

编辑php-fpm的配置文件:
# vim /usr/local/php5/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php5/var/run/php-fpm.pid

接下来就可以启动php-fpm了:
# service php-fpm start

默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验正其是否已经监听在相应的套接字。
# netstat -tnlp | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      689/php-fpm

启用httpd的相关模块
在Apache httpd 2.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
在相应的虚拟主机中添加类似如下两行。
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

如果是虚拟主机:

http://www.lee.com/admin/index.php
/web/host1/admin/index.php
fcgi://127.0.0.1:9000/web/hosts/admin/index.php
例如:
<VirtualHost *:80>
    DocumentRoot "/www/lee.com"
    ServerName lee.com
    ServerAlias www.lee.com
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/lee.com/$1
    <Directory "/www/lee.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
ProxyRequests Off:关闭正向代理
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

3、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页
 # vim /etc/httpd/httpd.conf
 1、添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps

2、定位至DirectoryIndex index.html
   修改为:
    DirectoryIndex  index.php  index.html
补充:Apache httpd 2.4以前的版本中,要么把PHP作为Apache的模块运行,要么添加一个第三方模块支持PHP-FPM实现。

时间: 2024-10-13 13:42:35

编译安装LAMP,xcache测试的相关文章

fcgi模式下编译安装LAMP+xcache

php的工作模式: php在lamp环境下共有三种工作模式:CGI模式.apache模块.FastCGI模式.CGI模式下运行PHP,性能不是很好.作为apache的模块方式运行,在以前的课程中编译安装lamp已经介绍过了.FastCGI的方式和apache模块的不同点在于:FastCGI方式PHP是一处独立的进程,所有PHP子进程都由PHP的一个叫作php-fpm的组件负责管理:而apache模块化方式运行的PHP,则是apache负责调用PHP完成工作.PHP的FastCGI方式性能要比ap

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.

编译安装lamp+xcache,提供httpd启动脚本

PHP:脚本编程语言,php解释器 WebApp:面向对象的特性 Zend: 第一段:词法分析.语法分析.编译为Opcode: opcode放置于内存中 第二段:执行opcode: php分两段的好处,当用户第二次请求的时候,就直接执行这个OPCODE即可.这样之后速度也会快些,但是在不同的进程之间是不能共享opcode的,同时opcode也是放在 内存中的.只要关机就会清空.为了避免自身去清除opcode,并且实现在多个php进程之间共享操作码,共享opcode的功能,引入了叫做php缓存器.

编译安装LAMP[两种结合方式]

本文旨在实践编译安装LAMP环境,搭建Zblog系统,使用Xcache为PHP加速,分离PHP与Apache Server LAMP基础知识 Linux + Apache + MySQL[MariaDB] + PHP[Perl|Pyton] 是一套基础的web环境: Apache有2.2版本,和最新的2.4版本,2.4版本支持Event MPM可用作生产环境,在http2.2中有3种MPM,为不同的进程文件,切换需要重启Apache服务:而2.4中MPM做成了DSO,可动态加载切换: Apach

编译安装LAMP及分离式LAMP平台构建

前言 LAMP网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网站服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,与微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台.但由于MySQL作为SUN公司

编译安装LAMP(两种场景)

编译安装LAMP 场景一:AP组合以模块方式结合(编译PHP作为httpd的模块):进而完成虚拟主机PMA(phpmyadmin)和discuz论坛 场景二:AP组合以fpm方式,PHP独立守护进程运行:进而完成虚拟主机PMA(phpmyadmin)和discuz论坛 ==========================场景一============================ 拓扑结构: 主机一 网卡1IP为172.20.1.100 网卡2IP为192.168.217.219 在此计算机上

编译安装LAMP平台环境_xcache

基于Linux.Apache.Mysql.Php编译安装LAMP环境平台,并使用xcache加速php 编译安装LAMP平台: 1.下载软件包, 安装依赖包 # yum install -y pcre-devel 2.解包安装apache 2.1 编译安装apr-1.5.0 # tar xvf apr-1.5.0.tar.bz2 # cd apr-1.5.0 && ./configure --prefix=/usr/local/apr # make && make inst

linux编译安装LAMP

Linux安装Apache+MySQL+PHP 安装部分依赖 安装apr(可选) # tar -xf apr-1.5.0.tar.bz2 # cd apr-1.5.0 #./configure --prefix=/usr/local/apr //指定其安装位置 # make && make install 安装apr-util # tar -xf apr-util-1.5.3.tar.bz2 # cd apr-util-1.5.3 # ./configure --prefix=/usr/l

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