• w88.com|w88.com【注册即送28元彩金】

  • 发布时间:2016-01-15 14:10 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • w88.com|w88.com【注册即送28元彩金】

    tar xf xcache-3.2.0.tar.gz

    cd xcache-3.2.0

    /usr/local/php/bin/phpize---->phpize是实行指令,

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

    make && make install

    1.2 装配完毕后,给出了编译后的php插件目录

    650) this.width=650;" src="/html/uploads/allimg/160115/1409453D2-0.jpg" title="Image 23.png" alt="wKioL1YsmpqwPKp-AAEG0vfT_xk187.jpg" />

    1.3 修正php.ini,结合PHP和Xcache

    mkdir /etc/php.d

    cp /download/xcache-3.2.0/xcache.ini /etc/php.d

    vi /etc/php.d/xcache.ini

    extension = /usr/local/php/lib/php/extensions/no-debug-zts-/xcache.so

    1.4 重启apache,再次进行压力测验,能够明显看出来呼应进步许多!

    650) this.width=650;" src="/html/uploads/allimg/160115/140945KD-1.jpg" title="Image 25.png" alt="wKioL1YsnLLCBV1oAALbjm1acTs524.jpg" />

    这篇文章出自 “蓝色库房” 博客,请必须保存此出处http://bluebox.blog.51cto.com//

    这篇文章旨在训练编译装配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,可动态加载切换;

    Apache、MaraiaDB、PHP装配都不艰巨,艰巨的是需求处置惩罚协同协作的联系,即不能变成自力个别

    650) this.width=650;" src="/html/uploads/allimg/160115/1409455a5-2.jpg" title="1.png" alt="wKioL1YsVmqCYJtHAAFaOs3JOVQ810.jpg" />

    1.2 编译装配apr-1.5.2

    ./configure --prefix=/usr/local/apr

    make && make install

    1.3 编译装配apr-util-1.5.4

    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

    make && make install

    1.4 创立apache用户和组,让web效劳进程运转在apache身份防止越权!

    groupadd -r apache

    useradd -r -g apache -s /sbin/nologin -M apache

    1.5 编译装配httpd2.4

    ./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=prefork

    make && make install

    1.6 编译参数的有关说明

    --prefix

    指定httpd2.4的装配道路

    --sysconfdir

    指定设置设备摆设文件道路

    --enable-so

    发动shared object同享目标

    --enable-ssl

    w88.com|w88.com【注册即送28元彩金】

    启用ssl,凭借于此能够完结HTTPS拜访

    --enable-cgi

    启用CGI,能够完结CGI脚本实行

    --enable-rewrite

    启用Rewrite重写,能够完结比如301重定向的功用,以来PCRE包

    --with-zlib

    启用zlib收缩

    --with-pcre

    启用PCRE

    --with-apr

    指定apr的道路,httpd2.4寄托apr1.4版别以上,以是要指明

    --with-apr-util

    指定apr-util的道路,同上

    --enable-modules

    启用模块加载

    --enable-mpms-shared=all

    http2.4上prefork、worker、event是模块化的,能够动态加载

    --with-mpm=prefork

    指明默许的httpd2.4 MPM,即运转在prefork模型下

    1.7 把稳点:

    在http2.2上,MPM有prefork、worker、event[测验版],切换不一样的MPM模型需求重启httpd进程,原先本色上不一样的MPM对应的进程是不一样的底层文件,而http2.4上把3种MPM做成了模块的措施,能够动态加载完结

    1.8 修正设置设备摆设文件/etc/http24/httpd.conf

    650) this.width=650;" src="/html/uploads/allimg/160115/140945I28-4.jpg" title="Image 6.png" alt="wKiom1YsXISzH4z4AAG0xF_cSF8840.jpg" />

    到此,咱们的apache2.4现已悉数装配成功

    1.9 启用并测验

    /usr/local/apache/bin/apachectl start

    由于现在还没有写入实行脚本,以是这儿咱们直接运用绝对道路来发动

    650) this.width=650;" src="/html/uploads/allimg/160115/140945G56-5.jpg" title="Image 7.png" alt="wKioL1YsXWWgqR6MAAGFypctKlc006.jpg" />

    650) this.width=650;" src="/html/uploads/allimg/160115/140945C29-6.jpg" title="Image 8.png" alt="wKiom1YsXduiOEE2AAD6VT5m_yE146.jpg" />

    1.10 把稳点:

    这儿出现的疑问:我这台虚拟机默许装配了http2.2,以是当我编译装配好http2.4后,我运用service httpd start成功后,发明居然显现的是2.2的默许页面,颠末排查后才处置惩罚!

    1、为了便利httpd2.4的发动,我将http24的实行目录增添到了情况变量

    echo "export PATH=/usr/local/mysql/bin:$PATH"78com>>/etc/profile

    source /etc/profile

    apachectl start

    2、发动时分由于没有指定ServerName,以是默许运用主机名,处置惩罚措施

    vi /usr/local/apache/conf

    ServerName localhost:80

    apachectl restart

    进程2.通用二进制装配MariaDB

    之前现已部署过,这儿不再赘述,只需求在192.168.1.123上相同部署即可

    参阅《MariaDB二进制装配及根本解决》

    需求说明的是,在咱们架构中统共2台效劳器,前端是Apache+PHP Server[192.168.1.122],后端是MariaDB Server[192.168.1.123],这需求前真个PHP颠末php-mysql插件中的mysql_connect函数毗连到后真个MariaDB Server上的数据库,而默许MariaDB不容许长途毗连的,此处咱们先辈行授权吧!

    mysql -h localhost -u root -pzxczxc

    MariaDB > GRANT ALL ON *.* to 'root'@'%' identified by 'zxczxc' WITH GRANT OPTION;

    MariaDB > FLUSH PRIVILEGES;

    MariaDB > SELECT user,host,password FROM mysql.user;

    650) this.width=650;" src="/html/uploads/allimg/160115/1409456229-7.jpg" title="Image 9.png" alt="wKiom1YscS_xWDxhAALGiYOVfPA437.jpg" />

    在122这台机械上,咱们装配了MariaDB-client后,进行TCP/IP措施的数据库毗连呢!

    mysql -h 192.168.1.123 -u root -pzxczxc

    650) this.width=650;" src="/html/uploads/allimg/160115/1409451359-8.jpg" title="Image 10.png" alt="wKioL1YscciTaIQYAAIpkr3Rogw325.jpg" />

    至此根本架构现已完结,只需求编译装配PHP即可!

    进程3.编译装配PHP[仍是在192.168.1.122这台效劳器上]

    值得一提的是:PHP在这套情况中感化是“承上启下”,

    能担负遭遇和处置惩罚Apache提交过来的php请求,这需求apache-php以模块的措施加载运转;

    关于某些php请求需求操作数据库的,PHP要担负和后端MariaDB Server通讯,这需求php-mysql插件;

    3.1 预备情况

    w88.com|w88.com【注册即送28元彩金】

    yum -y groupinstall "Desktop Platform Development"

    yum -y install bzip2-devel libmcrypt-devel

    yum -y install xml2

    3.2 编译装配

    wget

    tar -zxvf php-5.5.30.tar.gz

    cd php-5.5.30

    ./configure --prefix=/usr/local/php --with-openssl--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --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--enable-maintainer-zts --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

    make && make install

    请把稳编译这儿大概会报错,由于一些组件支撑的洞开需求寄托有关包,需求处置惩罚寄托联系如:

    650) this.width=650;" src="/html/uploads/allimg/160115/140945N45-10.jpg" title="Image 11.png" alt="wKioL1YsefzztVnRAAEU88R_eDk467.jpg" />

    yum -y install libxml2 libxml2-devel

    无意偶尔分寄托的包大概需求用到 -devel附包,指定好EPEL源装配即可!

    这儿我总结一下我碰到的几个疑问,附注:我是用的YUM源、EPEL源均为Aliyun的

    Error1

    configure: error: xml2-config not found. Please check your libxml2 installation.

    处置惩罚法子:

    yum -y install libxml2 libxml2-devel

    Error2

    configure: error: Please reinstall the BZip2 distribution

    处置惩罚法子:

    yum -y install bzip2 bzip2-devel

    Error3

    configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    处置惩罚法子:

    yum -y install libmcrypt libmcrypt libmcrypt-devel

    3.4 编译参数的有关说明

    --prefix

    指定php装配道路

    --with-openssl

    启用OpenSSL

    --enable-mbstring

    支撑大年夜字节字符串

    --with-freetype-dir

    支撑freetype,freetype是一个可移植的字体引擎

    --with-jpeg-dir

    支撑JPEG

    --with-png-dir

    支撑PNG

    --with-zlib

    支撑zlib收缩,寄托于zlib包,有大概需求zlib-devel包

    --with-bz2

    支撑bz2收缩,寄托bz包

    --with-libxml-dir=/usr

    支撑libxml,能大略便利的提供对XML文件的各类操作

    --enable-xml

    启用xml

    --enable-sockets

    启用sockets套接字

    --with-apxs2=

    apxs是一个专门用来加载第三方运用模块的实用法度榜样

    --with-mcrypt

    支撑加密

    --with-config-file-path

    设置PHP主设置设备摆设文件道路

    --with-config-file-scan-dir

    设置PHP分段式设置设备摆设文件php.d的方位

    --enable-maintainer-zts

    启用线程安然,关于prefork而言是不需求的,可是之前编译httpd2.4装了3种MPM,为了支撑worker、event的安然,以是启用

    请把稳:

    要是运用PHP5.3以上版别,为了链接MySQL数据库,能够指定mysqlnd,这么在本机就不需求先装配MySQL或MySQL开拓包了mysqlnd从php 5.3起头可用,能够编www.hv128.com译时绑定到它(而不必和具体的MySQL客户端库绑定构成寄托),但从PHP 5.4起头它等于默许设置了

    # ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

    3.5 提供PHP设置设备摆设文件

    cp php.ini-production /etc/php.ini

    3.6 修正Apache设置设备摆设文件以支撑php,并重启Apache效劳

    vim /etc/httpd/httpd.conf

    AddType application/x-httpd-php.php

    AddType application/x-httpd-php-source.phps --->增添对php页面的支撑

    DirectoryIndex Index.php index.html--->修正默许主页index.php

    3.7 修正php测验页面,验证Apache+PHP Server和后端MariaDB Server能够协同功课

    成功能够拜访!

    650) this.width=650;" src="/html/uploads/allimg/160115/1409454221-11.jpg" title="Image 12.png" alt="wKioL1YsiurgL5m4AAEyDye_BcE046.jpg" />

    把稳点:

    在这儿我碰到一个同伴,一路头翻开192.168.1.122/mysql.php页面总是提示收集毗连同伴,终极排查出来是由于httpd.conf中加载的php_mod运用的绝对道路modules/libphp5.so,而父目录/usr/local/apache并不在情况变量中,运用

    export PATH=/usr/local/apache:$PATH

    即处置惩罚疑问了

    训练2:在LAMP情况下建立一个ZBLOG博客体系

    1.1 下载zblog文件解收缩至网站目录

    cd /usr/local/apache/

    tar -xvf zblog.tar

    1.2 拜访页面进行装配

    650) this.width=650;" src="/html/uploads/allimg/160115/1409451Q2-12.jpg" title="Image 17.png" alt="wKiom1YskEPjqNzDAAKewCiofvE907.jpg" />

    居然需求用到php-curl,这咋办?我编译的时分没有启用curl,好在PHP的phpize能够动态的加载插件,省得从头编译!前提你有源码包,操作如下:

    cd /download/php-5.5.30/ext/curl/

    /usr/local/php/bin/phpize

    ./configure --with-php-config=/usr/local/php/bin/php-config

    650) this.width=650;" src="/html/uploads/allimg/160115/1409455314-13.jpg" title="Image 18.png" alt="wKioL1YskXPxbwY2AAD6EF7BO2Q202.jpg" />

    把该目录下的curl.so复制到你php.ini中的extension_dir指向的目录中,修正php.ini,在终极增添一句extension=curl.so 重启apache即可咯

    1.3 遴选数据库,此处需求毗连长途数据库

    650) this.width=650;" src="/html/uploads/allimg/160115/1409455304-14.jpg" title="Image 19.png" alt="wKiom1YslFLCnLyEAAIzavc8Mpg349.jpg" />

    1.4 数据库信息写入,完结ZBLOG体系装配

    650) this.width=650;" src="/html/uploads/allimg/160115/1409454054-15.jpg" title="Image 20.png" alt="wKioL1YslJCxGIRZAAEmR-V3YG0864.jpg" />1.5 拜访测验,统统正常,至此LAMP情况下ZBLOG建立完毕!

    650) this.width=650;" src="/html/uploads/allimg/160115/1409455314-16.jpg" title="Image 21.png" alt="wKioL1Ysltmya5r2AAFPEwsEx8M784.jpg" />

    训练3:运用Xcache,为PHP加快

    默许环境下,Aapche将动态请求php的交由php引擎来实行,每一次请求都邑去从头实行一遍,功率极度低下而PHP加快器能够缓存这些实行进程,将实行成果缓存到内存中,起到加快php的感化

    加快前,运用ab指令对当前的zblog进行压力测验

    650) this.width=650;" src="/html/uploads/allimg/160115/14094561J-17.jpg" title="Image 22.png" alt="wKiom1YsnJiw7EGiAALnQp3kRYE351.jpg" />

    1.1 编译装配

    PHP一个极好的机制在于运用phpize能够对编译时未加载的插件进行动态编译,然落后行大略的设置设备摆设即可加载该php插件,而省去了从头编译php的时候!十分便利

  • 相关内容

友情链接: