1. 准备工作
    1. 安装编译工具

      # yum -y install gcc

      # yum -y install gcc-c++

    2. 如果系统之前已经安装有rpm包的mysql和apache,那么可以:

      #service httpd stop

      #service mysqld stop

确定rpm包安装的httpd和mysqld不能开机启动

#chkconfig –level 2345 mysqld/httpd stop

  1. 关闭SELINUX和防火墙,或者允许防火墙开放相关端口,apache 80端口,mysql 3306端口

    #vim /etc/selinux/config

    SELINUX=disabled #修改后重新启动SELINUX

    #iptables –F #清空防火墙规则

    #iptables –X #删除指定的可选的用户定义的链

    #iptables –Z #看到清除的链

  2. 关闭不必要自启动,可以优化系统

    #ntsysv

    以下列出服务可保持自启动,未列出的服务都可以关闭:

    atd

    crond #atd、crond计划任务

    irqbalance

    microcode_ctl #系统irp端口调用,系统任务

    network #网络设置

    sendmail #邮件

    sshd #远程管理

    syslog #系统日志

  3. 拷贝源码包,解包解压缩

    可以将lamp环境源码包统一存放在一个目录下,如/lamp

    编写一次性解压缩脚本:

    #vim tsr.sh

    #!/bin/bash

    cd /lamp

    /bin/ls *.tar.gz > ls.list

    /bin/ls *.tgz >> ls.list

    For TAR in $(cat ls.list)

    do

    /bin/tar –zxf $TAR 或者这样写$(which tar) xf $TAR

    done

    /bin/rm ls.list

    注意:此脚本不通用,只针对后缀为.tgz和.tar.gz的压缩包,要想脚本通用,可加入条件判断,然后做相应解压操作

  4. 查看确认磁盘空间未满

    #df –h

    若/分区已满,可以移动安装包到其他分区或者删掉其他无用文件

  5. 如何确定报错
    1. 安装过程停止
    2. 停止后,界面中出现error或者warning

    如何确定安装成功

    1. 进入安装目录,确认安装程序出现,就是成功
  1. 编译安装

    实验环境:安装系统为RHEL6.5 x86_64,为最小化安装

    1. 安装libxml2
      1. 简介:

        libxml2 是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOSX等平台上运行。功能还是相当强大的,相信满足一般用户需求没有任何问题。

        libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言C++XSHC#PythonKylix/DelphiRuby,和PHP等。Perl中也可以使用XML::LibXML模块。它最初是为GNOME开发的项目,但现在可以用在各种各样的方面。libXML 代码可移植性非常好,因为它基于标准的ANSIC库, 并采用MIT许可证。

      2. #yum - y install libxml2-devel python-devel
      3. # tar xf libxml2-2.9.1.tar.gz
      4. # cd libxml2-2.9.1
      5. # ./configure --prefix=/usr/local/libxml2
      6. # make
      7. # make install
    2. 安装libmcrypt
      1. 简介

        libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。

      2. # tar xf libmcrypt-2.5.8.tar.gz
      3. # cd libmcrypt-2.5.8
      4. # ./configure --prefix=/usr/local/libmcrypt/
      5. # make
      6. # make install
    3. 安装libltdl,在libmcrypt源码目录中
      1. [root@myredhat libltdl]# cd libltdl/
      2. [root@myredhat libltdl]# ./configure --enable-ltdl-install
      3. [root@myredhat libltdl]# make && make install
    4. 安装mhash
      1. 简介

        mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等

      2. # tar xf mhash-0.9.9.9.tar.gz
      3. # cd mhash-0.9.9.9
      4. # ./configure
      5. # make
      6. # make install
    5. 安装mcrypt
      1. 简介

        mcrypt 是 php 里面重要的加密支持扩展库。mcrypt库支持20多种加密算法和8种加密模式

      2. # tar xf mcrypt-2.6.8.tar.gz
      3. # cd mcrypt-2.6.8
      4. # LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib
      5. # export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib

        ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt/

        #上面为一条命令。也可以单独执行,是可以的

      6. # make
      7. # make install
    6. 安装zlib
      1. 简介

        zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权

      2. # tar xf zlib-1.2.3.tar.gz
      3. # cd zlib-1.2.3
      4. # ./configure
      5. # make
      6. # make install >> /root/zlib.log

        # zlib指定安装目录可能造成libpng安装失败,故不指定,为卸载方便,建议make install执行结果输出到安装日志文件,便于日后卸载

      7. [root@myredhat zlib-1.2.3]# vim Makefile

        #找到CF _AGS=-O3 –DUSE_MMAP,在后面加入 –fPIC 变成 CFLAGS=-O3 –DUSE_MMAP –fPIC

      8. [root@myredhat zlib-1.2.3]# make && make install
    7. 安装libpng
      1. 简介

        libpng 软件包含 libpng 库.这些库被其他程式用于解码png图片

      2. # tar xf libpng-1.2.31.gz

        #注意:不可以用gzip -d libpng-1.2.31.gz,,虽然解压成功,但是解压后不是一个目录,我试验就是这样

      3. # cd libpng-1.2.31
      4. # ./configure --prefix=/usr/local/libpng
      5. # make
      6. # make install
    8. 安装jpeg6
      1. 简介

        用于解码.jpg和.jpeg图片

      2. # unzip jpeg-6b.zip
      3. # mkdir /usr/local/jpeg6
      4. #mkdir /usr/local/jpeg6/bin
      5. #mkdir /usr/local/jpeg6/lib
      6. # mkdir /usr/local/jpeg6/include
      7. # mkdir /usr/local/jpeg6/man/man1 –pv

        #目录必须手工建立,否则后面的操作无法进行

      8. #cd jpeg-6b
      9. #chmod -R 777 *

        #解压后的文件默认没有执行权限,必须给予文件执行权限

      10. # cp /usr/share/libtool/config/config.sub .
      11. # cp /usr/share/libtool/config/config.guess .

        #把libtool里面的两个配置文件拿来覆盖掉jpeg-6b目录下的对应文件,否则安装出错

      # ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static

      #
      --enable-shared与--enable-static参数分别为建立共享库和静态库使用的libtool

      # make

      # make install

    9. 安装freetype
      1. 简介
      2. FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSIC开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。
      3. # tar xf freetype-2.3.5.tar
      4. # cd freetype-2.3.5
      5. # ./configure --prefix=/usr/local/freetype
      6. # make
      7. # make install

10、安装GD库

简介

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。

  1. # tar xf gd-2.0.35.tar
  2. # mkdir /usr/local/gd2 #必须手动创建目录
  3. # cd gd-2.0.35
  4. #vim gd_png.c

    把 #include "png.h" 替换为 #include "/usr/local/libpng/include/png.h"

⑤# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ -with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/

⑥# make

⑦# make install

11、安装apache

①APR(APACHE可移植运行库)主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库

# tar xf apr-1.4.6.tar.gz

# tar xf apr-util-1.4.1.tar.gz

#解压apr和apr-util,复制并取消版本号

# tar xf httpd-2.4.7.tar.gz

# cp -r apr-1.4.6 httpd-2.4.7/srclib/apr

# cp -r apr-util-1.4.1 httpd-2.4.7/srclib/apr-util

# tar xf pcre-8.34.tar.gz

pcre基于perl的兼容的正则表达式的支持

# cd pcre-8.34

# ./configure && make && make install

# yum -y install openssl-devel #安装ssl模块

注意:这里必须重新安装zlib,否则下面安装apache时,make会出错。

#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure
#vim Makefile
找到 CFLAGS=-O3 -DUSE_MMAP
在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC
#make && make install

  1. # cd httpd-2.4.7

    # ./configure --prefix=/usr/local/apache2 sysconfdir=/usr/local/apache2/etc/ --with-included-apr--enable-so --enable-deflate=shared --enable-expires=shared--enable-rewrite=shared

    # make

    # make install

    启动测试

    # /usr/local/apache2/bin/apachectl start

    # netstat -tunlp | grep httpd

设置开机自启动

# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

# curl http://192.168.131.134 #apache正常工作

<html><body><h1>It works!</h1></body></html>

* 若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux或者执行命令chcon -t texrel_shlib_t /usr/local/apache2/modules/mod_deflate.so ,类似此类.so文件不能载入或没有权限的问题,都是SELinux问题,使用命令:"chcon -t texrel_shlib_t 文件名"即可解决,MySQL和Apache也可能有类似问题。

只要关闭了SELINUX不会出现上述问题

12、安装MySQL

①安装ncurses

ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立窗口,改变前景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制。简而言之,他是一个可以使应用程序直接控制终端屏幕显示的函数库。

# yum -y install ncurses-devel

也可以使用源码包安装

cd /lamp/ncurses-5.9

#./configure --with-shared --without-debug --without-ada --enable-overwrite

#make

#make install

* 若不安装ncurses编译MySQL时会报错

*--without-ada参数为设定不编译为ada绑定,因进入chroot环境不能使用ada ;--enable-overwrite参数为定义把头文件安装到/tools/include下而不是/tools/include/ncurses目录

*--with-shared    生成共享库

②安装cmake和bison

mysql在5.5以后,不再使用./configure工具,进行编译安装。而使用cmake工具替代了./configure工具。cmake的具体用法参考文档cmake说明。

bison是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作系统

# yum -y install cmake bison

  1. 安装MYSQL

# groupadd mysql

# useradd -s /sbin/nologin -g mysql mysql

*添加用户组mysql ,将mysql用户默认组设置为mysql用户组

#tar xf mysql-5.5.23.tar.gz

# cd mysql-5.5.23/

#
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

*-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装位置

     -DMYSQL_UNIX_ADDR=/tmp/mysql.sock指定socket(套接字)文件位置

     -DEXTRA_CHARSETS=all            扩展字符支持

     -DDEFAULT_CHARSET=utf8         默认字符集

     -DDEFAULT_COLLATION=utf8_general_ci     默认字符校对

     -DWITH_MYISAM_STORAGE_ENGINE=1     安装myisam存储引擎

     -DWITH_INNOBASE_STORAGE_ENGINE=1     安装innodb存储引擎

     -DWITH_MEMORY_STORAGE_ENGINE=1         安装memory存储引擎

     -DWITH_READLINE=1             支持readline库

-DENABLED_LOCAL_INFILE=1      启用加载本地数据

     -DMYSQL_USER=mysql         指定mysql运行用户

     -DMYSQL_TCP_PORT=3306     指定mysql端口

#make

#make install

如果报错,使用make clean可以清除缓存

#cd /usr/local/mysql

#chown –R root .

#chown –R mysql data

#cp support-files/my-medium.cnf /etc/my.cnf

#/usr/local/mysql/scripts/mysql_install_db --user=mysql

*初始化数据库,出现两个ok则初始化成功

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

*将mysql放到后台运行

开机后自启动mysql

#echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &

" >> /etc/rc.d/rc.local

设定Mysql数据库密码

#/usr/local/mysql/bin/mysqladmin -uroot password 123456

*给mysql用户root加密码123456,密码不能写成"123456",如果有字符可以写成"wdd520"

13、安装php

编译前确保系统安装了,libtool和libtool-ltdl软件包,没有则安装:

#yum -y install "libtool*"

#yum -y install "libtool-ltdl*"

  1. # vim /usr/local/gd2/include/gd_io.h

void (*data); #加入此句

  1. # tar xf php-5.4.25.tar.gz
  2. # vim php-5.4.25/ext/gd/libgd/gd_compat.c

  3. # cd php-5.4.25/
  4. #./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets--with-pdo-mysql=/usr/local/mysql --without-pear

**注意**:若前面配置zlib时没有指定安装目录,PHP配置时不要添加--with-zlib-dir=/usr/local/zlib/参数

选项:

     --with-config-file-path=/usr/local/php/etc/ 指定配置文件目录

     --with-apxs2=/usr/local/apache2/bin/apxs    指定apache动态模块位置

     --with-mysql=/usr/local/mysql/    指定mysql位置

     --with-libxml-dir=/usr/local/libxml2/    指定libxml位置

     --with-jpeg-dir=/usr/local/jpeg6/        指定jpeg位置

     --with-png-dir=/usr/local/libpng/        指定libpng位置

     --with-freetype-dir=/usr/local/freetype/    指定freetype位置

     --with-gd=/usr/local/gd2/        指定gd位置

     --with-mcrypt=/usr/local/libmcrypt/指定libmcrypt位置

     --with-mysqli=/usr/local/mysql/bin/mysql_config 指定mysqli位置

     --enable-soap            支持soap服务

     --enable-mbstring=all    支持多字节,字符串

     --enable-sockets     支持套接字

     --with-pdo-mysql=/usr/local/mysql    启用mysql的pdo模块支持

     --without-pear

#不安装pear(安装pear需要连接互联网。    PEAR是PHP扩展与应用库)

#如报错找不到libltdl.so.3的文件

可以执行 ln –s /usr/local/lib/libltd.so.3 /lib/

ln -s /usr/local/lib/libltdl.so.3 /usr/lib

 

  1. #make && make install
  2. #mkdir /usr/local/php/etc #必须手动创建这个目录
  3. # cp php.ini-production /usr/local/php/etc/php.ini
  4. # vim /usr/local/apache2/etc/httpd.conf

    *注意大小写

    * .phtml为将.phps作为PHP源文件进行语法高亮显示

    # /usr/local/apache2/bin/apachectl stop

    # /usr/local/apache2/bin/apachectl start

    * Apache无法启动,提示cannot restore segment prot after reloc: Permission denied错误,为SELinux问题,可关闭SELinux或者执行命令chcon -t texrel_shlib_t,但是关闭SELINUX就不会出现上述问题

⑩测试php是否安装成功

#vim /usr/local/apache2/htdocs/test.php

<?php

Phpinfo();

?>

测试php是否可以和MySQL通信

#vim /usr/local/apache2/htdocs/index.php

<?php

$link=mysql_connect('localhost','root','123456');

if ($link) echo "connect success"

mysql_close();

?>

14、安装phpMyAdmin

#tar xf phpMyAdmin-4.1.4-all-languages.tar.gz

# cp -r phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin

# cd /usr/local/apache2/htdocs/phpmyadmin/

# cp config.sample.inc.php config.inc.php

# vim config.inc.php

* 设置auth_type为http ,即设置为HTTP身份认证模式

15、安装Discuz

  1. # unzip Discuz_X3.1_SC_UTF8.zip
  2. # cp -r upload/ /usr/local/apache2/htdocs/discuz
  3. # ps -ef | grep httpd | grep -v grep

    *查看apache的进程名为daemon

  4. # cd /usr/local/apache2/htdocs/discuz/
  5. # chown -R daemon config/ data/ uc_client/data/cache/ uc_server/data/ template/
  6. # /usr/local/mysql/bin/mysql -uroot –pwdd123456

    mysql> create database discuz;

    mysql> grant all on discuz.* to wdd@localhost identified by "123456";

  7. 浏览器输入http://192.168.131.134/discuz/install/index.php,进入安装界面,点击"我同意",进入配置界面,确保所有状态为,点击"下一步",选择"全新安装 Discuz! X (含 UCenter Server)"后点击"下一步",进入安装数据库界面,填写好相关信息,如下所示:

    最后点击"下一步"安装成功,点击"您的论坛已完成安装,点此访问"进入网站主页面即可。

LAMP平台搭建详解的更多相关文章

  1. Python环境搭建详解(Window平台)

    前言 Python,是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件,Python语法简洁清晰,特色是强制用空白符作为语句缩进,具有丰富和强大的库,它常被称为胶水语言. Python是一种解 ...

  2. LAMP平台搭建菜鸟入门级实验

    LAMP平台搭建(菜鸟入门级) mysql 安装: (1)二进制安装  二进制安装 ,执行解压配置即可.无须执行三布安装. (2)源码编译安装 安装准备工作: (1)查看系统配置:#uname -a/ ...

  3. VirtualBox开发环境的搭建详解(转)

    VirtualBox开发环境的搭建详解   有关VirtualBox的介绍请参考:VirtualBox_百度百科 由于VirtualBox官网提供的搭建方法不够详细,而且本人在它指导下,从下载所需的开 ...

  4. Windows GTK+ 环境搭建(详解)

    来源:http://blog.sina.com.cn/s/blog_a6fb6cc901017ygy.html Windows GTK+ 环境搭建 最近要做界面的一些东西,但是对微软提供的类库MFC不 ...

  5. Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

    Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后 ...

  6. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  7. MySQL集群搭建详解

    概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达 ...

  8. 高可用,多路冗余GFS2集群文件系统搭建详解

    高可用,多路冗余GFS2集群文件系统搭建详解 2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群 ...

  9. Linux设备驱动模型之platform(平台)总线详解

    /********************************************************/ 内核版本:2.6.35.7 运行平台:三星s5pv210 /*********** ...

随机推荐

  1. 第二百五十三、四、五天 how can I 坚持

    出去玩了几天,好累啊. 周五,坐了半天车.到了西柏坡,下午撕名牌,好疯狂啊,最终还是以有人受伤为代价结束了战斗.晚上吃蛋糕.水饺,还有面条,就是我的奖品没拿到.哎.. 周六,上午滑雪,两年没滑了,都忘 ...

  2. HDU 2425 DNA repair (AC自动机+DP)

    DNA repair Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. log4j中的MDC和NDC

    NDC和MDC NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信 ...

  4. AVCaptureDevice的几个属性

    AVCaptureDevice.h,主要用来获取iphone一些关于相机设备的属性. AVCaptureDevice.h,必须要引入AVFoundation.framework包. 1. 前置和后置摄 ...

  5. Qt + CURL + mimetic 发送邮件(带附件)

    使用了大名鼎鼎的CURL 开源库,以及mimetic开源库. CURL支持N多协议.功能超强,但是不能直接发邮件附件,需要自己拼mime.太麻烦,于是乎~~ mimetic主要用于构造邮件mimeti ...

  6. 简谈HTML5与APP技术应用

    HTML5到底能给企业带来些什么? HTML5是近年来互联网行业的热门词汇,火的很.微软IE产品总经理发文: 未来的网络属于HTML5.乔布斯生前也在公开信<Flash之我见>中预言:像H ...

  7. MVC神韵---你想在哪解脱!(十二)

    追加一条电影信息 运行应用程序,在浏览器中输入“http://localhost:xx/Movies/Create”,在表单中输入一条电影信息,然后点击追加按钮,如图所示. 点击追加按钮进行提交,表单 ...

  8. MFC实现数独(1)

    雨天纷纷扰扰,数月里每日有雨,这个夏天不热,写这个数独的动机很简单:实践是最好的成长方式,想要获得自信,必有这么一遭,我躲不过.至于决定记录成博客,则是因为很久没有写文章,经常感觉脑海里很空白,屡次开 ...

  9. Date String转换

    这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04-14&quo ...

  10. CSMA/CD协议——学习笔记

    CSMA/CD协议要点: 1)适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送. 2)若适配器检测到信道空闲(即在96比特时间内没有检测到信道上有信号), ...