LAMP 环境搭建 第13天

环境安装对操作系统的选择
选择网站运营的操作系统
选择网站开发的操作系统
Linux 系统下源代码包方式安装前准备
采用源代码包安装方式
使用的 Linux 操作系统以 Red Hat Linux 操作系
统系列为例
软件名称下载地址
httpd-2.2.9.tar.gz http://www.apache.org/
mysql-5.0.41.tar.gz

http://dev.mysql.com/downloads/

php-5.2.6.tar.gz

http://www.php.net/downloads.php

phpMyAdmin-3.0.0-rc1-all-languages.tar.gz http://www.phpmyadmin.com/
libxml2-2.6.30.tar.gz
ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.30.tar.gz
libmcrypt-2.5.8.tar.gz

http://prdownloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?use_mirror

=peterhost
zlib-1.2.3.tar.gz http://www.zlib.net/zlib-1.2.3.tar.gz
gd-2.0.35.tar.gz http://www.libgd.org/releases/gd-2.0.35.tar.gz
Autoconf-2.61.tar.gz ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
freetype-2.3.5.tar.gz

http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz

libpng-1.2.31.tar.gz
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.31.tar.gz
jpegsrc.v6b.tar.gz http://www.ijg.org/files/jpegsrc.v6b.tar.gz
ZendOptimizer330a.tar.gz

http://wt1.mycodes.net/soft/20071108/ZendOptimizer330a.tar.gz

安装前检查编译工具是否存在
gcc -v
rpm -q gcc
rpm -q make

卸载默认的低版本环境
目前发行的 Linux 操作系统版本中,
如果选择默认全部安装,
就已经安装了 LAMP 环境,
但是版本相对都比较低。我们可以再安装一个 LAMP 环境和原来的并存,但是这样做没有必
要,因为同时只能开启一个 LAMP 环境。所以我们要在安装之前,先应检查一下系统中是否
已经安装了低版本的环境,如果已经安装过了,停止原来的服务运行,或者把原来的环境卸
载掉。
编译安装过程介绍
一、解压 tar.gz 为后缀的压缩软件包
二、在 Linux 系统中源代码包安装过程
配置(configure)
编译(make)
安装(make install)
各个软件编译安装顺序
搭 建 LAMP 环 境 时 , 需 要 安 装 的 所 有 软 件 都 要 按 照 一 定 的 顺 序 安 装 , 我 们 按
Apache->MySQL->PHP 顺序安装。
但在安装 PHP 之前,
应先安装 PHP5 需要的最新版本库文件,
例如 libxml2、libmcrypt 以及 GD2 库等文件。安装 GD2 库是为了让 PHP5 支持 GIF、PNG 和
JPEG 图片格式,
所以在安装 GD2 库之前还要先安装最新的 zlib、
libpng、
freetype 和 jpegsrc
等库文件。而且中间还会穿插安装一些软件。
安装 libxml2 最新库文件
./configure–prefix=/usr/local/libxml2
#make
#make install
安装 libmcrypt 最新库文件
./configure–prefix=/usr/local/libmcrypt
#make
#make install
安装 zlib 最新库文件
#./configure–prefix=/usr/local/zlib
#make
#make install
安装 libpng 最新库文件
#./configure–prefix=/usr/local/libpng
#make
#make install
安装 jpeg6 最新库文件
#mkdir /usr/local/jpeg6 //建立 jpeg6 软件安装目录
#mkdir /usr/local/jpeg6/bin //建立存放命令的目录
#mkdir /usr/local/jpeg6/lib //创建 jpeg6 库文件所在目录
#mkdir /usr/local/jpeg6/include //建立存放头文件目录
#mkdir -p /usr/local/jpeg6/man/man1 //建立存放手册的目录
#./configure\
>–prefix=/usr/local/jpeg6/\
>–enable-shared\ //建立共享库使用的 GNU 的 libtool
>–enable-static
//建立静态库使用的 GNU 的 libtool
Make&&make install
安装 freetype 最新库文件
#./configure–prefix=/usr/local/freetype
#make
#make install
安装 autoconf 最新的库文件
#./configure
#make
#make install
安装最新的 GD 库文件
#./configure\//配置命令
>–prefix=/usr/local/gd2/\ //指定软件安装的位置
>–with-zlib=/usr/local/zlib/\ //指定到哪去找 zlib 库文件的位置
>–with-jpeg=/usr/local/jpeg6/\ //指定到哪去找 jpeg 库文件的位置
>–with-png=/usr/local/libpng/\ //指定到哪去找 png 库文件的位置
>–with-freetype=/usr/local/freetype/ //指定到哪去找 freetype 2.x 字体库的位置

make&&make install
安装新版本的 Apache 服务器
#./configure\ //执行当前目录下软件自代的配置命令
>–prefix=/usr/local/apache2\ //指定 Apache 软件安装的位置
>–sysconfdir=/etc/httpd\ //指定 Apache 服务器的配置文件存放位置
>–with-z=/usr/local/zlib/\ //指定 zlib 库文件的位置
>–with-included-apr\ //使用捆绑 APR/APR-Util 的副本
>–enable-so\ //以动态共享对象(DSO)编译
>–enable-deflate=shared\ //缩小传输编码的支持
>–enable-expires=shared\ //期满头控制
>–enable-rewrite=shared\ //基于规则的 URL 操控
>–enable-static-support
//建立一个静态链接版本的支持
#make&&make install
测试 Apache 服务器
检查安装目录
检查配置文件目录
/usr/local/apache2/bin/apachectl start
//启动 Apache
/usr/local/apache2/bin/apachectl stop
//关闭 Apache
#netstat -tnl | grep 80//查看 80 端口是否开启
http://localhost/去访问 Apache 服务器
echo “/usr/local/apache2/bin/apachectl start” >> /etc/rc.d/rc.local
添加自启动
1、源代码包
/usr/local/apache2/bin/apachectl start/stop
2、二进制包
/etc/rc.d/init.d/httpd start
service httpd start
系统服务启动脚本 /etc/rc.d/rc.local /etc/rc.d/rc.sysinit
vi /etc/rc.d/init.d/apache2
/usr/local/apache2/bin/apachectl start
chmod 755 /etc/rc.d/init.d/apache2
1)ln -s /etc/rc.d/init.d/apache2 /etc/rc.d/rc3.d/S100apache2
2)chkconfig –add apache2
chkconfig –level 3 apache2 on
安装 MySQL 数据库管理系统
#groupadd mysql
//添加一个 mysql 标准组
useradd-g mysql mysql
//添加 mysql 用户并加到 mysql 组中
#./configure\
>–prefix=/usr/local/mysql\
>–with-extra-charsets=all
#make&&make install
配置 MySQL 数据库
创建 MySQL 数据库服务器的配置文件
#cp support-files/my-medium.cnf/etc/my.cnf
bin/mysql_install_db–user=mysql
//创建授权表
#chown -R root .//将文件的所有属性改为 root 用户
#chown -R mysql var//将数据目录的所有属性改为 mysql 用户
#chgrp -R mysql .//将组属性改为 mysql 组
#/usr/local/mysql/bin/mysqld_safe–user=mysql&启动数据库
#netstat -tnl | grep 3306//查看 3306 端口是否开启
#bin/mysqladmin version//简单的测试
#bin/mysqladmin variables//查看所有 mysql 参数
#bin/mysql-u root//没有密码可以直接登录本机服务器
mysql>DELETE FROM mysql.user WHERE Host=’localhost’AND User=”;
mysql>FLUSH PRIVILEGES;
mysql>SET PASSWORD FOR’root’@'localhost’=PASSWORD(’123456′);
#bin/mysql-u root-h localhost–p//回车进入 MySQL 客户端
#bin/mysqladmin-u root–p shutdown//关闭 MySQL 数据库
安装最新版本的 PHP 模块
#./configure\//执行当前目录下软件自代的配置命令
>–prefix=/usr/local/php\//设置 PHP5 的安装路径
>–with-config-file-path=/usr/local/php/etc\//指定 PHP5 配置文件存入的路径
>–with-apxs2=/usr/local/apache2/bin/apxs\//告诉 PHP 查找 Apache 2 的地方
>–with-mysql=/usr/local/mysql/\//指定 MySQL 的安装目录
>–with-libxml-dir=/usr/local/libxml2/\//告诉 PHP 放置 libxml2 库的地方
>–with-png-dir=/usr/local/libpng/\//告诉 PHP 放置 libpng 库的地方
>–with-jpeg-dir=/usr/local/jpeg6/\//告诉 PHP 放置 jpeg 库的地方
>–with-freetype-dir=/usr/local/freetype/\//告诉 PHP 放置 freetype 库的地方

>–with-gd=/usr/local/gd2/\//告诉 PHP 放置 gd 库的地方
>–with-zlib-dir=/usr/local/zlib/\//告诉 PHP 放置 zlib 库的地方
>–with-mcrypt=/usr/local/libmcrypt/\//告诉 PHP 放置 libmcrypt 库的地方
>–with-mysqli=/usr/local/mysql/bin/mysql_config\//变量激活新增加的 MySQLi 功能
>–enable-soap\//变量激活 SOAP 和 Web services 支持
>–enable-mbstring=all\//使多字节字符串支持
>–enable-sockets//变量激活 socket 通讯特性
#make&&make install
LAMP 环境整合
#cp php.ini-dist/usr/local/php/etc/php.ini//创建配置文件
vi/etc/httpd/httpd.conf//使用 vi 编辑 apache 配置文件
Addtype application/x-httpd-php.php.phtml#添加这一条
#vi test.php//编辑 test.php 文件
<?php
phpinfo();
?>
安装 Zend 加速器
./install.sh//执行安装
phpMyAdmin 的安装
cp -a phpMyAdmin-3.0.0-rc1-all-languages /usr/local/apache2/htdocs/phpmyadmin
拷贝目录到指定位置并改名为 phpmyadmin
cd /usr/local/apache2/htdocs/phpmyadmin/
cp config.sample.inc.php config.inc.php
phpMyAdmin 的配置
http 身份验证模式
cookie 身份验证模式
config 身份验证模式
[root@php_notes ~]# ls /mnt
[root@php_notes ~]# mkdir /mnt/cdrom
[root@php_notes ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@php_notes ~]# cd /mnt/cdrom/CentOS/
[root@php_notes CentOS]# rpm -ivh cpp-4.1.2-48.el5.i386.rpm
warning: cpp-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing…
########################################### [100%]

1:cpp
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm
warning: kernel-headers-2.6.18-194.el5.i386.rpm: Header V3 DSA signature: NOKEY,
key ID e8562897
Preparing…
########################################### [100%]
1:kernel-headers
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh glibc-headers-2.5-49.i386.rpm
warning: glibc-headers-2.5-49.i386.rpm: Header V3 DSA signature: NOKEY, key ID
e8562897
Preparing…
########################################### [100%]
1:glibc-headers
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh glibc-devel-2.5-49.i386.rpm
warning: glibc-devel-2.5-49.i386.rpm: Header V3 DSA signature: NOKEY, key ID
e8562897
Preparing…
########################################### [100%]
1:glibc-devel
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh libgomp-4.4.0-6.el5.i386.rpm
warning: libgomp-4.4.0-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID
e8562897
Preparing…
########################################### [100%]
1:libgomp
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh gcc-4.1.2-48.el5.i386.rpm
warning: gcc-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing…
########################################### [100%]
1:gcc
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh libstdc++-devel-4.1.2-48.el5.i386.rpm
warning: libstdc++-devel-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY,
key ID e8562897
Preparing…
########################################### [100%]
1:libstdc++-devel
########################################### [100%]
[root@php_notes CentOS]# rpm -ivh gcc-c++-4.1.2-48.el5.i386.rpm
warning: gcc-c++-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID
e8562897
Preparing…
########################################### [100%]
1:gcc-c++
########################################### [100%]
[root@php_notes lamp]# rpm -qa | grep httpd
httpd-manual-2.2.3-43.el5.centos
system-config-httpd-1.3.3.3-1.el5
httpd-2.2.3-43.el5.centos
[root@php_notes lamp]# rpm -qa | grep -i httpd
httpd-manual-2.2.3-43.el5.centos
system-config-httpd-1.3.3.3-1.el5
httpd-2.2.3-43.el5.centos
[root@php_notes lamp]# rpm -e httpd-manual-2.2.3-43.el5.centos –nodeps

[root@php_notes lamp]# rpm -e system-config-httpd-1.3.3.3-1.el5 –nodeps
[root@php_notes lamp]# rpm -e httpd-2.2.3-43.el5.centos –nodeps
[root@php_notes lamp]# rpm -qa | grep -i mysql
mysql-5.0.77-4.el5_4.2
[root@php_notes lamp]# rpm -e mysql-5.0.77-4.el5_4.2 –nodeps
[root@php_notes lamp]# rpm -qa | grep -i php
php-common-5.1.6-27.el5
php-ldap-5.1.6-27.el5
php-cli-5.1.6-27.el5
php-5.1.6-27.el5
[root@php_notes lamp]# rpm -e php-common-5.1.6-27.el5 –nodeps
[root@php_notes lamp]# rpm -e php-ldap-5.1.6-27.el5 –nodeps
[root@php_notes lamp]# rpm -e php-cli-5.1.6-27.el5 –nodeps
[root@php_notes lamp]# rpm -e php-5.1.6-27.el5 –nodeps
[root@php_notes lamp]# ls
autoconf-2.61.tar.gz libmcrypt-2.5.8.tar.gz php-5.2.6.tar.gz
freetype-2.3.5.tar.gz
libpng-1.2.44.tar.gz
phpMyAdmin-3.0.0-rc1-all-languages.tar.gz
gd-2.0.35.tar.gz
libxml2-2.6.30.tar.gz
ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
httpd-2.2.9.tar.gz
mysql-5.0.41.tar.gz
zlib-1.2.5.tar.gz
jpegsrc.v6b.tar.gz
ncurses-5.6.tar.gz
[root@php_notes lamp]# vi /etc/selinux/config
SELINUX=disabled
“/etc/selinux/config” 10L, 447C written
[root@php_notes lamp]# vi tar.sh
ls *.tar.gz > tar.list
for TAR in `cat tar.list`
do
tar -zxf $TAR
done
rm tar.list
“tar.sh” [New] 6L, 85C written
[root@php_notes lamp]# cd libxml2-2.6.30
[root@php_notes libxml2-2.6.30]# ./configure –prefix=/usr/local/libxml2
[root@php_notes libxml2-2.6.30]# make
[root@php_notes libxml2-2.6.30]# make install
[root@php_notes libxml2-2.6.30]# cd ../libmcrypt-2.5.8
[root@php_notes libmcrypt-2.5.8]# ./configure –prefix=/usr/local/libmcrypt
[root@php_notes libmcrypt-2.5.8]# make
[root@php_notes libmcrypt-2.5.8]# make install
[root@php_notes libmcrypt-2.5.8]# cd libltdl/
[root@php_notes libltdl]# ./configure –enable-ltdl-install
[root@php_notes libltdl]# make
[root@php_notes libltdl]# make install
[root@php_notes libltdl]# cd ../../zlib-1.2.5
[root@php_notes zlib-1.2.5]# ./configure
[root@php_notes zlib-1.2.5]# make
[root@php_notes zlib-1.2.5]# make install > /lamp/zlib.msg
[root@php_notes zlib-1.2.5]# cd ../libpng-1.2.44
[root@php_notes libpng-1.2.44]# ./configure –prefix=/usr/local/libpng
[root@php_notes libpng-1.2.44]# make
[root@php_notes libpng-1.2.44]# make install
[root@php_notes libpng-1.2.44]# cd ../jpeg-6b/
[root@php_notes jpeg-6b]# mkdir /usr/local/jpeg6
[root@php_notes jpeg-6b]# mkdir /usr/local/jpeg6/bin
[root@php_notes jpeg-6b]# mkdir /usr/local/jpeg6/lib
[root@php_notes jpeg-6b]# mkdir /usr/local/jpeg6/include
[root@php_notes jpeg-6b]# mkdir -p /usr/local/jpeg6/man/man1
[root@php_notes jpeg-6b]# ./configure –prefix=/usr/local/jpeg6/ –enable-shared
–enable-static
[root@php_notes jpeg-6b]# make
[root@php_notes jpeg-6b]# make install
[root@php_notes jpeg-6b]# cd ../freetype-2.3.5
[root@php_notes freetype-2.3.5]# ./configure –prefix=/usr/local/freetype
[root@php_notes freetype-2.3.5]# make
[root@php_notes freetype-2.3.5]# make install
[root@php_notes freetype-2.3.5]# cd ../autoconf-2.61
[root@php_notes autoconf-2.61]# ./configure
[root@php_notes autoconf-2.61]# make
[root@php_notes autoconf-2.61]# make install
[root@php_notes autoconf-2.61]# cd ../gd-2.0.35
[root@php_notes
gd-2.0.35]#
./configure
–prefix=/usr/local/gd2/
–with-jpeg=/usr/local/jpeg6/
–with-png=/usr/local/libpng/include/png.h
–with-freetype=/usr/local/freetype/
[root@php_notes gd-2.0.35]# make
[root@php_notes gd-2.0.35]# make install
[root@php_notes gd-2.0.35]# cd ../httpd-2.2.9
[root@php_notes
httpd-2.2.9]#
./configure
–prefix=/usr/local/apache2
–sysconfdir=/etc/httpd –with-included-apr –disable-userdir
–enable-so
–enable-deflate=shared
–enable-expires=shared
–enble-rewrite=shared
–enble-static-support
[root@php_notes httpd-2.2.9]# make
[root@php_notes httpd-2.2.9]# make install
[root@php_notes mysql-5.0.41]# cd ../ncurses-5.6
[root@php_notes ncurses-5.6]# ./configure –with-shared –without-debug –without-ada
–enable-overwrite
[root@php_notes ncurses-5.6]# make
[root@php_notes ncurses-5.6]# make install
[root@php_notes ncurses-5.6]# cd ../mysql-5.0.41
[root@php_notes
mysql-5.0.41]#
./configure
–prefix=/usr/local/mysql
–with-extra-charsets=all
[root@php_notes mysql-5.0.41]# make
[root@php_notes mysql-5.0.41]# make install
[root@php_notes mysql-5.0.41]# groupadd mysql
[root@php_notes mysql-5.0.41]# useradd -g mysql mysql
[root@php_notes mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
[root@php_notes mysql-5.0.41]# cd /usr/local/mysql/
[root@php_notes mysql]# bin/mysql_install_db –user=mysql
[root@php_notes mysql]# chown -R root .
[root@php_notes mysql]# chown -R mysql var
[root@php_notes mysql]# chgrp -R mysql .
[root@php_notes mysql]# /usr/local/mysql/bin/mysqld_safe –user=mysql &
[1] 32432
[root@php_notes mysql]# ps -le | grep mysqld
4 S
0 32432 7805 0 85 0 – 1400 wait pts/2
00:00:00 mysqld_safe
4 S 500 32456 32432 5 81 0 – 28778 stext pts/2
00:00:00 mysqld
[root@php_notes mysql]# bin/mysqladmin version
[root@php_notes mysql]# bin/mysql -u root
mysql> exit;
Bye
[root@php_notes mysql]# cd /lamp/php-5.2.6
[root@php_notes
php-5.2.6]#
./configure
–prefix=/usr/local/php
–with-config-file-path=/usr/local/php/etc/
–with-apxs2=/usr/local/apache2/bin/apxs
–with-mysql=/usr/local/mysql/
–with-libxml-dir=/usr/local/libxml2/
–with-png-dir=/usr/local/libpng/
–with-jpeg-dir=/usr/local/jpeg6/
–with-freetype-dir=/usr/local/freetype/
–with-gd=/usr/local/gd2/
–with-mcrypt=/usr/local/libmcrypt/
–with-mysqli=/usr/local/mysql/bin/mysql_config
–enable-soap
–enable-mbstring=all –enable-sockets
[root@php_notes php-5.2.6]# make
[root@php_notes php-5.2.6]# make install
[root@php_notes php-5.2.6]# cp php.ini-dist /usr/local/php/etc/php.ini
[root@php_notes php-5.2.6]# vi /etc/httpd/httpd.conf
313
AddType application/x-httpd-php .php .phtml(在 313 行新加入的)
[root@php_notes
php-5.2.6]#
chcon
-t
texrel_shlib_t
/usr/local/apache2/modules/libphp5.so
[root@php_notes php-5.2.6]# cd /usr/local/apache2/htdocs/
[root@php_notes htdocs]# vi index.php
<?php
phpinfo();
?>

“index.php” [New] 3L, 21C written
[root@php_notes htdocs]# /usr/local/apache2/bin/apachectl restart
[root@php_notes htdocs]# cd /lamp/ZendOptimizer-3.2.6-linux-glibc21-i386
[root@php_notes ZendOptimizer-3.2.6-linux-glibc21-i386]# ./install.sh
[root@php_notes
ZendOptimizer-3.2.6-linux-glibc21-i386]#
ls
-l
/usr/local/php/etc/php.ini
lrwxrwxrwx 1 root root 27 03-10 23:15 /usr/local/php/etc/php.ini ->
/usr/local/Zend/etc/php.ini
[root@php_notes ZendOptimizer-3.2.6-linux-glibc21-i386]# cd ../
[root@php_notes
lamp]#
cp
-a
phpMyAdmin-3.0.0-rc1-all-languages
/usr/local/apache2/htdocs/phpmyadmin
[root@php_notes lamp]# cd /usr/local/apache2/htdocs/phpmyadmin
[root@php_notes phpmyadmin]# cp config.sample.inc.php config.inc.php
[root@php_notes phpmyadmin]# vi config.inc.php
29 $cfg['Servers'][$i]['auth_type'] = ‘http’;
“config.inc.php” 62L, 1847C written
[root@php_notes phpmyadmin]# vi config.inc.php
17 $cfg['blowfish_secret'] = ‘xxxxxxxx’;任意内容
29 $cfg['Servers'][$i]['auth_type'] = ‘cookie’;
[root@php_notes phpmyadmin]# vi config.inc.php
29 $cfg['Servers'][$i]['auth_type'] = ‘config’;
32 $cfg['Servers'][$i]['user'] = ‘root’;
33 $cfg['Servers'][$i]['password'] = ”;此处写入密码
“config.inc.php” 64L, 1925C written
在使用CMS时发现验证码图片不会显示