CentOS 下源码安装LAMP环境

1、简介

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

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 提供的一些特性的动态内容。html

2、系统环境node

系统平台:CentOS release 5.8 (Final)mysql

Apache版本:httpd-2.2.9.tar.gzlinux

Mysql 版本:mysql-5.0.41.tar.gznginx

Php版本:php-5.2.6.tar.gzc++

3、安装前准备web

一、库文件准备
sql

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

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

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

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

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

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

目前发行的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

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

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

六、解包

编写一个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进行解包

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

4、安装LAMP

一、安装libxml2

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

二、安装libmcrypt

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

三、安装zlib

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

四、安装libpng

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

五、安装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

六、安装freetype

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

七、安装autoconf

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

八、安装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

九、安装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

十、配置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

十一、安装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

十二、配置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

1三、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

1四、安装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

1五、配置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

1六、安装Zend加速器

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

1七、安装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

1八、配置phpMyAdmin

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

5、测试

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

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

<?php
phpinfo();
?>

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

二、Zend加速器信息

三、访问phpMyAdmin

至此LAMP环境配置完毕。

 

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

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

 


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

相关文章
相关标签/搜索