在CentOS 6上编译安装LAMP

CentOS 6上编译安装LAMP

    在生产中如果需要使用较新的服务,而系统提供的rpm包又较老时该怎么办呢?其实应用程序的安装方式有多种,如:使用系统发行商提供rpm包或者下载源码包手动编译安装也是可以的。今天我们编译的服务不是一个单独的而是一套。这套黄金搭档从诞生之初到现在已经经过无数用户的验证,各大电商站点、门户网站、以及各类站点甚至个人网站都在使用着。岁月的痕迹并没有在它们的身上沉淀,反而越发显得历久弥新。

    在编译之前先简单介绍下LAMP是什么,那么它们到底是什么呢?别急听我慢慢道来。LAMP其实是四款软件首字母的缩写,L即是在开源领域奉若神明的Linux,而Linux只是系统的内核(kernel),其全称是GNU/Linux。至于为什么这么称呼,这里面有一段很长的故事,我怕说下去我这边天都黑了,如果你们想知道的话,我在以前的博客已经详细地述说了Linux的历史,名为“人生若只如初见——Linux”,可自行浏览。那么A又是什么呢?A就是apache,念作“阿帕奇”。什么?阿帕奇?美国的武装直升机?没错,你没有看错,我也没有写错。不过它可不是什么武装直升机,它的原意为“a patchy server”,一个充满补丁的服务。为什么这么叫,这里面也有一段很长的故事。故事的内容我还是选择不说,如果你们很好奇,可以问百度啊。接下来该M了,M是Mysql或MariaDB的缩写,为什么要加个或?那你猜。这是个关系型数据库,用来存放各种数据 。最后一个,P可以是php也可以是perl还可以python,用来解释执行客户端发来的动态页面请求;当然Linux不用我们编译,直接用系统发行商提供的系统镜像安装即可,至于怎么安装?你应该知道的。

    说了这么多下面我们就动手试试编译安装LAMP服务吧,Let‘s go还是Follow me ? 管它了……

一、编译httpd-2.4

1、准备好开发环境

# yum groupinstall “development tools”

# yum install pcre-devel

2、准备源码包

apr-1.5.0-tar.gz

apr-util-1.5.3-tar.gz

httpd-2.4.10-tar.gz

3、编译apr-1.5

# tar xvf apr-1.5.0-tar.gz

# cd apr-1.5.0

# ./configure –prefix=/usr/local/apr

# make && make install

4、编译apr-util-1.5.3

# tar xvf apr-util-1.5.3-tar.gz

# cd apr-util-1.5.3

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

# make && make install

5、编译httpd-2.4.10

# tar httpd-2.4.10-tar.gz

# cd httpd-2.4.10

# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd24
–enable-so nable-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

6、提供服务脚本/etc/rc.d/init.d/httpd24

拷贝http-2.2的服务脚本并把如下路径改为编译后httpd-2.4的路径即可,pid文件的位置也需要修改

apachectl=/usr/local/apache/bin/apachectl

httpd=/usr/local/apache/bin/httpd

prog=httpd

pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

加入服务列表

# chkconfig –add httpd24

7、配置环境变量并重读此配置文件

# vim /etc/profile.d/httpd.sh

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

# . /etc/profile.d/httpd.sh

8、启动服务

# service httpd24 start

二、编译MariaDB-5.5.43

1、准备源码包

MariaDB-5.5.43-tar.gz

2、创建数据存放目录

# mkdir -pv /mydata/data

3、创建系统用户及其系统组并修改其属主、属组

# groupadd -r mysql

# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql

# chown -R mysql.mysql /mydata/data

4、安装并初始化MariaDB

# tar xf MariaDB-5.5.43-tar.gz -C /usr/local

# cd /usr/local

# ln -sv MariaDB-5.5.43 mysql

# cd mysql

# chown -R root.mysql ./*

初始化:

# scripts/mysql_install_db –datadir=/mydata/data/ –user=mysql

5、为mysql提供主配置文件

# mkdir /etc/mysql

# cp support-files/my-large.cnf /etc/mysql/my.cnf

编辑主配置文件如并添加如下内容

# vim /etc/mysql/my.cnf

datadir = /mydata/data

innodb_file_per_table = on

skip_name_resolve = on

6、为mysql提供服务脚本

# cd /usr/local/mysql

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

7、添加至服务列表并启动服务

# chkconfig –add mysqld

# service mysqld start

8、安装初始化给root帐号添加密码以及删除空帐号

# /usr/local/bin/mysql_secure_installation

三、编译php-5.4.40

1、准备源码包

php-5.4.40-tar.gz

2、解决依赖关系

# yum -y install bzip2-devel libmcrypt-devel libxml2-devel

3、编译并安装php-5.4.40

# tar xf php-5.4.40

# cd php-5.4.40

# ./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(prefork
模块不需要此项)

# make && make install

4、为php提供配置文件:

拷贝源码目录下的php.ini-production文件到/etc目录并改名为php.ini

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

5、编辑apache配置文件httpd.conf,让apache支持php

# vim /etc/httpd24/httpd.conf

添加如下两行:

AddType application/x-httpd-php .php

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

并定位至DirectoryIndex index.html将其修改为:

DirectoryIndex index.php index.html

6、提供index.php测试页面

默认目录:/usr/local/apache/htdocs

测试页面index.php示例如下:

<?php

$link = mysql_connect(‘127.0.0.1′,’root’,”);

if ($link)

echo “successfully”;

else

echo “failure”;

mysql_close;

phpinfo();

?>

7、重新启动httpd服务,测试其是否可正常访问

# service httpd24 restart

四、编译安装xcache,为php加速

1、准备源码包

xcache-3.2.tar.gz

2、编译安装xcache

# tar xf xcache-3.2

# /usr/local/php/bin/phpize 生成./configure脚本

# ./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/

3、编辑php.ini,整合phpxcache

xcache源码目录中提供的样例配置导入php.ini

# mkdir /etc/php.d

# cp xcache.ini /etc/php.d

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

定位至extension开头的行,将修改为如下内容:

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

五、重新编译httpdfpm方式与php结合

1、删除之前解压的目录并重新解压

# rm -f php-5.4.0

# tar xf php-5.4.0

2、编译安装

# cd php-5.4.0

# ./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提供配置文件

# mkdir /etc/php5{,.d}

# cp php.ini_production /etc/php5/php.ini

4、为php-fpm提供服务脚本并添加至服务列表

# cp spai/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

5、为php-fpm提供配置文件并编辑:

# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

# vim /usr/local/php5/etc/php-fpm.conf

作如下修改:

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

6、启动php-fpm

# service php-fpm start

7、验证php-fpm是否启动成功

# ps aux | gerp fpm

默认情况下,fpm监听在127.0.0.19000端口,可使用#
netstat -tnlp | grep php-fpm
验证是否已经在监听相关的套接字上

8、配置httdp.conf,以实现fcgi

1、启用相关的模块

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.0:9000/PATH/TO/DOCUMENT_ROOT/$1

提示:/PATH/TO/DOCUMENT_ROOT:为网页存放的位置

ProxyRequests Off:关闭正向代理

ProxyPassMatch 把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

例:

<VirtualHost *:80>

DocumentRoot “/web/htdocs/www1”

ServerName rzt.com

ServerAlias www.rzt.com

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000web/htdocs/www1/$1

<Directory “/web/htdocs/www1”>

Options none

AllowOverride none

Require all granted

</Directory>

</VirtualHost>

3、让apache能识别php格式的页面

AddType application/x-httpd-php .php

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

让其支持php格式的主页

DirectoryIndex index.php index.html

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

(0)
人字拖人字拖
上一篇 2017-04-23
下一篇 2017-04-23

相关推荐

  • fdisk命令

    fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。

    2017-12-05
  • apache编译安装

    apache是什么:     Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安…

    Linux干货 2016-08-24
  • 第二周博客作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理类命令:cp,mv,rm 常用的使用方法: cp命令: 单源复制: cp [OPTION]…[-T] SOURCE DEST 多源复制: cp [OPTION]… SOURCE …DIRECTORY cp [OPTION]… …

    Linux干货 2017-02-06
  • sed与vim浅析

    sed与vim sed Stream EDitor, 行编辑器,sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。…

    Linux干货 2016-08-10
  • 管理用户组的命令

    用户账户 管理用户的命令及配置文件, Useradd,usermod,userdel,newusers,chpasswd,passwd,chage,chfn,chsh,id,su,finger Useradd:创建用户,         Useradd 选项 参数  &…

    Linux干货 2016-10-23
  • LVM练习及quota和dd命令

    练习 1、创建一个至少有两个PV组成的大小为20G的名为testvg的 VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻 辑卷testlv;挂载至/users目录 第一步!首先准备足够大的硬盘来实验 [root@Cloud /]#lsblk  #添加了/dev/sdb/c硬盘  NAME &nb…

    Linux干货 2016-09-09