CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)
Apache(2.4.16)+PHP(5.6.11)+MySQL(5.5.45)
LAMP的简单介绍,lamp框架
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,LAMP具有Web资源丰富、轻量、快速开发等特点。
为了初学者的搭建,本次配置写的较为详细,若有错误恳请指正
一.LAMP安装前的准备
1.获取软件包
apr-1.5.2.tar.gz gd-2.0.33.tar.gz libpng-1.5.4.tar.gz php-5.6.11.tar.gz
apr-util-1.5.4.tar.gz httpd-2.4.16.tar.gz libxml2-2.7.8.tar.gz zlib-1.2.8.tar.gz
autoconf-2.68.tar.gz jpegsrc.v8c.tar.gz mysql-5.5.45-linux2.6-x86_64.tar.gz
cmake-2.8.10.2.tar.gz libgd-2.1.1.tar.gz mysql-5.6.20.tar.gz
freetype-2.4.6.tar.gz libmcrypt-2.5.8.tar.gz pcre-8.36.tar.gz
把上面下载的17个源代码包放到linux系统下的/usr/local/src/LAMP目录中
源码包的下载地址:
备注:以上源码包并不是最新版本的,可以自行在网上下载最新版本的源码包
这是我的源码包的地址: http://pan.baidu.com/s/1kT5udyn2.确认搭建LAMP所需要的环境是否已经安装
[root@redhat6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio
make-3.81-20.el6.x86_64
package gcc is not installed
package gcc-c++ is not installed
package zlib-devel is not installed
package libaio is not installed
3.如果没有安装则用yum安装即可
[root@redhat6 LAMP]# yum install make gcc gcc-c++ zlib-devel libaio
备注:GCC是一个用于linux系统下编程的编译器,其中包括c++。
安装libpng时候需要zlib-devel 安装mysql时候需要libaio
libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。
二.开始搭建LAMP环境
安装时的主要步骤:
(1)解压tar.gz为后缀的压缩包软件
LAMP环境搭建所需要的每个软件的源代码文件,都是以.tar.gz提供给我们的打包压缩文件,所以我们必须将其解压再解包。可通过命令#tar zxvf tarfile.tar.gz达到目的。
(2)在linux系统中源代码包安装过程
进行解压后的目录,LAMP环境搭建所需要的软件都使用C语言开发的,所以安装源代码文件最少需要配置(configure)、编译(make)、安装(make install)三个步骤。
1、确认搭建LAMP所需要的环境是否已经安装
此步骤前面已经完成。
2、编译安装libxml2 [php]
注:libxml2是一个xml的c语言版的解析器,不仅支持c语言,还支持c++、php、Pascal、Ruby、Tcl等语言的绑定
[root@redhat6 LAMP]#pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf libxml2-2.7.8.tar.gz
[root@redhat6 LAMP]#cd libxml2-2.7.8
[root@redhat6 libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2/
[root@redhat6 libxml2-2.6.30]#make
[root@redhat6 libxml2-2.6.30]#make install
注:选项--prefix=/usr/local/libxml2作用是将软件安装到/usr/local/libxml2 目录下。
如果安装成功以后,在/usr/local/libxml2/目录下将生成bin,include,lib,man,share五个目录。在后面安装 PHP5源代码的配置时,会通过在configure命令的选项中加上"--with-libxml-dir=/usr/local/libxml2"选项,用于指定安装libxml2库文件的位置
3.编译安装libmcrypt [php]
注:libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@redhat6 LAMP]# cd libmcrypt-2.5.8
[root@redhat6 libmcrypt-2.5.8]# ./configure -prefix=/usr/local/libmcrypt
[root@redhat6 libmcrypt-2.5.8]# make
[root@redhat6 libmcrypt-2.5.8]# make install
如果安装成功就会在/usr/local/libmcrypt/目录下生成bin,include,lib,man,share五个目录。然后在安 装PHP5源代码包的配置时,就可以通过configure命令加上“--with-mcrypt-dir=/usr/local/libmcrypt” 选项,指定这个libmcrypt库文件的位置。
[出现的问题:]
如./configure时报错:configure: error: C++ compiler cannot create executables 。
解决方案:
运行下面命令,然后重新configure(配置)
yum install gcc gcc-c++ gcc-g77
4.编译安装zlib [php]
注:zlib是提供数据压缩用的函式库
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf zlib-1.2.8.tar.gz
[root@redhat6 LAMP]# cd zlib-1.2.8
[root@redhat6 zlib-1.2.3]# ./configure -prefix=/usr/local/zlib
[root@redhat6 zlib-1.2.3]# make
[root@redhat6 zlib-1.2.3]# make install
如果安装成功将会在/usr/local /zlib目录下生成include,lib,share三个目录。在安装PHP5配置时,在configure命令的选项中加上“--with- zlib-dir=/usr/local/libmcrypt”选项,用于指定zlib库文件位置。
5.编译安装libpng [GD2]
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf libpng-1.5.4.tar.gz
[root@redhat6 LAMP]# cd libpng-1.5.4
[root@redhat6 libpng-1.2.31]# ./configure -prefix=/usr/local/libpng -enable-shared
[root@redhat6 libpng-1.2.31]# make
[root@redhat6 libpng-1.2.31]# make install
如果安装成功将会在/usr/local/libpng目录下生成bin,include,lib和share四个目录。在安装GD2库配置时,通 过在configure命令选项中加上“--with-png=/usr/local/libpng”选项,指定libpng库文件的位置。
[编译的时候遇到的问题:]
在./configure --prefix=/usr/local/libpng这步最后会提示:configure: error: ZLib not installed
解决方法如下:
1)进入zlib的源文件目录,执行命令 make clean,清除zlib;
2)重新配置 ./configure,后面不要接--prefix参数;
3)make && make install;
4)进入libpng目录,执行命令 ./configure --prefix=/usr/local/libpng;
5)make && make install;
6)安装成功.
6、编译安装jpeg [GD2]
注:安装GD2库前所需的jpeg8库文件,需要自己手动创建安装需要的目录,它们在安装时不能自动创建。
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf jpegsrc.v8c.tar.gz
[root@redhat6 LAMP]# cd jpeg-8c/
[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg
[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/bin
[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/lib
[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/include
[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/man/man1
[root@redhat6 jpeg-8c]# ./configure -prefix=/usr/local/jpeg \
> -enable-shared \
> -enable-static (建立共享库使用的GNU的libtool和静态库使用的GNU的libtool)
-enable-shared 和 -enable-static 是什么意思?
这是 configure 常用的两个参数,表示启用动态库版本还是静态库版本。
如果你要编译一个库的源代码,可以把它编译成静态库,也可以把它编译成动态库。如果你想编译成静态库,就用 --enable-shared参数;如果你想编译成静态库,就用--enable-static参数。
[root@redhat6 jpeg-8c]#make
[root@redhat6 jpeg-8c]#make install
在安装GD2库配置时,可以在configure命令的选项中加上“--with-jpeg=/usr/local/jpeg”选项,指定jpeg6库文件的位置。安装PHP时也要指定该库文件的位置。
7、编译安装freetype [GD2]
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf freetype-2.4.6.tar.gz
[root@redhat6~LAMP LAMP]# cd freetype-2.4.6
[root@redhat6~LAMP freetype-2.4.6]# ./configure --prefix=/usr/local/freetype --enable-shared
[root@redhat6 freetype-2.4.6]# make
[root@redhat6 freetype-2.4.6]# make install
如果安装成功将会在/usr/local/freetype目录下存在bin,include,lib和share四个目录。并在安装GD2库时,通过configure命令选项中加上“--with-freetype=/usr/local/freetype/”选项,指定freetype库文件位置。
8、编译安装autoconf
唯一注意的地方是configure时,不用指定路径。
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6 LAMP]# tar -zxvf autoconf-2.68.tar.gz
[root@redhat6 autoconf-2.68]# ./configure
[root@redhat6 autoconf-2.68]# make
[root@redhat6 autoconf-2.68]# make install
9、 编译安装GD [PHP]
[root@redhat6 LAMP]# pwd
/usr/local/src/LAMP
[root@redhat6~LAMP LAMP]# tar -zxvf libgd-2.1.1.tar.gz
[root@redhat6~LAMP LAMP]# cd libgd-2.1.1
[root@redhat6 gd-2.0.33]# ./configure \ //配置命令
> --prefix=/usr/local/gd \ //指定安装软件的位置
> --with-jpeg=/usr/local/jpeg \ //指定去哪找jpeg库文件
> --with-png=/usr/local/libpng/ \ //指定去哪找png库文件
> --with-zlib=/usr/local/zlib/ \ //指定去哪找zlib库文件
> --with-freetype=/usr/local/freetype/ //指定去哪找freetype 2.x字体库的位置
[root@redhat6 gd-2.0.33]# make
[root@redhat6 gd-2.0.33]# make install
遇到的问题:
如果报错:unrecognized option –with-zlib
那就重新安装一次zlib,注意,需要把原先解压出来的源码删掉,重新解压进行安装。
三、 安装apache
Apr是Apache可移殖运行库,可以让Apache跨操作系统安装(相当于一个虚拟机),Apr-util是给Apr提供接口
(1).查看是否安装了apr apr-util这两个包
[root@redhat6 LAMP]# rpm -q apr apr-util
package apr is not installed
package apr-util is not installed
如果安装了,卸载apr、apr-util
[root@redhat6 LAMP]#yum remove apr apr-util
(2).编译安装apr-1.5.2.tar.gz
[root@redhat6 LAMP]# tar -zxvf apr-1.5.2.tar.gz
[root@redhat6 apr-1.5.2]# ./configure --prefix=/usr/local/apr-httpd
[root@redhat6 apr-1.5.2]# make
[root@redhat6 apr-1.5.2]# make install
(3).编译安装apr-util-1.5.4.tar.gz
[root@redhat6 LAMP]# tar -zxvf apr-util-1.5.4.tar.gz
[root@redhat6 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-httpd \
> --with-apr=/usr/local/apr-httpd/
[root@redhat6 apr-util-1.5.4]# make
[root@redhat6 apr-util-1.5.4]# make install
(4).编译安装pcre-8.36.tar.gz
[root@redhat6 LAMP]# tar -zxvf pcre-8.36.tar.gz
[root@redhat6 pcre-8.36]# ./configure --prefix=/usr/local/pcre
[root@redhat6 pcre-8.36]# make
[root@redhat6 pcre-8.36]# make install
(5).编译安装apache
[root@redhat6 LAMP]# tar -zxvf httpd-2.4.16.tar.gz
[root@redhat6 LAMP]# cd httpd-2.4.16
[root@redhat6 httpd-2.4.16]# ./configure \
> --prefix=/usr/local/apache-2.4.16 \
> --enable-mods-shared=all \
> --enable-deflate \
> --enable-speling \
> --enable-cache \
> --enable-file-cache \
> --enable-disk-cache \
> --enable-mem-cache \
> --enable-so \
> --enable-expires=shared \
> --enable-rewrite=shared \
> --enable-static-support \
> --sysconfdir=/etc/httpd \
> --with-zlib=/usr/local/zlib/ \
> --with-apr=/usr/local/apr-httpd/ \
> --with-apr-util=/usr/local/apr-util-httpd/ \
> --with-pcre=/usr/local/pcre/ \
> --disable-userdir
make && make install
安装完成后,进入/usr/local/apache-2.4.16/目录下,检查是否有以下文件:
bin build cgi-bin error htdocs icons include logs man manual modules
启动Apache服务器,并查端口是否开启,启动Apache服务器的命令行如下:
[root@redhat6 apache-2.4.16]# /usr/local/apache-2.4.16/bin/apachectl start
提示信息:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
解决方案:
[root@redhat6 apache-2.4.16]# vim /etc/httpd/httpd.conf
加上下面一行,重启apache
ServerName localhost:80
查看端口命令行如下:
[root@redhat6 apache-2.4.16]# netstat -tnl | grep 80
tcp 0 0 :::80 :::* LISTEN
测试安装结果,打开浏览器,在地址栏中输入URL为:http://192.168.146.129/
如果浏览器中出现It works!则表明Apache服务器可以使用。
即显示以下的页面即可
每种服务器软件都有必要制成开机时自动启动,Apache服务器开机自动启动,只要在“/etc/rc.d/rc.local”文件,加上 Apache服务器的启动命令即可。可以直接打开“/etc/rc.d/rc.local”文件,在最后一行写入Apache启动命令,也可以用echo 命令追加进去,如下命令行示:
方法一:
开机自动启动apache的第一种方法:
修改/etc/rc.local文件
# vim /etc/rc.local
在文件中添加/usr/local/apache/bin/apachectl start
即以下操作:
[root@redhat6 apache-2.4.16]# echo "/usr/local/apache-2.4.16/bin/apachectl start" >> /etc/rc.d/rc.local
方法二:
[root@redhat6 apache-2.4.16]# cp /usr/local/apache-2.4.16/bin/apachectl /etc/init.d/httpd
[root@redhat6 apache-2.4.16]# chmod +x /etc/init.d/httpd
[root@redhat6 apache-2.4.16]# /etc/init.d/httpd start
[下面这一部分操作的时候有问题,理论上应该是没有问题的]
[root@redhat6 apache-2.4.16]# chkconfig --add httpd
注意:如果提示service httpd does not support chkconfig错误
解决办法:编辑/etc/rc.d/init.d/httpd在文件第二行加入
#chkconfig:2345 10 90
#description:Activates/Deactivates Apache Web Server
2345是设为要启动的运行级别,10是启动优先级,90是杀死进程的优先级,谁优先谁先挂的意思
[root@redhat6 apache-2.4.16]# chkconfig --add httpd
[root@redhat6 apache-2.4.16]# chkconfig --level 2345 httpd on
[root@redhat6 apache-2.4.16]# service httpd restart
四、安装mysql
[root@redhat6~LAMP LAMP]# tar -zxvf mysql-5.5.45-linux2.6-x86_64.tar.gz
[root@redhat6~LAMP LAMP]# cd /usr/local/
[root@redhat6~LAMP local]# mv /usr/local/src/LAMP/mysql-5.5.45-linux2.6-x86_64 .
[root@redhat6~LAMP local]# ln -sv mysql-5.5.45-linux2.6-x86_64/ mysql
(1)创建用户、组和目录
[root@centos6 ~]# groupadd mysql
[root@centos6 ~]# useradd mysql -g mysql
[root@centos6 ~]# passwd mysql //设置密码为:mysql
[root@resource mysql]# pwd
/usr/local/mysql //mysql安装目录
[root@localhost mysql]# chown -R root.mysql . //设置安装目录下所有文件的权限
[root@resource mysql]# chown -R mysql.mysql ./data //设置数据仓库目录data的权限
(2)初始化数据库
执行前需赋给scripts/mysql_install_db文件执行权限:
[root@centos6 ~]# pwd
/usr/local/mysql //mysql安装目录
[root@centos6 ~]# chmod 755 scripts/mysql_install_db
[root@centos6 ~]# scripts/mysql_install_db --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
[root@redhat6~LAMP mysql]# cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
在这里面添加两项
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
(3)设置mysqld的开机启动
[root@centos6 ~]# cp support-files/mysql.server /etc/init.d/mysql
[root@centos6 ~]# chmod 755 /etc/init.d/mysql
[root@centos6 ~]# chkconfig mysql on
可使用chkconfig –list | grep mysql 命令查询刚才的设置情况。
再修改root密码:
/usr/local/mysql/bin/mysqladmin -u root password 'mysql'
启动mysql服务:
[root@centos6 ~]# /etc/init.d/mysql start
启动完成之后用ps -ef |grep mysql 命令查看是否启动
(4)为MySQL配置环境变量
将mysql的bin目录加到PATH中,有利于以后管理和维护,在/etc/prof
ile中加入myslq/bin,同时增加两个别名方便操作。
注:后面两个别名不加也可以,加上以后的操作更方便。
[root@centos6 ~]# export PATH=$PATH:/usr/local/mysql/bin
[root@redhat6~LAMP ~]# source /etc/profile
登陆mysql:
[root@centos6 ~]# mysql -u root -p
[输入密码后如果可以正常登录则证明安装ok]
五、编译安装php
安装PHP之前,需要先安装libXpm-devel,否则在安装php的时候会出现下面的错误:
/usr/local/src/LAMP/php-5.5.14/ext/gd/gd.c:57:22: error: X11/xpm.h: No such file or directorymake: *** [ext/gd/gd.lo] Error 1
(1)编译安装libXpm-devel:
[root@redhat6 ~]# yum install -y libXpm-devel
[root@redhat6 ~]# rpm -ql libXpm-devel
/usr/bin/cxpm
/usr/bin/sxpm
/usr/include/X11/xpm.h
/usr/lib64/libXpm.so
/usr/lib64/pkgconfig/xpm.pc
/usr/share/man/man1/cxpm.1.gz
/usr/share/man/man1/sxpm.1.gz
查找到libXpm-devel的安装位置为/usr/lib64/libXpm.so,将选项--with-xpm-dir=/usr/lib64添加到php的配置选项中。
[root@redhat6 LAMP]# tar -zxvf php-5.6.11.tar.gz
[root@redhat6 php-5.6.11]# ./configure
> --prefix=/usr/local/php \
> --with-config-file-path=/usr/local/php/etc \ //配置文件路径,指定php.ini位置
> --with-apxs2=/usr/local/apache-2.4.16/bin/apxs \ // apxs功能是使用mod_so中的
// LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
> --with-mysql=/usr/local/mysql \ //mysql安装目录,对mysql的支持
> --with-mysqli=/usr/local/mysql/bin/mysql_config \ //mysqli文件目录,优化支持
> --with-libxml-dir=/usr/local/libxml2 \ //打开libxml2库的支持
> --with-png-dir=/usr/local/libpng \ //打开对png图片的支持
> --with-jpeg-dir=/usr/local/jpeg \ //打开对jpeg图片的支持
> --with-freetype-dir=/usr/local/freetype \ //打开对freetype字体库的支持
> --with-gd=/usr/local/gd \ //打开gd库的支持
> --with-zlib-dir=/usr/local/zlib \ //打开zlib库的支持
> --with-mcrypt=/usr/local/libmcrypt \ //打开libmcrypt库的支持
> --with-xpm-dir=/usr/lib64 \ //打开libXpm库的支持
> --enable-soap \ //
> --enable-mbstring=all \ //多字节,字符串的支持
> --enable-sockets //打开 sockets 支持
(2)进行如下所示的配置
安装完成后,需要建立PHP配置文件。在使用configure命令安装配置时使用“--with-config-file-path=/usr /local/php/etc/”选项,指定了配置文件的位置。将源码包下面的php.ini-development 文件复制到/usr/local /php/etc/中,并改名为php.ini即可,如下所示:
[root@localhost php-5.4.11]# cp php.ini-development /usr/local/php/etc/php.ini
修改php.ini 把;date.timezone 前面的分号去掉,改成date.timezone ="PRC"
更改apache的配置文件,达到解析php文件的目的
编辑配置文件/etc/httpd/httpd.conf,在LoadModule最后面添加以下内容
LoadModule php5_module modules/libphp5.so
##通常正确编译安装PHP后会自动增加,如果没有,需要手工添加。
接下来要检查apache目录下生成的php动态连接库文件,在目录/usr/local/apache/modules,找到是否存在libphp5.so文件。若不存在呢?则说明php安装不正确。
[root@centos6 ~]# vim /etc/httpd/httpd.conf
在/etc/httpd/conf/httpd.conf文件中添加如下内容:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps
将下面一行:
DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
(3)配置结束后重启Apache
[root@centos6 ~]#service httpd restart
(4)验证:
Apache服务器的根目录默认为:/usr/local/apache/htdocs/,此目录下面存放资源:
[root@centos6 ~]# vim /usr/local/apache-2.4.16/htdocs/index.php
添加内容为
<?php
echo phpinfo();
?>
在客服端验证,出现下图说明php搭建成功