编译安装LAMP

 

CentOS7中默认安装的是httpd2.4,数据库使用的也是mariadbphp的模块和fpm都有,不建议编译安装,php

 

下面在CentOS6.6中演示编译安装httpd2.4mariadbphp html

php编译分红两种,一种是编译成模块,另外一种是编译成fpmmysql

 

1、CentOS6中编译安装httpd2.4mariadbphp编译成模块linux

CentOS6上编译安装httpd2.4web

        编译安装步骤:sql

       httpd2.4 须要1.4以上版本的aprapr-util数据库

   由于apr这些包,可能不仅被httpd所依赖,其余程序也可能依赖,因此就不能直接升级安装,须要从新编译安装到其余位置,apache

           前提:vim

                 安装开发环境,安装pcre-develapi

              (1)apr

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

                         #  make && make install

              (2)apr-util

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

                          #  make && make install

                          #  groupadd -r apache

                          #  useradd -r -g apache apahce

                          #  ./configure --prefix=/usr/local/apache --sysconf=/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

 

        启动服务:apachectl

    首先要保证开发环境有,就是包组Development toolsServer Platform Development已经安装好,

而后下载apr-1.5.0.tar.bz2apr-util-1.5.3.tar.bz2包到虚拟机上,而后解压

wKioL1YJLHfzkiHQAADyLLSUc48289.jpg

而后编译安装

wKiom1YJLK-wi1nEAAFL6VS7elg208.jpg

编译成功了,而后进行安装

make &&  make  install就好了

 

而后一样的方式编译安装apr-util

wKioL1YJLMXAkuvIAAIjRWYEWDM713.jpg

而后make  &&  make install就好了

这两个包就安装好了

而后建立apache用户和组

groupadd -r apache useradd -r-g apache apahce,若是已存在就不用建立了

而后编译安装httpd2.4

还须要安装pcre-devel包,若是没有这个包没办法对httpd作开发编译

 

httpd2.4编译使用的选项

./configure --prefix=/usr/local/apache--sysconf=/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

wKiom1YJLQqxnrTQAAJeO0_2TuM012.jpg

编译好,make  && make  install安装

 

启动要用apachectl 由于本身安装的包没有服务脚本,能够自行编写

首先保证80端口没有被占用,

wKioL1YJLXzh7XU1AAL3m4Xopd8922.jpg

要想启动须要/usr/local/apache/bin/apachectl这个路径,若是直接使用apachectlrpm安装的httpd,为了方即可以在/etc/profile.d/下建立httpd.sh来把这个路径加入到PATH变量中,并重读这个文件

wKiom1YJLYbi1EqlAACC1hBHYKE904.jpg

wKioL1YJLdfBTg6kAADs2G1FjMs112.jpg

echo $PATH,能够查看到这个路径在最前面了,用which确认如下,就能够看到了

wKiom1YJLgSRhLwHAAFJOp-ZrN4899.jpg

apachectl就能够启动了,使用ss  –tnl 查看

wKioL1YJLhnR4qXJAANYgtiA-Sc713.jpg

从外部访问下,

wKiom1YJLiPDLcxgAACBauRwV7Y827.jpg

能够看到启动成功了

CentOS6中编译的httpd2.4须要注意下,里面的配置文件是 /etc/httpd24/httpd.conf

须要在里面加入一行PidFile  "/var/run/httpd.pid"

而后在extra目录下,还有不少功能模块的配置文件,建议到时修改时,修改这些文件,能够之后方便自动换运维

wKioL1YJLpHw928PAAJB2xiyfFs568.jpg

 

若是想在CentOS6中使用脚本,管理安装后的httpd2.4须要写一个脚本

首先apachectl  stop 停掉服务

而后进入/etc/rc.d/init.d下复制httpdhttpd24而后进行修改

wKioL1YJOq_yXaqWAAFVF1eRaQw331.jpg

 

wKioL1YJPcySukJOAAJyMywj1IE379.jpg

而后把这个脚本加入到服务中,而后打开

wKiom1YJPdTTAtpkAAEabHnkbhM049.jpg

就可使用服务启动了 service  httpd24 start

而后安装mariadb,直接编译安装须要另外的工具,这里咱们直接使用通用二进制格式的程序源码来进行

 

安装mariadb

 

首先停用使用(service  mysqld  stopmysqld服务,而后卸载mysql-server,省得产生冲突,之前的日志文件也不须要也给删掉

wKioL1YJQ62Dy6f4AAEXfu0RAGQ434.jpg

这样mysql就被彻底清掉了,而后下载mariadb的最新版本,要适用于本身的电脑的平台结构的二进制格式的源码包,这里以mariadb-5.5.43-linux-x86_64.tar.gz这个版本的mariadb为例进行安装

首先建立一个mysql用户和组,而后解压这个包到/usr/local下,而后进入这个目录,而后建立一个链接指向mysql

wKiom1YJQ07CPFJoAAFL6VS7elg340.jpg

 

spacer.gif

切进mysql这个目录,而后要把里面的全部文件的属主和属组改成rootmysql

spacer.gif

这里面有一个data目录是用来存放数据的,可是咱们不该该把数据存到这,应该从新挂载一个硬盘把数据存放到那里面,或者在根目录下建立一个目录,来存放数据

咱们挂载一盘硬盘,建立一个分区,而后作lvm

fdisk /dev/sdd(新加硬盘的名称),建立一个分区大小为10G,而后类型改成8e

spacer.gif

而后同步下

spacer.gif

而后建立pvgvlv

 

spacer.gif

而后进行初始化,文件类型任意,但最好用xfsmysqlxfs文件系统的支持性好CentOS6中没有提供,须要安装yum  install xfsprogs安装,而后就可使用make.xfs进行初始化,但之后的扩展可能有问题,为了演示咱们就以xfs文件系统为例

spacer.gif

而后建立一个目录,让它开机自动挂载,编辑/etc/fstab

spacer.gif

而后挂载如下,mount  -a,而后查看下

spacer.gif

而后进入/mydata目录,建立一个data目录来存放数据库的数据,要修改属主和属组为mysql

spacer.gif

而后回到/usr/local/mysql,而后使用数据库初始化脚本,把初始化后的数据库数据放到咱们建立的目录下

spacer.gif

查看下,这里面就有数据了

spacer.gif

这样数据的存储位置就弄好了

而后建立mysql的服务脚本

复制/usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld,而后加入服务里

spacer.gif

而后准备mysql的配置文件,mysql的配置文件的查找次序为:

/etc/my.cnf --> /etc/mysql/my.cnf -->--default-extra-file=/PATH/TO/CONF_FILE (启动这个服务时的选项指定的)-->~/.my.cnf(运行当前程序的家目录的文件),最后找到的文件生效


首先复制配置文件加入服务里,而后进行修改

spacer.gif

修改内容增长三项

spacer.gif

skip_name_resolve = on这是跳过反解这一项的配置

而后就能够启动测试下了

spacer.gif

这样mariadb就安装好了

spacer.gif

能够启动了

 

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还须要进行以下步骤:

1、输出mysqlman手册至man命令的查找路径:

编辑/etc/man.config,添加以下行便可:

MANPATH /usr/local/mysql/man

2、输出mysql的头文件至系统头文件路径/usr/include

这能够经过简单的建立连接实现:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

3、输出mysql的库文件给系统库查找路径:

# echo '/usr/local/mysql/lib' >/etc/ld.so.conf.d/mysql.conf

然后让系统从新载入系统库:

# ldconfig

4、修改PATH环境变量,让系统能够直接使用mysql的相关命令。具体实现过程这里再也不给出。

 

1、把php编译成模块

 

下面进行编辑安装php,首先下载,这里以php-5.4.40.tar.bz2版本为例

首先保证编译环境是好的,Desktop Platform Development这个包组安装过,而后bzip2-devellibmcrypt-devel libxml2-devel这几个也安装过,

而后解压,进行编译安装php

# tar xf php-5.4.40.tar.bz2

# 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

 

--enable-maintainer-zts这一项,这里为了支持apacheworkerevent这两个MPM,编译时使用了--enable-maintainer-zts选项,若是使用的是prefork就不须要这一项。

由于前面咱们编译的httpd使用的是prefork模块,因此这里编译不使用这一项

使用的命令是下面这个

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

spacer.gif

spacer.gif

这样就编译好了,而后make  &&  make install,可使用make  –j  # 来使用多线程来编译,这样速度会快

spacer.gif

安装成功了

 

先打开/etc/httpd24/httpd.conf查看LoadModule模块这一块,确认php5_module这个模块加入进来了;而后找到AddType这一块,加入以下二行

  AddType application/x-httpd-php .php

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

而后再定位至DirectoryIndex index.html 修改成:

   DirectoryIndex  index.php  index.html

而后为php提供配置文件:在编译安装的目录下(/root/php-5.4.40/

# cp php.ini-production /etc/php.ini 复制完无须修改就行,

然后从新启动httpd,或让其从新载入配置文件便可测试php是否已经能够正常使用。

而后去提供一个测试页,路径在/usr/local/apache/htdocs目录下

spacer.gif

而后编辑index.php

spacer.gif

测试下,访问172.16.249.114

spacer.gif

 

没有问题成功了,而后把mysql关掉,在确认下是否能连到数据库

spacer.gif

 

这证实能够连到,而后把mysql服务启动(service mysqld start

而后部署一个应用phpMyAdmin

解压unzip  phpMyAdmin-4.4.14.1-all-languages.zip

而后把目录移动到/usr/local/apache/htdocs/目录下,而后设置phpMyAdmin的配置文件

spacer.gif

修改phpMyAdmin的配置文件,在这里面这行加一个随机字符串而后就能够访问了


spacer.gif


而后去给数据库的管理员加上密码

spacer.gif

查看下

spacer.gif

而后重读一下 使用 FLUSH   PRIVILEGES

而后访问测试

spacer.gif

这就能够了,一切正常,


下面进行下压力测试,而后进行安装xcache进行加速

首先先访问少点,而后作压力测试

spacer.gif

压力测试ab -c 100 -n 10000 http://172.16.249.114/pma/index.php

spacer.gif

能够看到每秒中大概访问45个左右的资源

172.16.249.114上使用top命令查看,会发现压力很大

spacer.gif

下面进行编译安装xcache来进行加速,以xcache-3.2.0.tar.bz2为例

解压,而后进行编译

步骤

# tar xf xcache-3.0.3.tar.gz

# cd xcache-3.0.3

# /usr/local/php/bin/phpize 首先执行这一步,要不不出现configure脚本

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

# make && make install

spacer.gif

而后make&&make  install就好了,要记住安装完成后提示的路径

spacer.gif

这里路径是xcache的模块的位置

而后复制xcache.ini/etc/php.d/目录下,而后修改

spacer.gif

把刚才的目录加到这里面

spacer.gif

而后保存退出,重启服务(service httpd24 reload

查看测试页,会发现多一个xcache模块

spacer.gif

这样加速就作好了,而后进行访问测试

首先先少访问点,而后压力测试

spacer.gif

spacer.gif

能够看到如今每秒能够响应250个左右的资源,加速效果是很明显的

 


2、把php编译成fpm


首先编译安装apache


一、httpd-2.4.9须要较新版本的apr和apr-util,所以须要事先对其进行升级。升级方式有两种,一种是经过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行。

(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

二、编译安装httpd-2.4.10

# tar xf httpd-2.4.10.tar.bz2

# cd httpd-2.4.10

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

而后对httpd进行配置,添加服务脚本,加入服务等,跟前面的同样

三、安装mysql,跟前面的步骤同样,为了方即可以不用从新设一个分区,直接根下建立一个目录就能够了。

四、而后编译安装php


首先把刚才编译php的删掉,从新解压进行编译

spacer.gif

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

为了跟上面的编译不冲突,把目录修改成php5

编译完成后,要有下面的这些,

spacer.gif

而后就能够makemake  install

spacer.gif

安装完成

然互把httpd服务停掉,而后进入/etc/httpd24/目录下把httpd.conf配置文件移动重命名为httpd.conf.mod_php,而后把刚才的备份文件复制一份命名为httpd.conf

spacer.gif

要想让phpfpm的形式工做,首先进行配置

建立/etc/php5/etc/php5.d目录(mkdir /etc/php5{,.d}

而后复制配置文件cp php.ini-production /etc/php5/php.ini

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

spacer.gif

php-fpm提供配置文件:

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

spacer.gif

编辑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 = 5

pid = /usr/local/php5/var/run/php-fpm.pid

spacer.gif

这是为了让远程主机访问的

 

spacer.gif

而后查找pid关键字,加入pid = /usr/local/php5/var/run/php-fpm.pid

spacer.gif

接下来就能够启动php-fpm了:

# service php-fpm start

使用以下命令来验正(若是此命令输出有中几个php-fpm进程就说明启动成功了):

# ps aux | grep php-fpm

spacer.gif

 

而后要配置httpd的相关内容

1、启用httpd的相关模块

 

Apache httpd 2.4之后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它实际上是做为mod_proxy.so模块的扩充,所以,这两个模块都要加载

LoadModule proxy_modulemodules/mod_proxy.so

LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so

vim /etc/httpd24/httpd.conf

spacer.gif

编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页

 #vim /etc/httpd24/httpd.conf  

 添加以下二行

  AddType application/x-httpd-php .php

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

spacer.gif

 定位至DirectoryIndex  index.html

   修改成:

   DirectoryIndex  index.php  index.html

spacer.gif

这里先以中心主机进行测试,直接在配置文件中加入下面两行

ProxyRequestsOff

       ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1 这个路径是资源目录的路径

spacer.gif

而后先检查语法错误,重启服务进行验证

spacer.gif

spacer.gif

这就能够访问了,并且是咱们安装的fpm格式php

 

 

下面作两个虚拟主机,在fpm模式下 提供两个虚拟主机:

         www.web1.com:phpMyAdmin, 同时提供ssl

         www.web2.com:wordpress;



首先修改/etc/httpd24/httpd.conf下的配置文件,而后把中心主机禁掉,而后建立两个虚拟主机

DocumentRoot"/usr/local/apache/htdocs"这一行注释掉,紧挨着的下面一行要改成

<Directory "/web/vhosts">

主配置文件中还要加入几个模块

LoadModule socache_shmcb_modulemodules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so

spacer.gif

下面这两行也要打开

wKiom1YJSdXwYy2mAAI-ADKCR_k682.jpg

而后添加虚拟主机,在/etc/httpd24/extra/httpd -vhosts.conf这个配置文件中修改

spacer.gif

 

而后修改两个软件的配置文件(不会能够查看本人lamp的博客)

而后修改数据库

spacer.gif

 

测试,首先修改物理机的hosts文件

spacer.gif

spacer.gif

均可以正常访问了


而后为虚拟主机www.web1.comssl


首先建立CA和本身给本身发证书,在172.16.249.195上建立一个CA,这个CA是之前实验建立过的,如今不演示了

首先找到CA目录,而后生成私钥(umask077 openssl genrsa –out private/cakey.pem 2048 ),而后建立本身的签名 opensslreq -new-x509 -key private/cakey.pem -out cacert.pem -days 7300

spacer.gif

这样本身的证书建立好了

而后在172.16.249.114上建立证书,而后去找CA签证;首先建立csr文件,而后发给CACA签名后,在送还给172.16.249.114

首先在/web/vhosts中建立一个ssl目录,而后生成私钥,建立证书,而后发给CA签证

spacer.gif

而后把证书发给CA,让CA签证,

spacer.gifwKioL1YJTRayuINXAAMT8fxKoRU742.jpgCA把证书发给172.16.249.114

spacer.gif

要在/etc/httpd24/httpd.conf下搜索关键字LoadModule,把下面几行的注释去掉

LoadModule include_module modules/mod_include.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so


而后在172.16.249.114中配置/etc/httpd24/extra/httpd-ssl.conf文件

配置虚拟主机,指定证书和私钥的路径,

wKiom1YJU36ApIanAAR5HuXuEwQ810.jpg

重启服务,而后把CA的证书加入浏览器中受信任的证书里进行访问,

spacer.gif

这样ssl就作好了

相关文章
相关标签/搜索