LAMP环境搭建

系统环境:RHEL 5.4

软件包:httpd-2.2.22.tar.gz

MySQL-server-community-5.1.61-1.rhel5.i386.rpm

MySQL-client-community-5.1.61-1.rhel5.i386.rpm

MySQL-devel-community-5.1.61-1.rhel5.i386.rpm

 

采用RPM包安装mysql,快捷方便

 

GCC:编译源码时需要GCC编译器

rpm –qa | grep ^gcc

gcc-c++-4.1.2-46.el5

gcc-4.1.2-46.el5

gcc-gfortran-4.1.2-46.el5

 

libxml2安装php5需要libxml2。没有装libxml2可能会出现这样的错误:

configure: error: xml2-config not found. Please check your libxml2 installation.

rpm –qa | grep libxml

libxml2-2.6.26-2.1.2.8

libxml2-python-2.6.26-2.1.2.8

libxml2-devel-2.6.26-2.1.2.8

 

安装Apache

如已安装httpd,卸载:rpm  –e httpd  –nodeps

软件包目录:

httpd-2.2.22.tar.gz

MySQL-client-community-5.1.61-1.rhel5.i386.rpm

MySQL-devel-community-5.1.61-1.rhel5.i386.rpm

MySQL-server-community-5.1.61-1.rhel5.i386.rpm

php-5.2.17.tar.gz

解压Apache

tar  –zxvf  httpd-2.2.22.tar.gz

进入解压后的Apache目录

cd  httpd-2.2.22/

配置安装

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-expires --enable-cache --enable-mem-cache

#  --prefix=/usr/local/httpd  指定安装目录

#  --enable-so  支持动态链接机制上加载DSO模块

#   --enable-rewrite  重写

配置完成后,编译安装

make  &&  make  install

安装完成,启动Apache

/usr/local/httpd/bin/apachectl -k start

测试程序是否启动:

netstat -anp | grep :80

tcp        0      0 :::80                       :::*                        LISTEN      13630/httpd

访问网站测试页面:It works

Apache安装完成。

 

安装MySQL

先卸载旧版本的mysql,因为旧版本的mysql与新版本的MySQL会有冲突

rpm  -e  mysql  --nodeps

rpm  -e  mysql-server  --nodeps

先安装MySQL-server

rpm  –ivh  MySQL-server-community-5.1.61-1.rhel5.i386.rpm

再安装MySQL-client

MySQL-client-community-5.1.61-1.rhel5.i386.rpm

再安装mysql的一些库和头文件,这些头文件在安装php并关联mysql中是需要的。

否则会出现这样的错误:

configure: error: Cannot find MySQL header files under ...

rpm -ivh MySQL-devel-community-5.1.32-0.rhel5.i386.rpm

安装完毕后,mysql –v查看一下mysql版本,默认mysql没有密码

 

PHP

解压php源码包

tar  -zxvf  php-5.2.17.tar.gz

进入解压后的目录

cd  php-5.2.17/

配置安装php

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/lib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql --with-zlib --enable-mbstring --enable-xml

## --prefix是安装目录。--with-config-file-path是指定php配置文档php.ini所在的目录。--with-mysql,安装mysql扩展。--with-zlib安装zlib扩展,前提是linux已经安装了zlib,未安装可以去掉这个选项。 安装mbstringxml扩展。这些都是常用的模块。

编译安装

make  &&  make install

php配置文档复制到/usr/local/lib

cp  php.ini-dist  /usr/local/lib/php.ini

PHP安装完成。

 

Apache

1.配置apache关联php,打开apache配置文档

vi /usr/local/httpd/conf/httpd.conf

2.找到LoadModule,安装时设置好的,务必检查一下

LoadModule          php5_module         modules/libphp5.so

3. 定义根目录路径,找到DocumentRoot "/usr/local/httpd/htdocs"

如修改,也需修改<Directory "/usr/local/httpd/htdocs">

4.

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

这两行下面添加:

AddType application/x-httpd-php .php

5. 修改默认文档:

      

           DirectoryIndex  index.html

</IfModule>

DirectoryIndex后面添加一条index.php

<IfModule dir_module>

           DirectoryIndex  index.php  index.html

</IfModule>

保存文件并退出。

 

配置PHP

打开php配置文档

vi /usr/local/lib/php.ini

修改php时区,php5默认是格林威治时间,不修改的话与中国时间相差8小时

[Date]

; Defines the default timezone used by the date functions

; date.timezone =

##改为 date.timezone = PRC其中PRCPeople's Republic of China ×××

[Date]

; Defines the default timezone used by the date functions

date.timezone = PRC

保存退出。

PHP配置完成

重启apache

/usr/local/httpd/bin/apachectl -k restart

如果出现类似的这样的错误

httpd: Syntax error on line 53 of /usr/local/httpd/conf/httpd.conf: Cannot load /usr/local/httpd/modules/libphp5.so into server: /usr/local/httpd/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
这个是selinux限制的
可以关闭selinux

Setenforce 0

或者执行

chcon–t texrel_shlib_t /usr/local/httpd/modules/libphp5.so
然后再重启apache

测试:

在网站根目录创建一个index.php
vi /usr/local/httpd/htdocs/index.php

输入

<?php 

phpinfo();
?>

保存退出

访问网站,出现PHP页面即可。

如果提示不能打开或下载框,并且之前的配置上没有错误。再重启一次apache就能解决。

 

 

此方式安装的Apache并不是随机器启动而启动的。我们可以将apache的启动命令加到 /etc/rc.d/rc.local 中,就可以随机启动了

vi /etc/rc.d/rc.local

插入

/usr/local/httpd/bin/apachectl -k start

保存退出。

 

 

重新编译PHP安装扩展,GD库安装与配置

先安装 freetype

解压
tar -zxvf freetype-2.2.1.tar.gz

进入解压的目录

cd freetype-2.2.1

安装到/usr/local/freetype

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

编译并安装

make && make install

再安装png

解压
tar -zxvf libpng-1.2.12.tar.gz

进入解压目录

配置,编译并安装
./configure && make && make install

 

再安装jpeg

解压
tar -zxvf jpegsrc.v6b.tar.gz

因为jpeg安装不能自动创建文件夹,所以要先创建文件夹,否则会找不到文件夹而编译失败。

分别创建:

mkdir /usr/local/jpeg6

mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1

配置

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

编译并安装

make && make install

最后安装gd

解压

tar -zxvf gd-2.0.35.tar.gz

进入解压目录

执行
./configure --prefix=/usr/local/gb --with-jpeg --with-png --with-freetype

编译安装(第一次make时会报错,不用管,重新make一下就OK

make && make install

GD安装完毕,现在用重新编译php的方法安装gd库扩展。

cd /usr/local/src/php-5.2.9
重新配置php,配置是想保留原有配置的基础上新增gd库,
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/lib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql --with-zlib --enable-mbstring --enable-xml --with-gd --with-jpeg-dir=/usr/local/jpeg6 --with-png-dir --with-freetype-dir=/usr/local/freetype

编译安装

make && make install

安装完成后重启apache

/usr/local/httpd/bin/apachectl -k restart