源码安装的php升级,源码安装搭建LAMP环境---实现更新版本的服务

源码安装搭建LAMP环境---实现更新版本的服务

有的时候我们会想用最新版本:最新版本总体来说会比以前的性能要优越一些,并且能够按照我们的意愿来自定义参数。

我们选择的跟新版本:httpd 2.4、mysql-5.6、php-5.4

首先我们也知道,拆包:

源码包一般都会有这些内容:

Development Libraries

Development Tools

X Software Development

Legacy Software Development

1:、拆包: 那么搭建LAMP环境有没有先后顺序呐?

当然,首先是安装Apache、再安装mysql,这两个安装好以后,才能安装php。

搭建yum服务器: 这个前面已经谈到过yum服务的安装以及用处。

先把我们下载的安装包拷贝到虚拟机固定目录下:

Apache的源码安装包及附属文件包:

f469a9b7709cf7d8a10958016d20f0f1.png

Mysql的源码安装包:mysql-5.6.10.tar

aa5a2cf353120ef64eb4b2958b05df91.png

再次是php的源码安装包:php-5.4.13.tar.bz2

7ca4f12309a857194e3306e01e4c248b.png

先来看一下我们拷贝到linux内的软件包的用处:

e13ac3d79d8bc3cb566f996d20a8e8f2.png

接下来拆包:这个安装包有先后顺序:

先安装apache源码包:先解压那两个可移植运行库:

[root@Blue ~]# tar -zxvf apr-1.4.6.tar.gz  -C /usr/local/src

[root@Blue ~]# tar -zxvf apr-util-1.5.1.tar.gz  -C /usr/local/src

[root@Blue ~]# cd /usr/local/src/apr-1.4.6/

[root@Blue apr-1.4.6]# ll

同样有配置文件和说明文件README

先打开README文件查看说明,可能用example:

[root@Blue apr-1.4.6]# less README

99aee0fcdfaabbe03daf656c88162094.png

那我们按照example案例做就可以了哦:

[root@Blue apr-1.4.6]# ./configure --help |less#查看.configure命令的用法#

[root@Blue apr-1.4.6]# ./configure --prefix=/usr/local/apr#安装到指定目录,方便查找卸载#

[root@Blue apr-1.4.6]# make && make install#执行make安装#

查看安装后的目录:

[root@Blue apr-1.4.6]# cd /usr/local/apr/

[root@Blue apr]# ll#都是一些二进制的类文件、头文件#

total 32

drwxr-xr-x 2 root root 4096 Aug 30 15:21 bin

drwxr-xr-x 2 root root 4096 Aug 30 15:21 build-1

drwxr-xr-x 3 root root 4096 Aug 30 15:21 include

drwxr-xr-x 3 root root 4096 Aug 30 15:21 lib

我们可以查看各个文件的详细目录,lib目录下是一些库文件。

我们在系统的库文件下新建我们的apr.conf的配置文件:(导入我们解压后的可移植运行库lib目录)

[root@Blue apr]# vim /etc/ld.so.conf.d/apr.conf

1/usr/local/apr/lib#我们所导入的库文件目录#

[root@Blue apr]# ll /etc/ld.so.cache#想要看库文件是否导入,可以查看此文件大小变化#

-rw-r--r-- 1 root root57177Aug 29 09:15 /etc/ld.so.cache

[root@Blue apr]# ldconfig#执行刷新库文件缓存指令#

[root@Blue apr]# ll /etc/ld.so.cache

-rw-r--r-- 1 root root57339Aug 30 15:35 /etc/ld.so.cache#对比是不是变的比较大了些#

也可以执行这个指令进行查看是否加载了lib目录下的类文件。

[root@Blue apr]# ldconfig -pv |grep apr

libgstdataprotocol-0.10.so.0 (libc6) => /usr/lib/libgstdataprotocol-0.10.so.0

libaprutil-1.so.0 (libc6) => /usr/lib/libaprutil-1.so.0

libapr-1.so.0 (libc6) => /usr/local/apr/lib/libapr-1.so.0

libapr-1.so.0 (libc6) => /usr/lib/libapr-1.so.0

libapr-1.so (libc6) =>/usr/local/apr/lib/libapr-1.so

安装的apr的头文件include应该让系统能够自动加载:我们该放到哪里类?

我们系统能自动加载的头文件目录有:/usr/include    /usr/local/include /

我们可以复制到此目录,也可以做链接:

[root@Blue apr]# ln -s /usr/local/apr/include /usr/include/apr#建立软连接#

再去安装apache工具:这个我们已经解压完成了:

[root@Blue ~]# cd /usr/local/src/apr-util-1.5.1/

查看目录详情:也会有配置目录和说明目录README.

然后按照example来完成安装:

我们可以这样来查看./configure的指令用法,关于apr的用法:

[root@Blue apr-util-1.5.1]# ./configure --help |less

[root@Blue apr-util-1.5.1]# ./configure --help |grep apr

--with-apr=PATHprefix for installed APR or the full path to

apr-config

--with-apr-iconv=DIR    relative path to apr-iconv source

[root@Blue apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util

--with-apr=/usr/local/apr/bin/apr-1-config

[root@Blue apr-util-1.5.1]# make && make install#编译and安装#

查看形成的文件:

[root@Blue apr-util-1.5.1]# cd /usr/local/apr-util/

[root@Blue apr-util]# ls

bin  include  lib

可见和前面的一样把库文件和头文件导入系统。

[root@Blue apr-util]# ll bin

total 12

-rwxr-xr-x 1 root root 6453 Aug 30 16:05 apu-1-config那么我们想经常使用这个工具,那么这个工具所在路径又不在这个系统环境变量指定路径中:

[root@Blue apr-util]# vim /etc/ld.so.conf.d/apr-util.conf#导入类文件#

1/usr/local/apr-util/lib

[root@Blue apr-util]# ldconfig#刷新缓存#

[root@Blue apr-util]# ldconfig -pv |grep apr-util#查看链接库#

libaprutil-1.so.0 (libc6) => /usr/local/apr-util/lib/libaprutil-1.so.0

libaprutil-1.so (libc6) => /usr/local/apr-util/lib/libaprutil-1.so

[root@Blue apr-util]# ln -s /usr/local/apr-util/include   /usr/include/apr-util#建立基于目录的链接库#

现在我们再把apu-1-config工具文件放到系统环境变量中,这样系统的任何人都可以使用该工具。

先来查看一些系统的变量:[root@Blue apr-util]# ll /etc/profile  /etc/bashrc

4850eedf5defd0c1686a4d9e3e6094c2.png

然后查看一下只作用于个人的环境变量文件目录:

9c6a3616155bf5fa2d27477e445a4276.png

只需编辑系统中的加载环境变量的文件添加上我们这个工具的完整路径:

[root@Blue apr-util]# vim /etc/profile

b6543e8b374e9470d622e566cbc8d2f8.png

那么编辑完成之后,在我们下一次登陆系统是就会生效了。

这时我们源码安装Apache的前续工作可移植工具就算搞定了。

开始安装源码:httpd源代码。

[root@Blue ~]# tar -jxvf httpd-2.4.4.tar.bz2  -C /usr/local/src/

[root@Blue ~]# cd /usr/local/src/httpd-2.4.4/

[root@Blue httpd-2.4.4]# ls

看到也有同样的INSTALL安装说明文件:我们可以查看一下安装样例:

[root@Blue httpd-2.4.4]# less INSTALL

5a5129816f9ae356b4d2bafe50f1ee96.png

开始安装:我们可以先查看一下安装说明:./configure --help :这个选项比较多:

[root@Blue httpd-2.4.4]# ./configure      \

> --prefix=/usr/local/apache          \

> --sysconfdir=/etc/httpd    \

> --enable-so           \

> --enable-mods-shared=most     \

> --enable-ssl   \

> --enable-mpms-shared=all  \

> --enable-rewrite   \

> --with-apr=/usr/local/apr/bin/apr-1-config   \

> --with-apr-util=/usr/local/apr-util/bin/apu-1-config  \

> --with-z    \

我们按下enter,会出现一个叫pcre的文件出错误:这时我们开始用yum查找pcre的所有安装包,那一个么有安装:

[root@Blue httpd-2.4.4]# yum list all |grep pcre

This system is not registered with RHN.

RHN support will be disabled.

file:///mnt/cdrom/Server/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/mnt/cdrom/Server/repodata/repomd.xml'

Trying other mirror.

pcre.i386                                 6.6-2.el5_1.7              installed

pcre-devel.i386                           6.6-2.el5_1.7              rhel-server

我们会发现那个包含共享库的pcre-devel.i386包没有安装:

[root@Blue httpd-2.4.4]# yum install pcre-devel

然后再来重新配置Apache源码包:后面加上我们刚安装的pcre的包配置信息:

[root@Blue httpd-2.4.4]# ./configure      --prefix=/usr/local/apache          --sysconfdir=/etc/httpd    --enable-so           --enable-mods-shared=most     --enable-ssl   --enable-mpms-shared=all  --enable-rewrite   --with-apr=/usr/local/apr/bin/apr-1-config   --with-apr-util=/usr/local/apr-util/bin/apu-1-config  --with-z    --with-pcre

配置完后再来测试和安装:

[root@Blue httpd-2.4.4]# make && make install#时间会长点#

[root@Blue httpd-2.4.4]# cd /usr/local/apache/#查看我们安装完成目录内容#

[root@Blue apache]# ll

total 96

drwxr-xr-x  2 root root  4096 Aug 22 22:07 bin

drwxr-xr-x  2 root root  4096 Aug 22 22:07 build

drwxr-xr-x  2 root root  4096 Aug 22 22:07 cgi-bin

drwxr-xr-x  3 root root  4096 Aug 22 22:07 error

drwxr-xr-x  2 root root  4096 Aug 22 21:12 htdocs#网站源文件目录#

drwxr-xr-x  3 root root  4096 Aug 22 22:07 icons

drwxr-xr-x  2 root root  4096 Aug 22 22:07 include#头文件#

drwxr-xr-x  2 root root  4096 Aug 22 22:07 logs#网站日志#

drwxr-xr-x  4 root root  4096 Aug 22 22:07 man#apache手册#

drwxr-xr-x 14 root root 12288 Feb 19  2013 manual

drwxr-xr-x  2 root root  4096 Aug 22 22:07 modules

[root@Blue apache]# ll /etc/httpd#可以查看到形成的目录包括配置文件#

先来把apache的bin目录输入到系统的环境变量中去:

[root@Blue apache]#vim /etc/profile

45 PATH=$PATH:/usr/local/apr-util/bin:usr/local/apr/bin:/usr/local/apache/bin#追加路径#

再对头文件建立软连接到系统头文件目录:

[root@Blue apache]# ln -s include /usr/include/apache

再把man文件加入到系统可识别的文件中:

[root@Blue apache]# vim /etc/man.config

0c8dac15d3ba92af51657f3d7c15272b.png

[root@Blue apache]# man htpasswd#现在这个man都能找到用法说明#

[root@Blue apache]# cd /etc/init.d

在这里书写可执行脚本文件:

其他的都已经配置完成:

[root@Blue init.d]# touch httpd

[root@Blue init.d]# chmod a+x httpd

[root@Blue init.d]# vim httpd

写配置文件:

[root@Blue init.d]# vim httpd

#!/bin/bash

# chkconfig: 234585 98                                         #这两行命令是允许执行chkconfig on命令#

# description: OpenSSH server daemon#这是一个描述优先级、on、off的端口#

lockfile=/var/lock/subsys/httpd

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

configfile=/etc/httpd/httpd.conf

. /etc/init.d/functions

start(){

[ -f $lockfile ] && echo "httpd is started" && exit

echo -n "httpd is starting...."

sleep 1

$prog -f $configfile && echo "ok" && touch $lockfile || echo "fail"

}

stop(){

[ !  $lockfile ] && echo "httpd is stoped" && exit

echo -n  "httpd is stoping...."

sleep 1

killproc httpd && echo "ok" && rm -rf $lockfile || echo "fail"

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo "USAGE:stop|start|restart"

esac

Httpd的配置文件写好后保存测试下其正确性:

[root@Blue init.d]# service httpd start

[root@Blue init.d]# netstat  -tupln | grep httpd

tcp        00 :::80:::*         LISTEN  3777/httpd

现在在客户机访问一下我们搭建好的apache站点网页:

0f4e1eefd2848f9bd9597f2487b2683a.png

[root@Blue init.d]# service httpd stop

可见可以完成服务功能的:

查看关于httpd服务的进程:

[root@Blue init.d]# ps aux |grep httpd

root3917  0.0  0.2   4800  2380 ?        Ss   23:00   0:00 /usr/local/apache/bin/httpd -f /etc/httpd/httpd.conf

daemon    3918  0.0  0.2 281436  2064 ?        Sl   23:00   0:00 /usr/local/apache/bin/httpd -f /etc/httpd/httpd.conf

daemon    3920  0.0  0.2 281436  2068 ?        Sl   23:00   0:00 /usr/local/apache/bin/httpd -f /etc/httpd/httpd.conf

daemon    3922  0.0  0.2 281436  2068 ?        Sl   23:00   0:00 /usr/local/apache/bin/httpd -f /etc/httpd/httpd.conf

root      4015  0.0  0.0   1844   496 pts/2    R+   23:05   0:00 grep httpd

×××标记的为父进程:其他为子进程。

接下来我们查看我们的chkconfig命令是否可被调用:

[root@Blue init.d]# chkconfig --add httpd

[root@Blue init.d]# chkconfig --list |grep httpd

httpd    0:off1:off2:on3:on4:on5:on6:off#优先级为234的东打开了#

接下来再来安装mysql源码。

首先下载mysql:官网:www.mysql.com

[root@Blue ~]# tar -zxvf mysql-5.6.10.tar.gz  -C /usr/local/src/

[root@Blue src]# ln -s mysql-5.6.10  mysql

[root@Blue src]# cd mysql

[root@Blue mysql]# ls

查看INSTALL-SOURCE

[root@Blue mysql]# vim INSTALL-SOURCE

这个文件有点大:有时间慢慢研究:直接我们切入正题。

先来看一下二进制的安装方法说明:

245c55cdfec105f81c23437191e48459.png

[root@Blue mysql]# cd support-files/

[root@Blue support-files]# ls

这里都是支持该服务的配置文件:

接下来再来看一下源代码安装说明:

f611ecee26b5719c2ae74102d591acb2.png

接下来是一些源码安装的具体步骤说明:

9d39e12138325879b3ce1400e4f4b1ba.png

先来解压我们下载的cmake工具:

[root@Blue ~]#tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/

[root@Blue cmake-2.8.10.2]# ls

CMakeCPackNaNake            CTestCustom.ctest.in  Docs        Utilities

CMakeCPackOptionsNaNake.in  ChangeLog.manual      Example     bootstrap

CMakeGraphVizOptionsNaNake  ChangeLog.txt         Modules     cmake_uninstallNaNake.in

CMakeLists.txt              CompileFlagsNaNake    Readme.txtconfigure

CMakeLogo.gif               Copyright.txt         Source      doxygen.config

CTestConfigNaNake           DartConfigNaNake      Templates

CTestCustomNaNake.in        DartLocal.conf.in     Tests

这解压过的文件目录里有个configure配置文件:

[root@Blue cmake-2.8.10.2]# ./configure --help |less#查看配置帮助,对于这个跨平台工具只需配置安装路径就行了#

[root@Blue cmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake#安装cmake跨品太工具#

[root@Blue cmake-2.8.10.2]#make                                                        #编译(时间比较长)#

[root@Blue cmake-2.8.10.2]#make install                                             #安装#

[root@Blue local]# cd cmake/

[root@Blue cmake]# ls

bin  doc  man  share#这里的bin工具文件路径不是系统识别路径修改变量#

[root@Blue cmake]#vim  /etc/profile

45PATH=$PATH:/usr/local/apr-util/bin:usr/local/apr/bin:/usr/local/apache/bin:/usr/local/cmake/bin

还有man文件路径也得加到系统可识别的文件里:

[root@Blue ~]# vim /etc/man.config

MANPATH /usr/local/cmake/man

现在就可以查到cmake的用法了。

[root@Blue cmake]# man cmake

编译过后我们得重新登录一下才能使我们的编译的环境变量生效。

再来按照说明步骤来继续走。

[root@Blue ~]#  groupadd mysql

[root@Blue ~]#  useradd -r -g mysql mysql

[root@Blue ~]# cd /usr/local/src/mysql

[root@Blue mysql]# cmake .#表示用默认参数#

[root@Blue mysql]#make                                                                                  #编译mysql(时间长)#

[root@Blue mysql]#make install

安装完成之后我们来到默认安装的路径:

[root@Blue local]# cd mysql

[root@Blue mysql]# ls

当然也是有bin文件,也要加入系统环境变量中,能够让系统识别:

[root@Blue mysql]# vim /etc/profile45ATH=$PATH:/usr/local/apr-util/bin:usr/local/apr/bin:/usr/local/apache/bin:/usr/local/cmake/bin:/usr/local/mysql/bin

我们可以重新登录或者执行这个文件,使环境变量生效:

也得对mysql的include头文件、lib库文件、man说明文件、等一些文件都要进行操作。

[root@Blue mysql]# vim /etc/man.config

MANPATH /usr/local/mysql/man

[root@Blue mysql]# vim /etc/ld.so.config.d/mysql.conf #添加库文件到系统可识别目录#

/usr/local/mysql/lib

[root@Blue mysql]# ldconfig#清除缓存#

[root@Blue mysql]# ldconfig -pv |grep mysql

libmysqlclient_r.so.15 (libc6) => /usr/lib/mysql/libmysqlclient_r.so.15

libmysqlclient.so.18 (libc6) => /usr/local/mysql/lib/libmysqlclient.so.18

libmysqlclient.so.15 (libc6) => /usr/lib/mysql/libmysqlclient.so.15

libmysqlclient.so (libc6) => /usr/local/mysql/lib/libmysqlclient.so

加载一下是否有这些链接库:

头文件include链接到/usr/include/mysql

[root@Blue mysql]# ln -s include/usr/include/mysql

这时已经安装完成,现在来执行后安装设置:#postinstallation  setup

df3f888ac9c57dae81e25a586b9ab171.png

[root@Blue mysql]# chown -R mysql .#改变该目录的所属用户,-R递归#

[root@Blue mysql]# chgrp -R mysql .#改变该目录所属组为mysql #

[root@Blue mysql]# scripts/mysql_install_db --user=mysql#数据库初始化#

然后把所属组和所有者修改成root:

[root@Blue mysql]# chown -R mysql data#改变目录所属用户#

[root@Blue support-files]# cp my-default.cnf  /etc/my.cnf#拷贝这个文件到etc下,是mysql配置文件,可以修改mysql的其他特性#

[root@Blue support-files]# cp mysql.server/etc/init.d/mysqld#mysql的启动控制脚本#

[root@Blue support-files]# service mysqld start

[root@Blue support-files]# netstat -tupln |grep mysqld

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3037/mysql

[root@Blue support-files]# mysql

mysql> show databases;#查看其数据库#

[root@Blue support-files]# chkconfig --add mysqld#设置开机自启动#

[root@Blue support-files]# chkconfig --list |grep  mysqld#查看mysql各级别开还是关闭#

mysqld0:off1:off2:on3:on4:on5:on6:off

到这里mysql也安装配置完毕:

接下来安装php源码:

[root@Blue ~]# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src

[root@Blue ~]# cd /usr/local/src/php-5.4.13/

[root@Blue php-5.4.13]# ls

查看其中的说明文件并./configure  +各种参数:

738872b185160dd55af501f4c9f7f26b.png

345c2bc976f767ab04e5871003792a0a.png

[root@Blue php-5.4.13]# ./configure  \

>  --prefix=/usr/local/php     \

> --sysconfdir=/etc/php   \

> --with-apxs2=/usr/local/apache/bin/apxs  \

> --with-gd   \

> --with-jpeg-dir  \

> --with-png-dir  \

> --with-zlib-dir \

> --enable-mbstring \

> --with-mysql=/usr/local/mysql\

> --with-mysqli=/usr/local/mysql/bin/mysql_config \

>

安装完成之后编译并安装:

[root@Blue php-5.4.13]# make && makeinstall

编译安装完成之后来到安装目录:查看所有文件:

[root@Blue php-5.4.13]# cd /usr/local/php

[root@Blue php]# ll

total 32

drwxr-xr-x 2 root root 4096 Aug 27 17:57bin#指令和工具文件#

drwxr-xr-x 3 root root 4096 Aug 27 17:57include#include头文件#

drwxr-xr-x 3 root root 4096 Aug 27 17:56lib#库文件#

drwxr-xr-x 3 root root 4096 Aug 27 17:56php

怎样查看php是不是与我们的mysql相结合呐?

[root@Blue php]# bin/php -m#直接调用bin下的php文件,-m参数#

再来系统可识别的目录/etc/profile下添加安装php形成的bin目录路径:

45PATH=$PATH:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin:/usr/local/cmake/bin:/usr/local/mysql/bin:/usr/local/php/bin

[root@Blue php]# . /etc/profile#重新执行该文件,使其改动生效#

############源码php安装不需要把库文件和头文件加入到相应目录文件#############

一般的库文件也要使系统能够自主识别:

[root@Blue php]# vim /etc/ld.so.conf.d/php.conf

1/usr/local/php/lib

[root@Blue php]# ldconfig#刷新缓存#

[root@Blue php]# ldconfig -pv |grep php#查看是否添加成功#

查看php是否形成相应模块:

[root@Blue php]# vim /etc/httpd/httpd.conf

有这莫一行:

147LoadModule php5_module        modules/libphp5.so

查看apache安装目录下的modules下是否形成相关php的模块:

[root@Blue modules]# ll |grep php

-rwxr-xr-x 1 root root 22256942 Aug 27 17:56libphp5.so

发现是存在的。

[root@Blue modules]# vim /etc/httpd/httpd.conf#修改首页名为index.php#

dd5137db6d42f4200c32fd2fdc120a0c.png

告诉apache服务能够处理php页面:

[root@Blue modules]# cd /usr/local/src/php-5.4.13/

[root@Blue php-5.4.13]# ll

找到该目录下的INSTALL文件找到应该添加的相应代码到Apache配置文件:

9a54e3d27470822e02311871d2c38064.png

[root@Blue php-5.4.13]# vim /etc/httpd/httpd.conf

d6b628179eca31c68e005b38801bb340.png

[root@Blue php-5.4.13]# service httpd restart

查看网页内容并加入一些内容来测试php的连接状态:

[root@Blue php-5.4.13]# cd /usr/local/apache/htdocs/

[root@Blue htdocs]# ll

total 8

-rw-r--r-- 1 root root 45 Jun 12  2007 index.html

[root@Blue htdocs]# mv index.html index.php

It works!

welcome Bluesky web!

phpinfo();

?>

我们在客户机上访问一下我们的站点:

9c864ff75cf0becaf56b4af74e83625d.png

再来测试一下数据库mysql与apache的连接状态:

修改index.php插入mysql的连接函数:

[root@Blue htdocs]# vim index.php

It works!

welcome Bluesky web!

$link=mysql_connect('127.0.0.1','root','123');

if ($link)

echo "ok";

else

echo "NOT";

phpinfo();

?>

再在客户机上做下测试:

就会看到页面上出现“ok”这说明我们的mysql连接成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值