源码安装Apache+PHP+Mysql实战

安装的过程整体要分为三大过程:

  • 安装 apache 和 mysql
  • 安装 PHP
  • 安装 memcached php-memcache

安装 apache 和 mysql

第一步 下载 apache、mysql 并且为二者建立对应的安装目录

1
2
3
4
5
6
mkdir –p /opt/soft
cd /opt/soft
wget http://download.chyangwa.com/linux/apache/httpd-2.2.4.tar.gz
wget http://download.chyangwa.com/linux/MySQL/mysql-5.0.19.tar.gz
mkdir –p /usr/local/apache
mkdir –p /usr/local/mysql

第二步 解压以及安装 apache

1
2
3
4
5
6
7
tar –zxvf httpd-2.2.4.tar.gz
tar –zxvf mysql-5.0.19.tar.gz
cd httpd-2.2.4
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-deflate --with-mpm=worker
make && make install
make clean
cd

启动服务:

1
/usr/local/apache/bin/apachectl –k start

然后在地址栏里面输入:本机IP/index.html 如果可以看到“It works!”

就说明 apache 已经安装成功了

第三步 解压以及安装 mysql

建立数据库的用户和用户组:

1
2
groupadd mysql
useradd -g mysql mysql

编译安装数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
 cd mysql-5.0.19
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-staticm --with-embedded-server --with-innodb --with-extra-charsets=gbk,gb2312,big5 --without-debug CFLAGS=-O3 -mcpu=pentium4 CXXFLAGS=-O3 -march=pentium4 -felide-constructors -fno-exceptions -fno-rtti CXX=gcc
make && make install
make clean
cp -r mysql-5.0.19 /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysql
cp support-files/my-medium.cnf /etc/my.cnf
```bash
修改mysql目录权限
```bash
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data

生成mysql系统数据库

1
2
/usr/local/mysql/bin/mysql_install_db --user=mysql&  
/usr/local/mysql/bin/mysqld_safe --user=mysql&

如出现 Starting mysqld daemon with databases from /usr/local/mysql/data 代表正常启动mysql服务了.

make install 结束后,新安装的需要执行 bin/mysql_install_db 文件来安装授权表,然后运行 bin/mysqld_safe 启动 mysql 服务

用 mysql 命令看是否能连接到服务器

在 ./configure 的时候通常都会出现 checking for termcap functions library… configure: error: No curses/termcap library found这个错误!安装上 libncurses5-dev (不同的系统可能名字也有所差异)这个包就好了

安装 PHP

第一步 下载需要的组件(可以根据工作需要定制)

1
2
3
4
5
6
7
8
9
10
11
cd /opt/soft
wget http://download.chyangwa.com/linux/freetype/freetype-2.2.1.tar.gz
wget http://download.chyangwa.com/linux/GD/gd-2.0.33.tar.gz
wget http://download.chyangwa.com/linux/zlib/zlib-1.2.3.tar.gz
wget http://download.chyangwa.com/linux/jpegsrc/jpegsrc.v6b.tar.gz
wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.2.tar.gz
wget http://download.chyangwa.com/linux/gettext/gettext-0.14.5.tar.gz
wget http://download.chyangwa.com/linux/libiconv/libiconv-1.10.tar.gz
wget http://download.chyangwa.com/linux/libxml/libxml-1.8.17.tar.gz
wget http://download.chyangwa.com/linux/PHP/php-5.0.5.tar.gz
wget http://www.libpng.org/pub/png/libpng.html/libpng-1.2.25.tar.gz

为以上的安装包建立目录

1
2
3
4
5
6
7
8
9
10
11
mkdir –p /usr/local/libxml
mkdir –p /usr/local/freetype
mkdir –p /usr/local/gd2
mkdir –p /usr/local/zlib
mkdir –p /usr/local/jpeg
mkdir –p /usr/local/gdbm
mkdir –p /usr/local/gettext
mkdir –p /usr/local/libiconv
mkdir –p /usr/local/libxml
mkdir –p /usr/local/php
mkdir –p /usr/local/libpng

第二步 安装 PHP 相关连的包

  1. 安装 jpeg6 建立目录:如果选择默认安装,可能很顺利,指定路径后,请先创建以下文件夹

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    mkdir –p /usr/local/jpeg6
    mkdir –p /usr/local/jpeg6/bin
    mkdir –p /usr/local/jpeg6/lib
    mkdir –p /usr/local/jpeg6/include
    mkdir –p /usr/local/jpeg6/man
    mkdir –p /usr/local/jpeg6/man1
    mkdir –p /usr/local/jpeg6/man/man1
    cd /opt/soft/
    tar –zvxf jpegsrc.v6b.tar.gz
    cd jpeg6
    ./configure –prefix=/usr/local/jpeg6/ --enable-shared –enable-static
    make
    make install
    make install-lib
    make clean
  2. libpng 包(支持 PNG)

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft/
    tar –zvxf libpng-(version).tar.gz
    cd libpng-(version)
    ./configure –prefix=/usr/local/libpng
    make
    make install
    make clean
  3. 安装 freetype

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft/
    tar –zvxf freetype-2.2.1.tar.gz
    cd freetype-2.2.1
    ./configure –prefix=/usr/local/freetype
    make
    make install
    make clean
  4. 安装 zlib

    1
    2
    3
    4
    5
    6
    7
    8
    cd /root/Software/
    tar –zxvf zlib-1.2.3.tar.gz
    cd zlib.1.2.3
    mkdir /usr/local/zlib
    ./configure –prefix=/usr/local/zlib
    make
    make install
    make clean
  5. 安装 gettext

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft /
    tar –zxvf gettext-0.14.5.tar.gz
    cd gettext-0.14.5
    ./configure –prefix=/usr/local/gettext
    make
    make install
    make clean
  6. 安装 libxml

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft /
    tar –zxvf libxml-1.8.17.tar.gz
    cd libxml-1.8.17
    ./configure –prefix=/usr/local/libxml
    make
    make install
    make clean
  7. 安装 gdbm

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft /
    tar –zxvf gdbm-1.8.2.tar.gz
    cd gdbm-1.8.2
    ./configure –prefix=/usr/local/gdbm
    make
    make install
    make clean
  8. 安装 libiconv

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft /
    tar –zxvf libiconv-1.10.tar.gz
    cd libiconv-1.10
    ./configure –prefix=/usr/local/libiconv
    make
    make install
    make clean
  9. 安装 gd2

    1
    2
    3
    4
    5
    6
    7
    cd /opt/soft /
    tar –zxvf gd-2.0.33.tar.gz
    cd gd-2.0.33
    ./configure –prefix=/usr/local/gd2 –with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype
    make
    make install
    make clean

第三步 安装 PHP

1
2
3
4
5
6
7
8
cd /opt/soft /
tar –zxvf php-5.0.5.tar.gz
cd php-5.0.5.tar.gz
./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-jpeg-dir=/usr/local/jpeg/ --with-gettext –enable-mbstring –with-libxml-dir=/usr/local/libxml –with-png-dir=/usr/local/libpng/ --with-gd=/usr/local/gd2/ --with-freetype-dir=/usr/local/freetype –enable-trace-vars –with-zlib-dir=/usr/local/zlib/ --with-mysql=/usr/local/mysql –with-gdbm-dir=/usr/local/gdbm/ --enable-wddx --with-iconv –enable-sockets –disable-ipv6
make
make install
make clean
cp php.ini-dist /usr/local/php/lib/php.ini

第四步 修改 httpd.conf 文件

编辑 apache 配置文件 httpd.conf

1
vi /usr/local/apache2/conf/httpd.conf

要改的有如下几处:

一般都在 #AddType application/x-tar .tgz 下加一行

1
2
#LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php

如果搜索其它地方没有 LoadModule php5_module modules/libphp5.so 把上面的 # 号去掉

找到 DirectoryIndex index.html index.htm,在后面加 index.php 让它把 index.php 做为默认页

再把 #ServerName 的#号去掉,后面的 IP 改成 0.0.0.0

第五步 测试
在 apache 的根目录下面(/usr/local/apache/htdocs)建立一个文件内容为:

1
2
3
<?php
phpinfo();
?>

保存为 test.php 文件
然后重启 apache 服务器,进行如下操作

1
2
#/usr/local/apache/bin/apachectl –k stop
#/usr/local/apache/bin/apachectl –k start

然后在地址栏里面输入:本机IP/test.php 如果可以看到 php 的版本以及其他相关信息就说明 PHP 已经安装成功了

安装 memcached & php-memcache

第一步 下载相关组件

1
2
3
#wget http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
wget http://pecl.php.net/package/memcache/memcache-1.2.0.tgz
wget http://www.monkey.org/~provos/libevent-1.2.tar.gz

第二步 安装组件

libevent-1.2 安装:
默认安装:

1
2
3
4
5
6
# tar –zxvf libevent-1.2.tar.gz
cd libevent-1.2
./configure
make
make install
make clean

建立一个符号连接

1
ls -s /usr/local/lib/libevent-1.2.so.1 /usr/lib

memcached-1.2.2 安装:

1
2
3
4
5
6
tar –zxvf memcached-1.2.2.tar.gz
cd memcached-1.2.2
./configure --prefix=/usr/local/memcached
make
make install
make clean

第三步 安装 Memcache 的PHP扩展

安装Memcache

1.在http://pecl.php.net/package/memcache 选择相应想要下载的 memcache 版本。

2.安装 PHP 的 memcache 扩展

1
2
3
4
5
6
tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install

3.上述安装完后会有类似这样的提示:

1
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20041030/

4.把php.ini中的extension_dir = “./”修改为

1
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20041030/”

5.添加一行来载入 memcache 扩展:

1
extension=memcache.so

Memcached 的基本设置:

1.启动 Memcache 的服务器端:

1
/usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.55 -p 12000 -c 256 -P /tmp/memcached.pid

-d 选项是启动一个守护进程,
-m 是分配给 Memcache 使用的内存数量,单位是 MB;
-u 是运行 Memcache 的用户;
-l 是监听的服务器 IP 地址;
-p 是设置 Memcache 监听的端口,最好是 1024 以上的端口;
-c 选项是最大运行的并发连接数,默认是 1024;
-P 是设置保存 Memcache 的 pid 文件,这里是保存在 /tmp/memcached.pid;

2.如果要结束 Memcache 进程,执行:

1
kill 'cat /tmp/memcached.pid'

也可以启动多个守护进程,不过端口不能重复

3.然后重启 apache 服务器,进行如下操作

1
2
/usr/local/apache/bin/apachectl –k stop
/usr/local/apache/bin/apachectl –k start

4.Memcache 环境测试:

建立一个文件为 pptest.php 内容如下:

1
2
3
4
5
6
7
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key','this is a test!',0,60);
$val = $mem->get('key');
echo $val;
?>

然后在地址栏里面输入:本机IP/pptest.php 如果可以看到 this is a test! 就说明已经安装成功了