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

一、简介
什么是LAMP
LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件。
LAMP这个词的由来最早始于德国杂志“c’t Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组件经常在一起使用。这些组件的兼容性也在不断完善,为了改善不同组件之间的协作,已经创建了某些扩展功能,在一起的应用情形变得非常普便,因而成为目前最流行的web应用基础架构。
LAMP的组件
平台由四个组件组成,呈分层结构,每一层都提供了整个架构的一个关键部分:
Linux:Linux 处在最底层,提供操作系统。它的灵活性和可定制化的特点意味着它能够产生一种高度定制的平台,让其它组件在上面运行。其它组件运行于Linux 之上,但是并不一定局限于 Linux,也可以在 Microsoft Windows, Mac OS X 或 UNIX上运行。
Apache:Apache位于第二层,它是一个Web 服务平台,提供可让用户获得 Web 页面的机制。Apache 是一款功能强大、稳定、可支撑关键任务的Web服务器,Internet 上超过 50% 的网站都使用它作为 Web 服务器。
MySQL:MySQL 是最流行的开源关系数据库管理系统,是LAMP的数据存储端。在 Web 应用程序中,所有帐户信息、产品信息、客户信息、业务数据和其他类型的信息都存储于数据库中,通过 SQL 语言可以很容易地查询这些信息。
PHP/Perl:Perl是一种灵活的语言,特别是在处理文本要素的时候,这种灵活性使Perl很容易处理通过 CGI接口提供的数据,灵活地运用文本文件和简单数据库支持动态要素。PHP 是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。可以使用 PHP 编写能访问 MySQL 数据库中的数据和 Linux 提供的一些特性的动态内容。
二、系统环境
系统平台:centos6.5 64位操作系统(Final)
Apache版本:httpd-2.4.4.tar.gz
Mysql 版本:mysql-5.1.51.tar.gz
Php版本:php-5.5.16.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,清空防火墙规则
关闭防火墙:service iptables stop
关闭selinux:修改/etc/selinuc/config文件,将SELINUX=enforcing 改为 SELINUX=disabled
5、使用ssh shell将windows下的13个源码包上传到/usr/local/src
6、解包
编写一个shell脚本tar.sh进行解包。
按 Ctrl+C 复制代码

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

按 Ctrl+C 复制代码
执行脚本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

如果make时,出现make: ./libtool: Command not found
解决:(1)检查libtool有没有安装,如果没有,安装
(2)复制/usr/share/libtool/config/目录下的config.sub和config.guess,覆盖jpeg-6b目录下的这两个文件,使用命令:

#cp /usr/share/libtool/config/config.sub .
#cp /usr/share/libtool/config/config.guess .
#make clean

继续./configure

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 && 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

如果出现错误:configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
这里写图片描述
需要下载apr和apr-utils并解压到 ./srclib/ 目录下, 再进行编译。
如果出现错误:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ 缺少开发库
这里写图片描述
解决方法:下载pcre-8.34.tar.gz,并源码安装

# make && make install

10、配置Apache

    [root@sugar ~]# vi  /etc/httpd/httpd.conf  

将#ServerName www.example.com:80 中的“#”删掉,并将 www.example.com 改为本机的linux的ip地址

启动Apache

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

关闭Apache

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

查看80端口是否开启

# netstat -tnl|grep 80

访问Apache服务器 http://IP地址

这里写图片描述

添加自启动

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

11、源码安装Mysql
备注:建议源码安装,可以配置安装路径
11.1源码安装
安装per1:yum install perl
安装mysql前:
(1)添加一个mysql标准组

# groupadd mysql

添加mysql用户并加到mysql组中

# useradd -g mysql mysql

(2)mkdir -p /usr/local/mysql –MySQL 安装目录
mkdir -p /usr/local/mysql/data –数据目录

# 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

11.2配置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 

(如果启动不了,重新运行# /usr/local/mysql/bin/mysql_install_db –user=mysql)

查看3306端口是否开启

# netstat -tnl|grep 3306

简单的测试

# /usr/local/mysql/bin/mysqladmin version

查看所有mysql参数

# /usr/local/mysql/bin/mysqladmin variables

设置Mysql开机自启动

# cp /usr/lanmp/mysql-5.1.51/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

11.3 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('root');

这里写图片描述

再次进入Mysql客户端

# /usr/local/mysql/bin/mysql -u root -h localhost -p

这里写图片描述

关闭MySQL数据库

# /usr/local/mysql/bin/mysqladmin -u root -p shutdown

这里写图片描述

12、yum安装mysql
12.1 yum安装

[root@localhost ~]# yum install -y mysql-server mysql mysql-devel

(注意:安装mysql时,需要把mysql-server mysql-devel mysql全部安装上,才是完整的安装)
在等待了一番时间后,yum会帮我们选择好安装mysql数据库所需要的软件以及其它附属的一些软件
这里写图片描述
我们发现,通过yum方式安装mysql数据库省去了很多没必要的麻烦,当出现下面的结果时,就代表mysql数据库安装成功了
这里写图片描述
此时我们可以通过如下命令,查看刚安装好的mysql-server的版本

[root@localhost ~]# rpm -qi mysql-server

我们安装的mysql-server并不是最新版本,如果你想尝试最新版本,那就去mysql官网下载rpm包安装就行了,至此我们的mysql数据库已经安装完成了。
12.2 mysql数据库的初始化及相关配置
我们在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。
注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,如:

这里写图片描述
这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了,如:
这里写图片描述
我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过 chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:
这里写图片描述
我们发现mysqld服务并没有开机自动启动,我们当然可以通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了
这里写图片描述
我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)
这里写图片描述
此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了
这里写图片描述
12.3 mysql数据库的主要配置文件
1./etc/my.cnf 这是mysql的主配置文件
我们可以查看一下这个文件的一些信息
这里写图片描述
2./var/lib/mysql mysql数据库的数据库文件存放位置
我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下
这里写图片描述
我们可以自己创建一个数据库,来验证一下该数据库文件的存放位置
这里写图片描述
3./var/log mysql数据库的日志输出存放位置
我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下
这里写图片描述
其中mysqld.log 这个文件就是我们存放我们跟mysql数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息

因为我们的mysql数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道mysql数据库绑定的端口号是 3306 ,所以我们可以通过 netstat –anp | grep mysql 命令来查看一下,Linux系统是否在监听 3306 这个端口号:
这里写图片描述
结果如上所示,Linux系统监听的3306端口号就是我们的mysql数据库!!!!
14、安装PHP

# cd /usr/local/src/php-5.2.6
# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock=/tmp/mysqld.sock \
--with-pdo-mysql=/usr/local/mysql \
--with-gd --with-png-dir=/usr/local/libpng \
--with-jpeg-dir=/usr/local/jpeg \
--with-freetype-dir=/usr/local/freetype \
--with-xpm-dir=/usr/ \
--with-vpx-dir=/usr/local/libvpx/ \
--with-zlib-dir=/usr/local/zlib \
--with-t1lib=/usr/local/t1lib \
--with-iconv \
--enable-libxml \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-opcache \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-mcrypt \
--with-curl \
--enable-ctype 
# make && make install

如果出现问题,按照以下方式解决:
1. configure: error: jpeglib.h not found.
解决办法:yum –y install libjpeg-devel
2. configure: error: Don’t know how to define struct flock on thissystem, set –enable-opcache=no
解决办法:
在/etc/ld.so.conf.d中添加local.conf文件:echo “/usr/local/lib”>> /etc/ld.so.conf.d/local.conf
更新动态库:ldconfig -v
3./usr/local/src/LAMP/php-5.5.12/ext/gd/gd.c:57:22:error: X11/xpm.h: No such file or directory
解决办法:yum -yinstall libXpm-devel (已验证)
4.undefined referenceto XpmLibraryVersion'
解决办法:
./configure中增加–with-xpm-dir=/usr/lib64` (已验证)

15、配置PHP
创建配置文件

# cp php.ini-production /usr/local/php/etc/php.ini

使用vi编辑apache配置文件

# vi /etc/httpd/httpd.conf 和 /usr/local/apache2/conf/httpd.conf 

添加这一条代码
Addtype application/x-httpd-php .php .phtml
这里写图片描述
重启Apache

# /usr/local/apache2/bin/apachectl restart

注意:
验证php是否配置成功:
编写info.php文件,查看php配置详细

# vi /usr/local/apache2/htdocs/info.php
<?php
phpinfo();
?>

通过浏览器访问http://10.0.0.154/info.php,获得php的详细配置信息
这里写图片描述

16、安装Zend加速器

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

如果出现问题:./install.sh: ./php: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
安装yum install glibc.i686

这里写图片描述

这里写图片描述

这里写图片描述

测试Zend是否安装成功:
通过浏览器访问http://10.0.0.154/info.php,看是否有Zend加速器信息
这里写图片描述

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’;

测试phpmyadmin是否配置成功:
浏览器访问:http://192.168.233.130/phpmyadmin
这里写图片描述
如果出现上图,说明phpmyadmin配置成功!!!

19.安装phpwind
上传phpwind_UTF8_8.7.zip

unzip phpwind_UTF8_8.7.zip
[root@localhost htdocs]# mv /usr/lanmp/phpwind_UTF8_8.7 /usr/local/apache2/htdocs/phpwind87
[root@localhost htdocs]# Chmod -R 777 phpwind87

这里写图片描述

然后访问页面:http://192.168.233.130/phpwind87
这里写图片描述
证明phpwind配置成功。
点击upload然后下一步,安装,最终
这里写图片描述
至此,论坛已经全部安装成功!!!

**关于LNMP(linux+nginx+mysql+php)服务器环境配置,请参考:
http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.html**

猜你喜欢

转载自blog.csdn.net/u011608531/article/details/49257425
今日推荐