实验环境

linux系统(redhat+apache(源码)+php(源码)+mysql(绿色解压缩后能使用软件)

 

1 首先安装apache

源码包为httpd-2.2.17.tar.bz2

# tar xf httpd-2.2.17.tar.bz2  解压源码包

# cd httpd-2.2.17 //一般都有编译说明文件(如INSTALL),我们在编译的时候最好看看。

#less INSTALL

看过说明文件后,下一步就要执行预编译。

--prefix=指定安装路径

--sysconfdir=指定配置文件的路径

--enable-so 表示启用apache的动态装卸模块功能

--enable-ssl  启用ssl

--enable-track-vars 用于追踪

--enable-rewrite启用URL地址重写

--enable-mods-shared=most 所支持模块的共享方式

--with-zlib    支持zlib数据压缩工具

上面给出的都是常用的,可以看./configure –help 可以查看详细的信息。

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-ssl --enable-track-vars --with-zlib --enable-rewrite --enable-mods-shared=most

预编译没有报错的话就可以编译了

#make

编译过后就可以安装了

#make install

 

安装过后为了能够正常使用还需要改一些配置:

一:要实现和redhat一样启动和关闭服务如service httpd start ,那就需要我们自己写个脚本httpd放在/etc/init.d目录下(由于能力有限,借助于redhat官方提供的httpd脚本自己在改写)其重要部分:

 

#!/bin/bash

. /etc/rc.d/init.d/functions function脚本引入到脚本中

HTTPD_LANG=${HTTPD_LANG-"C"}

 

apachectl=/usr/local/apache/bin/apachectl 指定apachectl路径

httpd=/usr/local/apache/bin/httpd    指定httpd路径

prog=httpd  设置变量prog

pidfile=${PIDFILE-/var/run/httpd.pid} PIDFILE有值则以这个值给pidfile,如果没有则把后面的字符串赋值给你变量pidfile。在这我们需要指定配置文件中定义PidFile "/var/run/httpd.pid"

lockfile=${LOCKFILE-/var/lock/subsys/httpd} 锁文件,不是httpd进程自己产生的

RETVAL=0

STOP_TIMEOUT=${STOP_TIME-10}

start() {

        echo -n $"Starting $prog: "

        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd

        RETVAL=$?

        echo

        [ $RETVAL = 0 ] && touch ${lockfile}

        return $RETVAL

}

stop() {

        echo -n $"Stopping $prog: "

        killproc -p ${pidfile} -d 10 $httpd

        RETVAL=$?

        echo

        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}

}

reload() {

    echo -n $"Reloading $prog: "

    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then

        RETVAL=$?

        echo $"not reloading due to configuration syntax error"

        failure $"not reloading $httpd due to configuration syntax error"

    else

        killproc -p ${pidfile} $httpd -HUP

        RETVAL=$?

    fi

    echo

}

case "$1" in

  start)

        start

        ;;

  stop)

        stop

        ;;

  status)

        status -p ${pidfile} $httpd

        RETVAL=$?

        ;;

  restart)

        stop

        start

        ;;

  condrestart)

        if [ -f ${pidfile} ] ; then

                stop

                start

        fi

        ;;

  reload)

        reload

        ;;

  graceful|help|configtest|fullstatus)

        $apachectl $@

        RETVAL=$?

        ;;

*)

        echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"

        exit 1

esac

 

exit $RETVAL

注意改httpd脚本的权限和chkconfig –add httpdchkconfig httpd on

二,把二进制执行路径加入到PATH环境变量中。

# vim /etc/profile

PATH=$PATH:/usr/local/apache/bin  添加

# . /etc/profile

  重读/etc/profile配置文件

三,把apache头文件引入道/etc/inculd目录下

# ln -sv /usr/local/apache/include /usr/include/apache  使用软链接

四,把库文件放到/etc/ld.so.conf.d目录下,以便被其他服务调用。

# vim /etc/ld.so.conf.d/apache.conf

/usr/local/apache/lib

# ldconfig –v  重读上面的那个文件,使其立即生效。

五,让man文档能够不指定路径就能查看。

# vim /etc/man.config  编辑这文件在里面加一行

MANPATH /usr/local/apache/man

 

到此为止,一个http服务已安装好。

 

 

2,下面安装mysql

在这我们使用绿色不用编译的软件包mysql-5.5.15-linux2.6-i686.tar.gz

# tar xf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

# groupadd -r mysql

# useradd -g mysql mysql  创建mysql用户和组,让mysql目录下的文件属主属组为mysql

# chown -R mysql:mysql mysql

初始化mysql的时候要先创建逻辑卷,然后把数据目录指定为此逻辑卷。

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

初始化话成功后需要把/usr/local/mysql/目录下的文件属主改成root

# chown -R root .

# ll

total 76

drwxr-xr-x  2 root mysql  4096 Nov 29 18:49 bin

-rw-r--r--  1 root mysql 17987 Jul 14 03:09 COPYING

drwxr-xr-x  4 root mysql  4096 Nov 29 18:49 data

drwxr-xr-x  2 root mysql  4096 Nov 29 18:49 docs

drwxr-xr-x  3 root mysql  4096 Nov 29 18:49 include

-rw-r--r--  1 root mysql  7604 Jul 14 03:09 INSTALL-BINARY

drwxr-xr-x  3 root mysql  4096 Nov 29 18:49 lib

drwxr-xr-x  4 root mysql  4096 Nov 29 18:49 man

drwxr-xr-x 10 root mysql  4096 Nov 29 18:49 mysql-test

-rw-r--r--  1 root mysql  2552 Jul 14 03:09 README

drwxr-xr-x  2 root mysql  4096 Nov 29 18:49 scripts

drwxr-xr-x 27 root mysql  4096 Nov 29 18:49 share

drwxr-xr-x  4 root mysql  4096 Nov 29 18:49 sql-bench

drwxr-xr-x  2 root mysql  4096 Nov 29 18:49 support-files

 

mysql的主配置文件

# cp support-files/my-large.cnf /etc/my.cnf  需要把这个文件放到/etc

编译/etc/my.cnf,指定datadir路径,同时修改thread_concurrency = 2

thread_concurrency = 2

datadir = /mydata/data

 

mysql的服务控制脚本mysql.server  这个脚本要求mysql的安装路径必须是/usr/local/mysql/目录下。

# cp support-files/mysql.server /etc/init.d/musqld

下面的操作同上面的apache安装一样,这里只写过程了哈

# chkconfig --add mysqld

# chkconfig  mysqld on

# vim /etc/profile

PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin

# . /etc/profile

# ln -sv /usr/local/mysql/include /usr/include/mysql

create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'

# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib添加这个路径

# ldconfig -v

# vim /etc/man.config

MANPATH /usr/local/mysql/man添加

测试

root@localhost /]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.15-log MySQL Community Server (GPL)

 

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

 

3,下面安装php

安装包php-5.3.6.tar.bz2

操作步骤和apache一样,在这只写操作过程和结果

# tar xf  php-5.3.6.tar.bz2

--with-apxs2=/usr/local/apache/bin/apxs php编译成apache的模块

--with-mysql=/usr/local/mysql 自动编译访问mysql的驱动

-with-mysqli=/usr/local/mysql/bin/mysql_config

--with-zlib

--enable-track-vars

--enable-mbstring=all

下面的几项是让php实现绘图功能

  --with-xml

  --with-png

   --with-jpeg

   --with-freetype

    --with-gd

#../confgure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config  --enable-mbsring=all --enable-track-vars --with-png --with-xml --with-freetype --with-gd --with-zlib

#make

#make  install

 

 

安装完成后 ,要做以下配置

[root@mail php-5.3.6]# cp php.ini-production /usr/local/php5/lib/php.iniphp提供配置文件

# vim /etc/httpd/httpd.conf  添加支持.php网页的新类型, 网站主目录加上index.php

AddType application/x-httpd-php .php

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

<IfModule dir_module>

    DirectoryIndex index.php index.html

</IfModule>

 

 

定义php测试页

# cd /usr/local/apache/htdocs/

# vim index.php

加入如下内容测试php网页

<?php

phpinfo();

?>

加入下面内容测试php能否连上mysql

<?php

$link=mysql_connect(localhost,'root','');

if ($link)

  echo "Success";

else

  echo "Failure"

?>