[目录]
1. 安装Mysql
2. 安装Apache
3. 安装PHP
4. 配置httpd.conf
1. 安装Mysql
================
参考文档1:《MySQL Reference Manual》 -> "Installing MySQL on Other Unix-Like Systems"
参考文档2:源代码自带的 INSTALL-SOURCE 文件
1.1 编译安装
# groupadd mysql
# useradd -g mysql -d /usr/local/lib/mysql -s /sbin/nologin mysql
# tar zxvf mysql-x.x.x
# cd mysql-x.x.x
# ./configure --prefix=/usr/local/lib/mysql --localstatedir=/usr/local/lib/mysql/data --with-charset=utf8 --with-extra-charsets=all
# make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
# cd /usr/local/lib/mysql
# mkdir data
# bin/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# echo "/usr/local/lib/mysql/bin/mysqld_safe &" >> /etc/rc.local
# /usr/local/lib/mysql/bin/mysqld_safe --user=mysql &
1.2 进入mysql的DBMS
# /usr/local/lib/mysql/bin/mysql -u root -p
enter password:
*注:默认mysql的root用户口令为空
1.3 mysql数据在页面显示为中文乱码的问题
--with-extra-charsets=all是解决中文乱码的关键参数,它的作用是安装额外的字符集,其中即包括gbk等中文字符集。在创建数据库时手工指定字符集为gbk,这样就可以保证同样使用gbk字符集的HTML页面正常地显示中文了:
create database default character set gbk collate gbk_chinese_ci;
2. 安装Apache
===============
2.1 编译安装
# tar zxvf httpd-x.x.x.tar.gz
# cd httpd-x.x.x
# ./configure --prefix=/usr/local/lib/apache --enable-so --enable-mods-shared=all --enable-rewrite=shared --enable-speling=shared
# make
# make install
2.2 apache启动停止命令
# /usr/local/lib/apache/bin/apachectl start
# /usr/local/lib/apache/bin/apachectl stop
# /usr/local/lib/apache/bin/apachectl restart
2.3 自动运行
# echo "/usr/local/lib/apache/bin/apachectl start" >> /etc/rc.local
2.4 apache启动时可能出现的错误
[Fri Dec 30 09:35:01 2005] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
解决方法
---------
step-1)
编辑/etc/hosts和/etc/rc.conf, 配置主机域名. 例如:
# cat /etc/hosts
127.0.0.1 localhost
192.168.177.130 freebsd6 freebsd6.local
# cat /etc/rc.conf
hostname="freebsd6.local"
...
step-2)
---------
on FreeBSD, you need to add a kernelmodule
kldload accf_http
grep accf /boot/defaults/loader.conf
accf_data_load="NO" # Wait for data accept filter
accf_http_load="NO" # Wait for full HTTP request accept filter
add the second to /boot/loader.conf with 'YES' to enable this permenately.
3. 安装PHP
============
步骤:
3.1 安装libxml2-x.x.x.tar.gz
3.2 安装libiconv-x.x.x.tar.gz
3.3 安装gd-x.x.x.tar.gz
3.4 安装php
3.1 安装libxml2
# tar zxvf libxml2-x.x.x.tar.gz
# cd libxml2-x.x.x
# ./configure && make && make install
http://xmlsoft.org/
3.2 安装libiconv
# tar zxvf libiconv-x.x.x.tar.gz
# cd libiconv-x.x.x
# ./configure && make && make install
http://www.gnu.org/software/libiconv/
3.3 安装gd
gd需要以下模块:
. zlib-x.x.x.tar.gz
. libpng-x.x.x.tar.gz
3.3.1 安装zlib
# tar zxvf zlib-x.x.x.tar.gz
# cd zlib-x.x.x
# ./configure && make && make install
默认情况zlib被安装到/usr/local/include/
http://directory.fsf.org/zlib.html
http://www.zlib.net/
3.3.2 安装libpng
# tar zxvf libpng-x.x.x.tar.gz
# cd libpng-x.x.x
# ./configure && make && make install
默认情况libpng被安装到/usr/local/include/libpng/
http://www.libpng.org/pub/png/libpng.html
3.3.3 安装gd
# tar zxvf gd-x.x.x.tar.gz
# cd gd-x.x.x
# ./configure && make && make install
默认情况gd被安装到/usr/local/include/
http://www.boutell.com/gd/
*注:我遇到过gd_png.c找不到png库文件的情况, 这时要手工把png.h和pngconf.h两个文件拷贝到gd_png.c所在目录就可以了。
3.4 安装PHP
# tar zvxf php-x.x.x.tar.gz
# cd php-x.x.x
# ./configure --prefix=/usr/local/lib/php --with-mysql=/usr/local/lib/mysql --with-apxs2=/usr/local/lib/apache/bin/apxs --with-libxml-dir=/usr/local/include/libxml2/libxml --enable-mbstring --with-gd --with-zlib
[编译中遇到点问题(附后1): like
http://bugs.php.net/bug.php?id=31193
./configure CFLAGS=-liconv --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/include/libxml2/libxml --enable-mbstring --enable-sockets --enable-ftp --with-gd --with-zlib --without-iconv]
# make
# make install
# cp php.ini-dist /usr/local/lib/php/lib/php.ini
3.5 配置php.ini
# vi /usr/local/lib/php/lib/php.ini
...
default_charset = "gbk"
session.auto_start = 1
max_execution_time = 300 (满足长时间数据计算页面的需要,默认为30)
...
4. 配置httpd.conf
====================
4.1 修改ServerName
ServerName 127.0.0.1:80 (这个选项影响apache的启动)
4.2 支持index.php
找到"DirectoryIndex index.html"
在"index.html"后面加入"index.php"
DirectoryIndex index.html index.php
4.3 支持php
找到, 在AddType application/x-gzip .gz .tgz下面加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
4.4 增加目录设置
找到 ... , 在下面加入
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
4.5 增加新的脚本目录
找到 ... , 在下面加入
AllowOverride None
Options None
Order allow,deny
Allow from all
4.6 增加目录别名(alias)
找到 ... , 在中间区域加入
Alias /new-doc "/usr/local/lib/apache/htdocs/new-doc"
ScriptAlias /new-cgi "/usr/local/lib/apache/htdocs/new-cgi"
----------------------------------------------------------------
2005/04/09 16:00 - 2005/04/10 13:16 Created by Wandering
2005/12/29 23:28 Modified by Wandering
2006/07/17 23:56 Modified by Wandering
2008/11/22 22:54 Wandering 修改文件名,重修订内容
2008/11/23 19:07 Wandering 增加mysql解决中文乱码方法
本文出自 “Wandering's Blog” 博客,请务必保留此出处http://wandering.blog.51cto.com/467932/114472
1:
/home/richard/Download/php-5.2.8/ext/gd/libgd/gdkanji.c:350: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/gd/libgd/gdkanji.c:365: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/gd/libgd/gdkanji.c:381: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_appendl':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:348: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:385: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_decode':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1354: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1465: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1468: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1823: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1826: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:603: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:626: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:660: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_substr':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:723: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:802: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:806: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:747: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:755: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o: In function `php_iconv_string':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:441: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:453: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:467: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:478: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_strpos':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:851: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:879: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:993: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_encode':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1043: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1057: undefined reference to `libiconv_open'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1176: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1128: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1160: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1228: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1259: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1316: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1319: undefined reference to `libiconv_close'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:1303: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_dtor':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:2465: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_append_bucket':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:2615: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:2615: undefined reference to `libiconv'
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:2537: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/home/richard/Download/php-5.2.8/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
--转自