源码搭建LAMP

    在redhat 5.8上搭建LAMP。linux 系统为redhat5.8,apache-2.4.2,mysql-5.5.24,

php-5.3.14。apache和php都是通过源码编译来安装,而mysql直接解压就能运行。在编译之前先安装好编译环境。

   yum -y groupinstall 'Development tools' 'Development Libraries' 'X Software Development' php要依赖X Softeware中的库,因此必须安装好。

一,编译安装apache

   1,解决apache的依赖关系,安装apr-1.4.6.tar.bz2,apr-util-1.4.1.tar.bz2在apache的官网都有提供下载.安装apr,先执行./buildconf。为了方便以后卸载,我安装到/usr/local/lamp/apr

      然后执行./configure --prefix=/usr/local/lamp/apr

      成功后make,之后再make install。

 安装apr-util。 ./buildconf --with-apr=/root/apr-1.4.6(指定apr源码的位置)

   ./configure --prefix=/usr/local/lamp/apr-util  --with-apr=/usr/local/lamp/apr/,然后开始make,make install.

     安装pcre-devel : yum -y install pcre-devel
  2,开始编译apache: ./configure

源码搭建LAMP

完成之后开始 make ,make install

 通过上面几个步骤完成apache的安装,由于安装时,自己定义了路径,因此还需要做以下修改

(1)对vim /etc/profile中添加一行PATH=/usr/local/lamp/apache/bin:$PATH

(2)export PATH=/usr/local/lamp/apache/bin:$PATH(为什么不用source /etc/profile,因使用source,原来的路径会重复)

(3)vim /etc/ld.so.conf.d/apache.conf添加一行/usr/local/lamp/apache/lib(让apache的库文件能让别人访问,但apache没有lib这个目录,也就是没有库文件,此步骤可以省略,如里有库文件,引步骤不能省略)

(4)ln -sv /usr/local/lamp/apache/include /usr/include/httpd (链接头文件,一定要让别人通过/usr/include/这个路径能够访问到,因此做一个httpd的链接)

(5)修改/etc/man.config中添加一行 MANPAHT   /usr/local/lamp/apache/man 

源码搭建LAMP

(6)提供一个服务,能够*控制httpd服务。在别的主机上复制/etc/rc.d/init.d/下的httpd服务到本机上。修改/etc/rc.d/init.d/httpd

源码搭建LAMP

源码搭建LAMP

源码搭建LAMP

修改完之后,添加x权限,如果没有执行权限,用service启动时,会提示httpd:unrecognized service。chmod +x /etc/rc.d/init.d/httpd,并加入到chkconfig中

源码搭建LAMP

此时可以使用service httpd start启动httpd。

(7)apache安装的路径下已经提供了一个简单的启动的脚本,这个脚本的功能比较简单,不过可以先测试apache能否正常运行。/usr/local/lamp/apache/bin/apachectl start,在浏览器中输入172.16.150.1(这个是我linux的IP)。有没有显示it works。如果能正常显示,则此apache已经安装完成。注意源码安装后,apache的生成的文件都是apache目录下,当然也包括日志,主页等等。但是配置文件在/etc/httpd/下,因为./configure时指定配置文件放在这个目录下。

(8)新建两个虚拟主机,用来安装phpmyadmin与测试php。分别为www.bingo.com与pma.bingo.com,先修改/etc/httpd/http.conf的配置文件,如下

源码搭建LAMP

源码搭建LAMP

 下面修改/etc/httpd/httpd.conf/extra/httpd-vhost.conf,在最后一行新建两个虚拟主机,并将原来配置文件提供的虚拟主机注释。

源码搭建LAMP

先创建/web/vhost/www和/web/vhost/pma两个目录,并提供index.html主页。并重启apache的服务apachectl redstart,由于没有安装dns,因此需要在c:\windows\system32\drivers\etc\hosts添加下面两行

源码搭建LAMP

在浏览器中,分别测试www.bingo.com与pma.bingo.com能否正常访问。如果不能则需要关闭linux的selinux。

二,安装mysql,考虑到新版的mysql不支持gcc编译。直接下载免安装版。mysql-5.5-24-linux26-i686.tar.gz

    1,由于mysql比较特殊,需要用mysql这个用户来执行初始化,因此先需要添加mysql用户,而且还必须解压在/usr/local/mysql。


  1. [root@server30 ~]# useradd -r -s /sbin/nologin mysql 
  2. [root@server30 ~]# tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local/ 

给mysql-5.5.24创建软件链接ln -s /usr/local/mysql-5.5.24.... /usr/local/mysql

    2,mysql只是一个关系型数据库管理系统。而数据必须存放在磁盘上,考虑到以后数据的会增大,此时就让mysql的数据存储在lvm的分区上。

源码搭建LAMP

3,挂载MYDATA,并让其开机能自动挂载。修改/etc/fstab,并添加一行如下

源码搭建LAMP

创建mkdir /data并重新挂载mount -a 。为了方便数据管理在/data下创建mysql目录,并修改属主与属组chown mysql:mysql /data/mysql

4,对mysql做初始化。cd /usr/local/mysql,并修改里面文件的属主与属组为mysql,chown -R mysql:mysql . 

源码搭建LAMP

5,给mysql提供配置文件。在mysql目录下的support-file目录下,有5个以.cnf结尾的是配置文件样本。而这些都是跟当前主机的内存相关,由于我虚拟机的内存是512M。因此cp support-files/my-large.cnf  /etc/my.cnf(mysql的配置文件必须my.cnf),编辑/etc/my.cnf,

源码搭建LAMP

6,提供mysql的服务脚本

源码搭建LAMP

7,将mysql命令添加到PATH路径中,修改/etc/profile,并测试mysql能否正常工作。添加man文档到/etc/man.config中。

源码搭建LAMP

源码搭建LAMP

8,创建/etc/ld.do.conf.d/mysql.conf并在里面添加一行/usr/local/mysql/lib,。执行ldconfig,让系统重读mysql的库文件。

9,在/usr/include下创建mysql的软链接ln -s /usr/local/mysql/include /usr/clude/mysql

三,安装php,下载 php-5.4.4.tar.bz2

 1,如果想让编译的php支持mcrypt扩展,则需下载这两个rpm包并安装。libmcrypt-2.5.7-5.el5.i386.rpm  libmcrypt-devel-2.5.7-5.el5.i386.rpm

2,执行(3)./configure --prefix=/usr/local/lamp/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  --with-apxs2=/usr/local/lamp/apache/bin/apxs --with-mcrypt 
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2

 2,编译完之后make  &&  make install,提供php的配置文件 

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

3,编辑/etc/httpd/httpd.conf 修改两个地方

源码搭建LAMP

源码搭建LAMP

4,重启httpd服务,service httpd restart,如果提示错误信息如下,则需要关闭selinux。执行setenforce 0。再重新启动服务。

Starting httpd: httpd: Syntax error on line 146 of /etc/httpd/httpd.conf: Cannot load /usr/local/lamp/apache/modules/libphp5.so into server: /usr/local/lamp/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

并测试,将/web/vhost/www/index.html改成index.php,并在里面输入下面几行

源码搭建LAMP

 访问www.bingo.com能够显示出php信息,则表示已经php能够结合apache正常工作。

四,安装phpmyadmin,通过网页的形式来访问mysql数据库。

1,下载 phpMyAdmin-3.5.1-all-languages.tar.bz2,此版本对php的版本有要求。解压后将 phpMyAdmin-3.5.1-all-languages里面的文件全mv到/web/vhost/pma下。并为pma提供一个配置文件,在/web/vhost/pma下已经提供了一个配置文件样例,只需重新复制一份就可以。cp config.sample.inc.php  config.inc.php,修改config.inc.php中的其中一行

源码搭建LAMP

此时重启httpd服务,并在浏览器中输入pma.bingo.com,如果出现下面的登录画面,表示pma已经安装成功。

源码搭建LAMP

 

lamp到此结束










本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/923845,如需转载请自行联系原作者
上一篇:《PHP和MySQL Web开发从新手到高手(第5版)》一2.8 修改存储的数据


下一篇:CTF高质量PWN题之二叉树的漏洞利用