千家信息网

LAMP环境搭建

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Lamp环境搭建:(将解压后的lamp目录移动到"/"目录下)一、准备工作1、安装编译工具gcc、gcc-c++注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源--1)编辑y
千家信息网最后更新 2026年11月01日LAMP环境搭建

Lamp环境搭建:(将解压后的lamp目录移动到"/"目录下)


一、准备工作

1、安装编译工具gcc、gcc-c++

注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源--

1)编辑yum配置文件:

# mount /dev/cdrom /mnt/cdrom

# vim /etc/yum.repos.d/CentOS-Media.repo

[c6-media]

name=CentOS-$releasever - Media

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

gpgcheck=0

enabled=1 * 改为1意为启用

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

2)剪切/etc/yum.repos.d/CentOS-Base.repo

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

3)依次安装gcc、gcc-c++

# yum -y install gcc

# yum -y install gcc-c++


2、关闭系统RPM安装包的Apache、MySQL的服务

关闭启动的服务httpd、mysqld

# service httpd stop

# service mysqld stop

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

chkconfig --level 2345 httpd(mysqld) off


3、关闭SELinux,允许防火墙80端口访问

1)关闭SELinux

#vim /etc/selinux/config

SELINUX=disabled * 若安装时没有禁用SELinux ,将enforcing改为disabled

修改后需重新启动Linux方可生效!

2)关闭防火墙Netfilter/iptables

因尚未做防火墙讲解,直接简单的关闭所有防火墙设置:

# iptables -F * 如果没有禁用防火墙,默认80端口禁止访问

Iptables -A INPUT -p tcp -dport 80 -j ACCEPT

iptables -Z

iptables -X


4、关闭不必要自启动服务

# ntsysv

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

atd

crond # atd、crond计划任务

irqbalance

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

network #网络设置

sendmail #邮件

sshd #远程管理

syslog #系统日志


5、拷贝源码包,解包解压缩(注意系统是否已安装unzip软件)

建议将LAMP环境安装源码包统一存放在一个目录下,如/lamp

可编写个批量处理脚本,一次性把所有.tar.gz的安装包解包解压缩

# vim tar-for-if.sh

#!/bin/bash

ls * > ./list.txt

for a in $(cat list.txt)

do

if [[ "$a" =~ "tar" ]]

then

tar -xf $a

elif [[ "$a" =~ "tgz" ]]

then

tar -xf $a

elif [[ "$a" =~ "gz" ]]

then

gunzip $a

elif [[ "$a" =~ "bz" ]]

then

bunzip2 $a

elif [[ "$a" =~ "zip" ]]

then

unzip $a

else

echo "$a is not a zip file."

fi

done


6、查看确认磁盘空间未满

df -h

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

如何确定报错:

1)安装过程停止

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

如何确定安装成功:

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


二、编译安装

* 每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件

# 安装libxml2

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

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

#yum install -y libxml2-devel 如果报错,安装此包后再尝试安装

yum -y install python-devel 必须安装

cd /lamp/libxml2-2.9.1

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

make

make install

# 安装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++编译器,未安装会报错

# 安装libltdl,也在libmcrypt源码目录中,非新软件

cd /lamp/libmcrypt-2.5.8/libltdl

./configure --enable-ltdl-install

make

make install

# 安装mhash

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

cd /lamp/mhash-0.9.9.9

./configure

make

make install

# 安装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

#以上为一条命令。LD_LIBRARY_PATH用于指定libmcrypt和mhash的库的位置。

--with-libmcrypt-prefix用于指定libmcrypt软件位置

make

make install

# 安装zlib

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

cd /lamp/zlib-1.2.3

./configure

vi Makefile

#找到CFLAGS=-O3 -DUSE_MMAP

#在后面加入 -fPIC 变成

CFLAGS=-O3 -DUSE_MMAP -fPIC

make &&make install

cd /lamp/zlib-1.2.3

./configure

make

make install >> /root/zlib.log (32位操作系统使用此命令)

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

# 安装libpng

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

cd /lamp/libpng-1.2.31

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

make

make install

# 安装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

#目录必须手工建立

yum -y install "libtool*"

cd /lamp/jpeg-6b

[root@localhost jpeg-6b]# cp /usr/share/libtool/config/config.sub .

[root@localhost jpeg-6b]# cp /usr/share/libtool/config/config.guess .

#复制libtool中的文件,覆盖jpeg-6b中的文件 (64位中的问题,32位没有此报错)

cd /lamp/jpeg-6b

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

make

make install

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

# 安装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


# 安装Apache

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

#如果报错,则:

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

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

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

#如果报错,则:

tar zxvf pcre-8.34.tar.gz

cd /lamp/pcre-8.34

./configure && make && make install

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

#如果报错,则:

yum install openssl-devel

安装apache

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

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

启动Apache测试:

/usr/local/apache2/bin/apachectl start

ps aux | grep httpd

netstat -tlun | grep :80

* 若启动时提示/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

# 安装ncurses

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

1、yum -y install ncurses-devel

注:如果报错,包找不到,是*通配符没有识别,给文件名加双引号 "ncurses*"

2、源代码编译:

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

yum -y install bison

# 安装MySQL

groupadd mysql

useradd -g mysql mysql

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

cd /lamp/mysql-5.5.48

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

rm CMakeCache.txt

#如果报错,清除缓存,请使用以上命令

cd /usr/local/mysql/

chown -R root .

chown -R mysql data

#修改mysql目录权限

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

#复制mysql配置文件

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

#创建数据库授权表,初始化数据库

启动MySQL服务:

1.用原本源代码的方式去使用和启动mysql

/usr/local/mysql/bin/mysqld_safe --user=mysql & 执行命令后,过一会要回车

2.重启以后还要生效:

vim /etc/rc.local

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

3.设定mysql密码

/usr/local/mysql/bin/mysqladmin -uroot password 123

清空历史命令 history -c

* 给mysql用户root加密码123

* 注意密码不能写成 "123"

/usr/local/mysql/bin/mysql -u root -p

mysql>show databases;

mysql>use test;

mysql>show tables;

mysql>\s #查看字符集是否改为utf8

* 进入mysql以后用set来改密码

mysql> exit

* 登录MySQL客户端控制台设置指定root密码

# 安装PHP

编译前确保系统已经安装了libtool和libtool-ltdl软件包,安装:

yum -y install "libtool*"

cd /lamp/php-7.0.7

./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --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 --with-gd --without-pear

l 若前面配置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-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-mcrypt=/usr/local/libmcrypt/ 指定libmcrypt位置

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

--with-gd 启用gd库

--enable-soap 支持soap服务

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

--enable-sockets 支持套接字

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

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

make

make install

生成php.ini

# mkdir /usr/local/php/etc/

cp /lamp/php-7.0.7/php.ini-production /usr/local/php/etc/php.ini

测试Apache与PHP的连通性,看Apache是否能解析php文件

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

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

(注意大小写)

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

重启Apache服务:/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 /usr/local/apache2/modules/libphp5.so

测试:vim /usr/local/apache2/htdocs/test.php

phpinfo();

?>

通过浏览器输入地址访问:http://Apache服务器地址/test.php

Rpm包安装的网页默认目录 /var/www/html/

* 有时第一次浏览器测试会失败,关闭浏览器重启再尝试即可,非编译错误

# 安装openssl

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

yum -y install openssl-devel 必须安装

cd /lamp/php-7.0.7/ext/openssl

mv config0.m4 config.m4 否则报错:找不到config.m4

/usr/local/php/bin/phpize

./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

make

make install

# 编译安装memcache

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

https://github.com/websupport-sk/pecl-memcache/archive/php7.zip

unzip pecl-memcache-php7.zip

cd pecl-memcache-php7

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install


修改/usr/local/php/etc/php.ini

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"

#打开注释,并修改

extension="openssl.so";

extension="memcache.so";

#添加

#重启apache,在phpinfo中可以找到这个模块

#安装memcache源代码

首先安装依赖包libevent

yum -y install "libevent-devel"

#在CentOS 6.3第二张光盘中,请换盘

umount /mnt/cdrom

#放入CentOS 6.3第二张光盘

#mount /dev/sr0 /mnt/cdrom

cd /lamp/memcached-1.4.17

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

make && make install

useradd memcache

#添加memcache用户,此用户不用登录,不设置密码

/usr/local/memcache/bin/memcached -umemcache &

netstat -an | grep :11211

写入自启动:

vi /etc/rc.d/rc.local

/usr/local/memcache/bin/memcached -umemcache &


项目迁移:

1、 把php项目拷贝到网站默认目录下: /usr/local/apache2/htdocs/

2、 手工建立数据库表结构


# 安装phpMyAdmin

cp -r /lamp/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

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['auth_type'] = 'http';

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

通过浏览器输入地址访问:http://Apache服务器地址/phpmyadmin/index.php

用户名为root ,密码为MySQL设置时指定的root密码123456(lampbrother)


文件 目录 支持 服务 位置 密码 用户 系统 编译 软件 命令 数据 配置 字符 地址 果报 程序 语言 问题 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 互联网科技网 江苏根荣互联网科技 今日互联网科技 互联网是不是新科技 礼当家互联网科技 互联网金融科技平台 居家互联网科技有限公司 太原新华互联网科技学校怎么样 恒银科技与互联网金融 互联网教育科技公司vipkid 互联网科技创新服务 互联网金融科技展 深圳市罗太互联网科技有限公司 高科技互联网发展前景如何 南通创西澳互联网科技有限公司 电子商务与互联网科技的关系 皮皮虾互联网科技有限公司 长沙易易互联网科技有限公司 优雇互联网科技有限公司 互联网科技工作委员会副主任毛军 深圳恒合互联网络科技有限公司 麻工互联网科技 科技创新互联网企业 互联网科技公司介绍 深圳互联网科技怎么样 花神(南京)互联网科技有限公司 乌鲁木齐新华智原互联网科技学校 黑科技 体验场景 互联网大会 全球科技与互联网公司市值变化
0