Author: MDZ(梅拯拯) Date: 2007-04-25
以前我安装 Apache+PHP+MySQL 都是来源于 Linux 软件库,安装起来非常方便:
$ sudo apt-get install apache2 mysql-server-5.0 php5 php5-common 等等,就可以使用了,根本不需要配置什么东西。不过现在遇到了 MagickWand,想轻松点都不行了。算了,自己重新安装配置 Apache + PHP 吧。
首先按照 http://www.supsite.net 上的一篇“Linux 下安装最新 Apache2.0.52 + PHP5 + GD2 + MySQL 等”文章所指示的下载下列软件包:
1. httpd-2.0.59.tar.bz2 (httpd-2.2.4.tar.bz2 应该也可以吧,我不敢下,因为在 Windows 下它与 PHP5 配合有问题) 2. php-5.2.1.tar.bz2 3. MySQL (我懒得下载和编译了,它又是那么庞大~~) 4. freetype-2.3.4.tar.gz (FreeType2 字体支持) 5. gd-2.0.34.tar.bz2 (GD2 库,不支持 gif。我用不到 gif,有需要的朋友可以下载非官方的支持 gif 的 gd2 库) 6. jpegsrc.v6b.tar.gz (JPEG 图像支持) 7. libpng-1.2.16.tar.gz (PNG 图像支持) 8. libxml2-2.6.28.tar.gz (XML 支持) 9. zlib-1.2.3.tar.gz (Zlib 库,许多东东都用得到它) 10. ImageMagick-6.3.3-10.tar.bz2 (ImageMagick,MagickWand 需要) 11. MagickWandForPHP-1.0.4.tar.bz2 (MagickWand 本身) 12. ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz (PHP 加速器,可要可不要) 另外要保证 gcc、lex/flex、yacc/bison 安装好并正常运行,编译过程中用得到它们。Linux 下一般安装的是 flex 和 bison,因为它们是自由的。
==========================
第一步、安装 MySQL MySQL 相对独立,没有像 Apache 和 PHP 关联度那么密切,所以先安装它,在 Ubuntu 下很简单:
$
sudo apt-get install mysql-server-5.0 [Update]
再加入下句,否则配置 PHP 的过程中会提示找不到该有的 MySQL 头文件:
$ sudo apt-get install libmysqlclient15-dev
[/Update] 就可以安装上去了。在终端中可以使用
$
mysql -u root 测试是否能进入 MySQL 的交互式终端:"mysql>",可以的话,说明已经安装好并运行了。
启动和停止 MySQL 服务器可以使用下面的命令:
$
sudo /etc/init.d/mysql start # 启动 mysql
$
sudo /etc/init.d/mysql stop # 停止 mysql
$
sudo /etc/init.d/mysql restart # 重启 mysql
注意,Ubuntu 的 apt 源中的 MySQL 安装不是常规的,它把文件拆放在不同的目录下面。/usr/lib/mysql 目录下存放着 MySQL 的模块文件,我们待会儿用得着。
[Update]
MySQL 的手动安装(参考:http://www.itlearner.com/article/2006/3540.shtml):
1. 下载自带 glibc23 库的版本,如 mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
2. 直接解压到 /usr/local/mysql
3. 使用以下命令建立“mysql”用户和组:
$ sudo groupadd mysql
$ sudo useradd mysql -g mysql
4. 进入 MySQL 目录:
$ cd /usr/local/mysql
5. 设置权限:
$ sudo chown -R root . # 设定root能访问/usr/local/mysql
$ sudo chown -R mysql data # 设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件
$ sudo chown -R mysql data/. # 设定mysql用户能访问/usr/local/mysql/data下的所有文件
$ sudo chown -R mysql data/mysql/. # 设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件
$ sudo chgrp -R mysql . # 设定mysql组能够访问/usr/local/mysql
6. 运行mysql:
$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
[/Update]==========================
第二步、安装杂项软件和库文件 1. libxml
$
tar -zxvf libxml2-2.6.28.tar.gz $
cd libxml2-2.6.28 $
sudo ./configure $
sudo make $
sudo make install 2. zlib
$
tar -zxvf zlib-1.2.3.tar.gz $
cd zlib-1.2.3 $
sudo ./configure --prefix=/usr/local/zlib2 $
sudo make $
sudo make install 3. jpeg
$
tar -zxvf jpegsrc.v6b.tar.gz $
cd jpeg-6b $
sudo ./configure --prefix=/usr/local/jpeg6 $
sudo make 建立相关目录,再安装:
$
sudo mkdir /usr/local/jpeg6 $
sudo mkdir /usr/local/jpeg6/include $
sudo mkdir /usr/local/jpeg6/lib $
sudo make install-lib $
sudo make install [Update]
如果还有错误提示,则再建立一下目录:
$ sudo /usr/local/jpeg6/bin
$ sudo /usr/local/jpeg6/man
$ sudo /usr/local/jpeg6/man1
[/Update] 4. libpng
$
tar -zxvf libpng-1.2.16.tar.gz $
cd libpng-1.2.16 $
sudo ./configure --prefix=/usr/local/libpng2 $
sudo make $
sudo make install 5. freetype
$
tar -zxvf freetype-2.3.4.tar.gz $
cd freetype-2.3.4 $
sudo ./configure --prefix=/usr/local/freetype2 $
sudo make $
sudo make install 6. gd-lib
$
tar -jxvf gd-2.0.34.tar.bz2 $
cd gd-2.0.34 $
sudo ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/libpng2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2 $
sudo make $
sudo make install==========================
第三步、安装 Apache $
tar -jxvf httpd-2.0.59.tar.bz2 $
cd httpd-2.0.59 $
sudo ./configure --prefix=/usr/local/apache2 --enable-module=so $
sudo make $
sudo make install==========================
第四步、第一次编译安装 PHP,释放出软件 phpize $
tar -jxvf php-5.2.1.tar.bz2 $
cd php-5.2.1 $
sudo ./configure $
sudo make
[Update]
$ sudo make install (之前落掉这一句了,抱歉)
$ sudo make clean (这句比较关键,不然再次编译后启动 Apache 时会说找不到 php5 模块)
[/Update]==========================
第五步、安装 ImageMagick 和 MagickWand 1. 先安装 ImageMagick,参考文章“安装 ImageMagick 小记”:
$
tar -jxvf ImageMagick-6.3.3-10.tar.bz2 $
cd ImageMagick-6.3.3-10 $
sudo ./configure --enable-shared --enable-lzw --with-modules --prefix=/usr/local/ImageMagick $
sudo make $
sudo make install 其中 --enable-lzw 是打开 lzw 压缩开关
2. 安装 MagickWand for PHP
$
tar -jxvf MagickWandForPHP-1.0.4.tar.bz2 $
cp -r MagickWandForPHP-1.0.4 {PHP_SRC_DIR}/ext/magickwand 这里
{PHP_SRC_DIR} 指的是你存放 php 源代码的目录。
$
cd {PHP_SRC_DIR}/ext/magickwand/ $
phpize==========================
第六步、重新编译安装 PHP,加入 magickwand 模块、联接 Apache、MySQL 等 $
cd {PHP_SRC_DIR} $
rm -rf ./configure # 删除 configure 配置文件,也可以改名以防万一
$
./buildconf --force # 重新生成 configure 配置文件,现在文件中已经有 magickwand 的“指标”了
重新配置 php:
$
sudo ./configure \ --prefix=/usr/local/php \ # 安装路径
--with-apxs2=/usr/local/apache2/bin/apxs \ # 指定 Apache
--with-jpeg-dir=/usr/local/jpeg6/ \ # JPEG 支持
--with-png-dir=/usr/local/libpng2/ \ # PNG 支持
--with-gd=/usr/local/gd2/ \ # GD 库支持
--with-freetype-dir=/usr/local/freetype2/ \ # FreeType2 字体支持
--enable-trace-vars \ --with-zlib-dir=/usr/local/zlib2/ \ # Zlib 库支持
--with-mysql=/usr/lib/mysql \ # MySQL 支持
--with-magickwand=/usr/local/ImageMagick # MagickWand 支持
编译和安装:
$
sudo make $
sudo make install 拷贝配置文件:
$
sudo cp php.ini-dist /usr/local/php/lib/php.ini==========================
第七步、配置服务器,使它能够解析运行 PHP 文件 $
sudo zile /usr/local/apache2/conf/httpd.conf # 我比较喜欢 zile 编辑器,可以选用其它的。
按照以下提示的修改:
1. 在
#AddType application/x-tar .tgz 下面加一行
AddType application/x-httpd-php .php 2. 如果看见
# LoadModule php5_module modules/libphp5.so 则去掉 “#” 号。如果没 “#” 号,那再好不过了。
3. 找到
DirectoryIndex index.html index.html.var 行,在后面添加 “
index.php”,表示服务器按次序把上面的列表作为默认页
4. 找到
# don't use Group #-1 on these systems! 把它下面的用户名和组改为
User apache
Group apache 5. 找到
# ServerName 把 “#”去掉,后面的 IP 改成自己的 IP
6. 找到
DocumentRoot "/usr/local/apache2/htdocs" 把路径改为自己存放网页文件的路径
保存 httpd.conf 文件。
启动或停止 apache 可以参考下列命令:
$
sudo /usr/local/apache2/bin/apachectl start # 运行 apache
$
sudo /usr/local/apache2/bin/apachectl stop # 停止 apache
$
sudo /usr/local/apache2/bin/apachectl restart # 重启 apache
[Update]
如果运行上述的命令出现“httpd: bad user name apache”错误的话,表示系统中无 “apache”组和 “apache”用户名。用下列语句添加:
$ groupadd apache (添加“apache”组)
$ useradd apache -g apache (添加“apache”组下的用户“apache”)
[/Update]==========================
现在启动 Apache 和 MySQL 服务器应该可以解析运行 PHP 和让 PHP 联接 MySQL 数据库了。并且拥有了使用 GD2 和 MagickWand 的权利!
最后,可以使用 ZendOptimizer 加速 PHP 速度,安装有提示的,不说了!
Enjoy PHPing!