文档章节

原 CentOS 搭建LAMP环境(一)

开卷书生
 开卷书生
发布于 2014/09/10 17:09
字数 4023
阅读 98
收藏 0

开始之前请准备好LAMP的各种源码包,没有的请点击我分享的百度网盘链接下载.

链接:http://pan.baidu.com/s/1eQEIMxO

如何确定报错:

1)安装过程停止

2)停止后,一页界面中出现error或者warning

如何确定安装成功:

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

对于安装目录:

我的习惯是所有的东西全安装在/usr/local目录下,这个安装目录是根据个人习惯可以修改的,但是修改的前提是你的安装目录不会乱,不然是很难安装成功的.小白的话还是跟着我的文档来,大神就可以忽略了.

一.准备工作

1.安装编译工具gcc,gcc-c++

若机器可以联网,最好使用yum安装;

yum install gcc gcc-c++

若机器不能联网,使用以下方法安装:

使用CentOS的安装光盘作为yum源

(1).挂载光盘:

mount /dev/cdrom /mnt/cdrom

这个命令的意思是将光盘挂载在/mnt/cdrom这个目录下,有一点需要注意的是挂载的目录必须是个空目录,不然数据会丢失的.挂载的目录可以是任何目录,最好是自己新建一个目录

(2).编辑yum配置文件:

vi /etc/yum.repos.d/CentOS-Media.repo

编辑yum源

以下是源文件的内容(以CentOS5为例):

[c5-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/cdrom /*修改为光盘挂载点*/

 file:///media/cdrom/

 file:///media/cdrecorder/

gpgcheck=1

enabled=1  /*改为1意为启用*/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

gpgkey这个参数,你用的是CentOS几就是CentOS几

(3).备份CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /backup

(4).依次安装gcc,gcc-c++

yum -y install gcc gcc-c++

2.若系统已经安装过RPM包的Apache,MySQL服务,请看这里,反之请跳过这一步.

要想搭建该环境,一定要关闭启动的服务:httpd,mysqld

service httpd stop

service mysqld stop

确定RPM包安装的httpd和mysqld不能开机自启动,需要用到以下命令:

chkconfig --level 2345 httpd off

chkconfig --level 2345 mysqld off

3.(本地虚拟机)若系统SELinux和防火墙开启了,请关闭,反之请跳过这一步,这是方便后面的安装.

非CentOS7:

(1).关闭SELinux

vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled;修改后需要重启,配置文件才会生效

(2).关闭防火墙,在这里解释一下为什么要关闭防火墙,因为防火墙没有关闭的话,默认80端口是禁止访问的(CentOS7不支持该命令).

iptables –F

iptables -Z

iptables -X

以上命令可以关闭所有的防火墙设置,是不是很简单粗暴.哈哈

CentOS7:

(1).CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

(a).关闭firewall并且取消firewall开机启动

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

(b).安装iptables

yum install iptables-services

配置防火墙配置文件

vi /etc/sysconfig/iptables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

下加上

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT

重启防火墙

systemctl restart iptables.service

设置防火墙开机启动

systemctl enable iptables.service

(vps)开启80端口和3306端口,为了vps的安全,不推荐关闭防火墙和SELinux.

一般vps是开启了80和3306端口的,如果未开启且系统不是CentOS7的,请从CentOS7的解决办法的防火墙配置文件那开始操作。如果是CentOS7,请直接遵循CentOS7的操作办法。

4、关闭不必要自启动服务(这一步相对于小内存的vps是很有必要的,因为软件在编译的过程中会占用很大的内存,如果有些不必要的软件占用了内存,就很容易编译不过去.)

ntsysv

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

atd

crond        # atd、crond计划任务

irqbalance

microcode_ctl   # 系统irq端口调用,系统服务

network    #网络设置

sendmail   #邮件

sshd      #远程管理

syslog    #系统日志

chkconfig --level 2345 (服务名) off

5.拷贝源码包并解压

建议将LAMP的环境安装源码包统一存放在一个目录下,这样方便操作,比如我是放在/lamp下.

解压,这里介绍2种方法:

方法一:

cd /lamp

ls *.tar.gz | xargs –n1 tar xzvf

好处:简单粗暴;

坏处:有时候会有遗漏,遗漏其他后缀名的压缩包

方法二(shell脚本):

vi tar.sh

编辑创建一个脚本名称为:tar.sh的可执行shell脚本.

写入内容:

cd /lamp

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

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

for TAR in `cat ls.list`

do

/bin/tar -zxf $TAR

done

/bin/rm ls.list

写完后保存即可.运行之前记得赋予权限.

好处:可以解压lamp下所有的指定后缀名的文件,不用担心会遗漏

坏处:稍稍复杂一点.

以上2个方法同样适用于批量解压其他的压缩文件,只要更改一下*后面的后缀名就好.

 6.检查磁盘空间是否足够

df -h

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

二.编译安装

注意:每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件,以下所有的步骤最好按部就班的进行.不要跳过,不要错开.如果编译过程中出现报错的情况,请先make clean 再进行编译.

1.安装libxml2

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

先用yum安装libxml2-devel和python-devel

已联网的使用以下命令安装:

yum install libxml2-devel python-devel

未联网的使用光盘作为源进行安装:(前提是你已经挂载了光盘)

yum -y install libxml2-devel python-devel

现在可以开始编译了:

cd /lamp/libxml2-2.9.1

./configure --prefix=/usr/local/libxml2/

make

make install

注意:我在centos6.4 64位系统编译安装libxml2-2.9.1时,出现报错如下:

<span style="color: rgb(255, 0, 0);">./.libs/libxml2.so: undefined reference to `gzopen64'<br></span>

解决办法:

先编译安装zlib

<span style="color: rgb(255, 0, 0);">cd/lamp/zlib-1.2.3<br>./configure<br><br>make<br>makeinstall>>/root/zlib.log<br></span>

编辑Makefile文件

<span style="color: rgb(255, 0, 0);">viMakefile<br></span>

在CFLAGS 后面添加 -fPIC 参数,执行make,然后执行 make install

 再重新编译libxml2,执行以下语句

./configure --prefix=/usr/local/libxml2/

然后修改文件Makefile ,找到CFLAGS参数,在它后面添加 -fPIC 参数,然后执行make,最后make install就可以解决了

2.安装libmcrypt

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

cd /lamp/libmcrypt-2.5.8

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

make

make install

这里需调用gcc-c++编译器,未安装会报错

3.安装libltdl

cd /lamp/libmcrypt-2.5.8/libltdl

./configure --enable-ltdl-install

make

make install

4.安装mhash

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

cd /lamp/mhash-0.9.9.9

./configure

make

make install

5.安装mcrypt

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

cd /lamp/mcrypt-2.6.8

LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt

make

make install

LD_LIBRARY_PATH用于指定libmcrypt和mhash的库的位置.--with-libmcrypt-prefix用于指定libmcrypt软件位置.

6.安装zlib

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

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

cd /lamp/zlib-1.2.3

./configure #( CFLAGS="-O3 -fPIC" ./configure 64位安装)

make

make install >> /root/zlib.log

7.安装libpng

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

cd /lamp/libpng-1.2.31

./configure --prefix=/usr/local/libpng

make

make install

8.安装jpeg6

用于解码.jpg和.jpeg图片

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

mkdir -p /usr/local/man/man1/cjpeg.1

在安装之前请检查,是否安装了libtool,没有安装的请用yum安装.

rpm -qa | grep libtool

安装完成后必须做如下操作:

cd /lamp/jpeg-6b

cp /usr/share/libtool/config/config.sub .

cp /usr/share/libtool/config/config.guess .

输入y按回车即可;

以上操作必须进行了才能继续编译,不然就会报如下错误:

./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c

make: ./libtool: Command not found

make: *** [jcapimin.lo] Error 127

继续:

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

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

make

make install

9.安装freetype

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。

cd /lamp/freetype-2.3.5

./configure --prefix=/usr/local/freetype/

make

make install

注意:我在centos6.4 64位系统编译安装libxml2-2.9.1时,出现报错如下:

make: [install] 错误 1 (忽略)

/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \     //后面省略

    解决办法:

    在freetype的安装目录下建立文件夹internal即可

10.安装GD库

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

安装之前先修改一下gd_png.c文件,避免后面编译报错

cd /lamp/gd-2.0.35

vi gd_png.c  /*把#include “png.h” 替换为#include "/usr/local/libpng/include/png.h"*/

编译安装:

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

mkdir /usr/local/gd2

./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

准备工作一:

cd /lamp

tar zxvf apr-1.4.6.tar.gz

tar zxvf apr-util-1.4.1.tar.gz

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

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

如果未进行以上操作,就有可能报以下错误:

configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

准备工作二:

tar zxvf pcre-8.34.tar.gz

cd pcre-8.34

./configure && make && make install

如果未进行以上操作,就有可能报以下错误:

configure: error: pcre-config for libpcre not found. PCRE is required and available from

这一步不是必须:

yum install openssl-devel

如果进行以下步骤的时候出现如下报错:

checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

那这一步就是必须要进行的了.

注意:64位的系统,在安装apache时会出现如下报错(32位可以跳过):

/usr/local/lib/libz.a: could not read symbols: Bad value

collect2: error: ld returned 1 exit status

make[4]: *** [mod_deflate.la] Error 1

make[4]: Leaving directory `/lamp/httpd-2.4.7/modules/filters'

make[3]: *** [shared-build-recursive] Error 1

make[3]: Leaving directory `/lamp/httpd-2.4.7/modules/filters'

make[2]: *** [shared-build-recursive] Error 1

make[2]: Leaving directory `/lamp/httpd-2.4.7/modules'

make[1]: *** [shared-build-recursive] Error 1

make[1]: Leaving directory `/lamp/httpd-2.4.7'

make: *** [all-recursive] Error 1

解决办法如下:

cd /lamp/zlib-1.2.3

CFLAGS="-O3 -fPIC" ./configure   //使用64位元的方法进行编译

make

make install

安装工作:

若前面配置zlib时没有指定安装目录,Apache配置时不要添加--with-z=/usr/local/zlib/参数

cd /lamp/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

启动Apache测试:

启动命令:

/usr/local/apache2/bin/apachectl start     /*安装路径/apache2/bin/apachectl start*/

启动时出现如下错误(未出现的可直接跳过):

AH00557: httpd: apr_sockaddr_info_get() failed for yeyeyuky

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

这个错误是应为ServerName设置有误,解决办法如下:

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

#ServerName www.example.com:80

修改成

ServerName localhost:80

或者

ServerName 127.0.0.1:80

前面的#一定要去掉

查看apache是否正常启动:

ps aux | grep httpd

正常启动这样的:

root     16785  0.0  0.5  75944  2764 ?        Ss   02:06   0:00 /usr/local/apache2//bin/httpd -k start               daemon   16786  0.0  0.9 364908  4644 ?        Sl   02:06   0:00 /usr/local/apache2//bin/httpd -k start      

daemon   16787  0.0  0.5 364908  2604 ?        Sl   02:06   0:00 /usr/local/apache2//bin/httpd -k start

daemon   16788  0.0  0.9 364908  4648 ?        Sl   02:06   0:00 /usr/local/apache2//bin/httpd -k start

root     16871  0.0  0.1 112640   972 pts/0    R+   02:08   0:00 grep --color=auto httpd

查看80端口是否有开启:

netstat –an | grep :80

这里提一句,CentOS7的默认最小化安装是不支持ifconfig命令和netstat命令的

解决办法:安装net-tools软件包就可以了。

80端口开启时这样的:

tcp        0      0 :::80                       :::*                        LISTEN

若启动时提示/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也可能有类似问题。

通过浏览器来判断:

输入地址访问:http://Apache服务器地址,若显示“It works”即表明Apache正常工作

设置Apache系统引导时启动:

方法一:

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

方法二:(推荐)

cd /usr/local/apache2/bin

cp apachectl /etc/rc.d/init.d/httpd /*后面的httpd是重新命名的服务名,可以根据自己的喜好来,只要你记得就可以了*/

编辑httpd文件

vi /etc/rc.d/init.d/httpd

在第一行#!/bin/sh下增加两行文字如下

# chkconfig: 35 70 30

# description: Apache

接着注册该服务

chkconfig --add httpd

一切OK了,启动服务

service httpd start

这样apache就可以开机启动了.

其中所增加的第二行中三个数字第一个表示在运行级别3和5下启动apache,第二、三是关于启动和停止的优先级配置,无关紧要。

12.安装ncurses

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

yum -y install "ncurses*" /*安装ncurses-devel*/

cd /lamp/ncurses-5.9

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

make

make install

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

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

13.安装cmake,bison

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

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

cd /lamp

tar -zxvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./bootstrap

gmake

gmake install

安装bison

yum -y install bison

本文转载自:http://my.oschina.net/yuky/blog/295439

开卷书生
粉丝 2
博文 98
码字总数 2024
作品 0
广州
私信 提问
在httpd-2.2和http-2.4中分别搭建wordpress博客系统和Discuz!论坛系统

在httpd-2.2和http-2.4中分别搭建wordpress博客系统和Discuz!论坛系统 一、 在这里我使用的是centos6.7和centos7.2进行操作。在搭建之前,需要事先搭建LAMP环境。 所谓LAMP环境,指的是linux...

运维小弟qaq
2017/09/08
0
0
CentOS 7中的httpd-2.4和CentOS 6中的httpd-2.2搭建wordpress博客系统和Discuz!论坛系统

在搭建wordpress博客系统和Discuz!论坛系统之前,我们需要在Centos中准备好LAMP环境。 现在以Centos 6为例演示其过程。 LAMP环境=linux+apche+mysql+php 在安装好的Centos 6.7中使用yun安装a...

001100ll
2017/09/06
0
0
CentOS 7上安装WordPress详细步骤

一、搭建Wordpress服务器环境需求: php 5.2.4 或者更高版本、MySQL 5.0 或者更高版本。 二、搭建Wordpress平台: 以下以Wordpress3.92版本为例进行说明,如果大家想安装最近版本的话,安装完...

linuxprobe16
2016/12/03
81
0
LAMP 系统服务搭建过程详解

LAMP 架构在企业里用得非常广泛,目前很多电商公司、游戏公司、移动互联网公司大多都采用这种架构。LAMP指的是Linux、Apache、MySQL、PHP。下面记录了 LAMP 架构系统服务的搭建过程。 一、M...

肖邦0526
2017/01/08
0
0
lamp环境搭建 --lnmp环境搭建_无需整理

需求分析 只需要测试lamp环境运行 目标 快速安装lamp环境 phpstudy一键按装 phpStudy for Linux 支持Apache/Nginx/Tengine/Lighttpd, 支持php5.2/5.3/5.4/5.5切换 已经在centos-6.5,debian...

辣条拌鱼翅
2015/08/15
326
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Knative 中部署 WebSocket 和 gRPC 服务?

作者 | 冬岛 阿里云容器平台工程师 导读:虽然说 Knative 默认就支持 WebSocket 和 gRPC,但在使用中会发现,有时想要把自己的 WebSocket 或 gRPC 部署到 Knative 中,还是存在各种不顺利。虽...

阿里云官方博客
10分钟前
2
0
人人都可以掌握的正交试验设计测试用例方法

介绍 TamanduaOATs 是测者开发并开源的生成正交计算的pyd(python库)程序(放到python下的dlls目录下) 项目地址:https://github.com/crisschan/TamanduaOATs 开发语言:c++ python调用方法...

测者陈磊
11分钟前
1
0
报表工具跟BI软件到底有什么区别?看完你就懂了

在很多人入门数据分析师或者投身大数据行业的时候,必然会听到的两个词就是“报表工具”和“BI商业智能”。然而很多人并不明白两者的概念和区别,以为报表就是BI,BI就是报表,其实这是相当错...

朕想上头条
20分钟前
2
0
ValidatorException异常处理-PKIX path building failed

Maven下载依赖抛出一个ssl数字证书的异常:PKIX path building failed: SunCertPathBuilderException: unable to find valid certification path to requested target ,记录一下问题的前因后......

liumapp
27分钟前
2
0
JAVA CAS单点登录之三:CAS代理模式演练

前言 JAVA CAS单点登录之一:搭建CAS服务器 JAVA CAS单点登录之二:CAS普通模式1演练 代理模式相相对上一节的普通模式,更加复杂了。但配置起来也会稍微有些差别。所谓难者不会,会者不难。如...

彬彬公子
56分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部