本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址:

http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.html

CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

一、简介

什么是LAMP
    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件。
    LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael
Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组件经常在一起使用。这些组件的兼容性也在不断完善,为了改善不同组件之间的协作,已经创建了某些扩展功能,在一起的应用情形变得非常普便,因而成为目前最流行的web应用基础架构。

LAMP的组件
   平台由四个组件组成,呈分层结构,每一层都提供了整个架构的一个关键部分:
   LinuxLinux
处在最底层,提供操作系统。它的灵活性和可定制化的特点意味着它能够产生一种高度定制的平台,让其它组件在上面运行。其它组件运行于Linux
之上,但是并不一定局限于 Linux,也可以在 Microsoft Windows, Mac OS X 或
UNIX上运行。
   ApacheApache位于第二层,它是一个Web 服务平台,提供可让用户获得 Web 页面的机制。Apache 是一款功能强大、稳定、可支撑关键任务的Web服务器,Internet 上超过 50% 的网站都使用它作为 Web 服务器。
   MySQLMySQL 是最流行的开源关系数据库管理系统,是LAMP的数据存储端。在 Web 应用程序中,所有帐户信息、产品信息、客户信息、业务数据和其他类型的信息都存储于数据库中,通过 SQL 语言可以很容易地查询这些信息。
   PHP/PerlPerl是一种灵活的语言,特别是在处理文本要素的时候,这种灵活性使Perl很容易处理通过
CGI接口提供的数据,灵活地运用文本文件和简单数据库支持动态要素。PHP 是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到
HTML中,尤其适合 web 开发。可以使用 PHP 编写能访问 MySQL 数据库中的数据和 Linux 提供的一些特性的动态内容。

二、系统环境

系统平台:CentOS release 5.8 (Final)

Apache版本:httpd-2.2.9.tar.gz

Mysql 版本:mysql-5.0.41.tar.gz

Php版本:php-5.2.6.tar.gz

三、安装前准备

1、库文件准备

在安装PHP之前,应先安装PHP5需要的最新版本库文件,例如libxml2、libmcrypt以及GD2库等文件。安装GD2库是为了让PHP5支 持GIF、PNG和JPEG图片格式,所以在安装GD2库之前还要先安装最新的zlib、libpng、freetype和jpegsrc等库文件。而且中间还会穿插安装一些软件,读者可以按照本节提供的顺序安装。

autoconf-2.61.tar.gz

freetype-2.3.5.tar.gz

gd-2.0.35.tar.gz

jpegsrc.v6b.tar.gz

libmcrypt-2.5.8.tar.gz

libpng-1.2.31.tar.gz

libxml2-2.6.30.tar.gz

zlib-1.2.3.tar.gz

ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz

phpMyAdmin-3.0.0-rc1-all-languages.tar.gz

2、安装gcc、gcc-c++编译器

用gcc -v 命令检查安装时使用的编译工作是否存在

如系统未安装,在系统联网的情况下使用yum install gcc和yum install gcc-c++安装

3、卸载默认的低版本环境

目前发行的Linux操作系统版本中,如果选择默认全部安装,就已经安装了LAMP环境,但是版本相对都比较低。我们可以再安装一个LAMP环境和原来的并存,但是这样做没有必要,因为同时只能开启一个LAMP环境。所要我们要在安装之前,先应检查一下系统中是否已经安装了低版本的环境,如果已经安装过了,停止原来的服务运行,或者把原来的环境卸载掉。

a. 卸载Apache

# rpm -qa | grep httpd

说明:检查是否安装了httpd软件包

# rpm -e httpd-2.2.3-63.el5.centos --nodeps

说明:卸载软件包, --nodeps 如果有连带关系,也强制卸载

# cd /etc/httpd/

# rm -rf *

说明:到原来的apache安装目录下,将其所有的安装目录和文件都删掉

b. 卸载Mysql

# rpm -qa | grep mysql

# rpm -e mysql-5.0.77-4.el5_4.2 --nodeps

说明:卸载mysql

c. 卸载Php

# rpm -qa | grep php

# rpm -e php-common-5.1.6-27.el5 --nodeps

# rpm -e php-ldap-5.1.6-27.el5 --nodeps

# rpm -e php-cli-5.1.6-27.el5 --nodeps

# rpm -e php-5.1.6-27.el5 --nodeps

说明:卸载PHP

4、关闭selinux,清空防火墙规则

5、使用ssh shell将windows下的13个源码包上传到/usr/local/src

6、解包

编写一个shell脚本tar.sh进行解包。

#!/bin/sh
cd /usr/local/src
ls *.tar.gz > ls.list
for TAR in `cat ls.list`
do
tar -zxvf $TAR
done

执行脚本tar.sh进行解包

7、将源码包*.tar.gz全都删除

四、安装LAMP

1、安装libxml2

# cd /usr/local/src/libxml2-2.6.30
# ./configure --prefix=/usr/local/libxml2
# make && make install

2、安装libmcrypt

# cd /usr/local/src/libmcrypt-2.5.8
# ./configure --prefix=/usr/local/libmcrypt
# make && make install

3、安装zlib

# cd /usr/local/src/zlib-1.2.3
# ./configure
# make && make install

4、安装libpng

# cd /usr/local/src/libpng-1.2.31
# ./configure --prefix=/usr/local/libpng
# make && make install

5、安装jpeg6

这个软件包安装有些特殊,其它软件包安装时如果目录不存在,会自动创建,但这个软件包安装时需要手动创建。

# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man/man1

# cd /usr/local/src/jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make && make install

6、安装freetype

# cd /usr/local/src/freetype-2.3.5
# ./configure --prefix=/usr/local/freetype
# make
# make install

7、安装autoconf

# cd /usr/local/src/autoconf-2.61
# ./configure
# make && make install

8、安装GD库

# cd /usr/local/src/gd-2.0.35
# ./configure \
--prefix=/usr/local/gd2/ \
--enable-m4_pattern_allow \
--with-zlib=/usr/local/zlib/ \
--with-jpeg=/usr/local/jpeg6/ \
--with-png=/usr/local/libpng/ \
--with-freetype=/usr/local/freetype/

# make

出现错误:

make[2]: *** [gd_png.lo] Error 1
make[2]: Leaving directory `/usr/local/src/gd-2.0.35'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/gd-2.0.35'
make: *** [all] Error 2

分析:这个问题是因为gd库中的gd_png.c这个源文件中包含png.h时,png.h没有找到导致的。

解决:

在编译文件里

# vi gd_png.c

将include “png.h” 改成 include “/usr/local/libpng/include/png.h”

其中/usr/local/libpng/为libpng安装路径。

# make install

9、安装Apache

# cd /usr/local/src/httpd-2.2.9
# ./configure \
--prefix=/usr/local/apache2 \
--sysconfdir=/etc/httpd \
--with-z=/usr/local/zlib \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--enable-static-support
# make && make install

10、配置Apache

启动Apache
# /usr/local/apache2/bin/apachectl start

关闭Apache
# /usr/local/apache2/bin/apachectl stop

查看80端口是否开启
# netstat -tnl|grep 80

访问Apache服务器

添加自启动
# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

11、安装Mysql

添加一个mysql标准组
# groupadd mysql

添加mysql用户并加到mysql组中
# useradd -g mysql mysql

# cd /usr/local/src/mysql-5.0.41
# ./configure \
--prefix=/usr/local/mysql/ \
--with-extra-charsets=all

出现错误:

checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for tgetent in -ltinfo... no
checking for termcap functions library... configure: error: No curses/termcap library found

分析:缺少ncurses安装包

解决:

# yum install ncurses-devel

# make && make install

12、配置Mysql

创建MySQL数据库服务器的配置文件
# cp support-files/my-medium.cnf /etc/my.cnf

用mysql用户创建授权表,创建成功后,会在/usr/local/mysql目录下生成一个var目录
# /usr/local/mysql/bin/mysql_install_db --user=mysql

将文件的所有属性改为root用户
# chown -R root /usr/local/mysql

将数据目录的所有属性改为mysql用户
# chown -R mysql /usr/local/mysql/var

将组属性改为mysql组
# chgrp -R mysql /usr/local/mysql

启动数据库
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

查看3306端口是否开启
# netstat -tnl|grep 3306

简单的测试
# /usr/local/mysql/bin/mysqladmin version

查看所有mysql参数
# /usr/local/mysql/bin/mysqladmin variables

设置Mysql开机自启动
# cp /usr/local/src/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chown root.root /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
# chkconfig --levels 245 mysqld off

13、Mysql安全性设置

没有密码可以直接登录本机服务器
# /usr/local/mysql/bin/mysql -u root

查看mysql用户权限信息
mysql> select * from mysql.user;

删除非localhost的主机
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';

刷新授权表
mysql> FLUSH PRIVILEGES;

为root用户添加密码
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('abc123');

再次进入Mysql客户端
# /usr/local/mysql/bin/mysql -u root -h localhost -p

关闭MySQL数据库
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown

14、安装PHP

# cd /usr/local/src/php-5.2.6
# ./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-png-dir=/usr/local/libpng/ \
--with-jpeg-dir=/usr/local/jpeg6/ \
--with-freetype-dir=/usr/local/freetype/ \
--with-gd=/usr/local/gd2/ \
--with-zlib-dir=/usr/local/zlib/ \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-soap  \
--enable-mbstring=all \
--enable-sockets
# make && make install

15、配置PHP

创建配置文件
# cp php.ini-dist /usr/local/php/etc/php.ini

使用vi编辑apache配置文件
# vi /etc/httpd/httpd.conf

添加这一条代码
Addtype application/x-httpd-php .php .phtml

重启Apache
# /usr/local/apache2/bin/apachectl restart

以上安装步骤可以写成一个shell script,详细参考http://files.cnblogs.com/mchina/lamp.rar

16、安装Zend加速器

# cd /usr/local/src/ZendOptimizer-3.2.6-linux-glibc21-i386/
# ./install.sh

17、安装phpMyAdmin

拷贝目录到指定位置并改名为phpmyadmin
# cp -a  phpMyAdmin-3.0.0-rc1-all-languages /usr/local/apache2/htdocs/phpmyadmin
# cd /usr/local/apache2/htdocs/phpmyadmin/
# cp config.sample.inc.php config.inc.php

18、配置phpMyAdmin

# vi /usr/local/apache2/htdocs/phpmyadmin/config.inc.php
将auth_type 改为http
$cfg['Servers'][$i]['auth_type'] = 'http';

五、测试

1、编写info.php文件,查看php配置详细

# vi /usr/local/apache2/htdocs/info.php

<?php
phpinfo();
?>

通过浏览器访问http://10.0.0.154/info.php,获得php的详细配置信息

2、Zend加速器信息

3、访问phpMyAdmin

至此LAMP环境配置完毕。

关于LNMP(linux+nginx+mysql+php)服务器环境配置,请参考:

http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.html


以下是园友David_Tang的联系方式:

David Camp

  • 技术交流,请加QQ群:

    系统运维技术分享Ⅲ:416491168

  • 业务合作,请联系作者QQ:562866602
  • 我的微信号:mchina_tang
  • 给我写信:mchina_tang@qq.com
  • 我的地址:江苏·苏州

我们永远相信,分享是一种美德 | We Believe, Great People Share Knowledge...

公告
Copyright ©2018 David_Tang

CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境【转载】的更多相关文章

  1. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  2. CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    ---恢复内容开始--- 一.系统环境 系统平台:CentOS 6.5 (Final) Apache版本:httpd-2.2.31.tar.gz(最新版本2015-07-16) Mysql 版本:my ...

  3. CentOS 6.3 源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而>言都是在它所 ...

  4. centos下利用yum安装LAMP(Linux+Apache+MySQL+PHP)及配置

    先说下我的实践配置,centos6.5(64位),联网 安装前准备:关闭防火墙 service iptables stop 安装MySQL 打开终端,root用户 1 yum install mysq ...

  5. Lamp(linux+apache+mysql+php)环境搭建

    Lamp(linux+apache+mysql+php)环境搭建 .安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sud ...

  6. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  7. CentOS 下源码安装LAMP环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  8. CentOS 6.5下源码安装MySQL 5.6

    变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感.ON说明对文件名的大小写不敏感,OFF表示敏感. 在my.cnf中[mysqld]更改lower_c ...

  9. CentOS 6.5 下源码搭建LAMP环境

    参考网站: http://wenku.baidu.com/link?url=Cvkqss2E9mnxXOZigMWPaCfqwsBxnm0sZ4aKE2oLAgQ888XxeC0DWOChxVqiHz ...

随机推荐

  1. python爬西刺代理

    爬IP代码 import requests import re import dauk from bs4 import BeautifulSoup import time def daili(): p ...

  2. Canopy聚类算法

    Canopy聚类算法(经典,看图就明白) 聚类算法. 这个算法获得的并不是最终结果,它是为其他算法服务的,比如k-means算法.它能有效地降低k-means算法中计算点之间距离的复杂度. 图中有一个 ...

  3. Halcon学习之两幅图像处理

    sub_image ( ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : ) 对两幅图像做减法   g' := (g1 - g2) * Mu ...

  4. libevent源码深度剖析一

    libevent源码深度剖析一 ——序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libe ...

  5. IFC文件解析

    什么是IFC? EXPRESS语言与IFC体系 一.IFC 1.IFC简介 IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的 ...

  6. Hibernate和Mybatis区别 详细 有用

    1.开发上手难度 hibernate的真正掌握(封装的功能和特性非常多)要比Mybatis来得难. 在真正产品级应用上要用Hibernate,不仅对开发人员的要求高,hibernate往往还不适合(多 ...

  7. OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo

    1. 配置编译器环境 [compiler] sudo apt-get install build-essential 2. 安装OpenCV的依赖包 [required] -dev pkg-confi ...

  8. 【转载】Python BeautifulSoup匹配字符串

    作者:鸡仔说链接:https://www.jianshu.com/p/ceb99aed4b2e來源:简书 BeautifulSoup中可以通过name和attrs去定位名称和属性,以找到特定的html ...

  9. 性能优化之_android多线程

    本文大纲为: 如何创建线程 线程间如何通讯 线程间如何安全的共享信息 一.线程的创建 Thread在run方法中执行具体事务,或者传入一个runnable对象,但是不能调用view控件的更新方法,但是 ...

  10. xml解析中的DOM和SAX的区别

    面试题:DMO和SAX的区别? DOM解析的优点:增删查改操作方便,缺点:占用内存较大,不适合解析大的XML文件: SAX解析的优点:占用内存小,解析快:缺点:不适合增删查改: