第一次在FREEBSD下配置环境,感觉好爽,安装的时候也参考了别人的介绍,在此表示感谢。
为了方便以后的操作,现在记录写下来。
安装MYSQL时要注意:
mysql默认数据库放在/var分区里,如果你的数据库很大,那么你需要在前面分区的时候把/var分区分到足够大,
如果你想改变它的安装目录,例如安装到:/usr/db.
#cd /usr/ports/databases/mysql51-server
#make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes SKIP_DNS_CHECK=yes BUILD_OPTIMIZED=yes install clean
#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
#/usr/local/bin/mysql_install_db
#chown -R mysql:mysql /var/db/mysql
#/usr/local/bin/mysqld_safe & //启动mysql 服务
#rehash
#mysqladmin -u root password 'root密码'
#mysql -u root -p
输入root密码,进入mysql>提示符
开始下载并开始安装数据库(上面的with_chraset=all不包含一些字符集的,如GBK,需要安装GBK教程参考:http://blog.haohtml.com/archives/7811)。编译安装完之后,重启机器可以启动mysqld守护进程,可以
#mysql
如果能够见到
mysql>
提示符,说明安装好了。不过,刚装完的mysql默认的数据库连接是100个,远远不能应付大网站的要求。按照这个办法加大吧.
如果用port安装的是mysql55版本的话,在执行mysql_install_db的时候会提示"FATAL ERROR: Could not find ./bin/my_print_defaults "错误,解决办法:http://blog.haohtml.com/archives/9674
最后:在/etc/rc.conf 添加一行命令:
mysql_enable = "YES"
或者直接在命令行中输入命令:
echo 'mysql_enable="YES"' >> /etc/rc.conf
使mysql成为一项服务,随机启动,省去手动启动mysql服务了.
重启和停止MySQL的命令:
/usr/local/etc/rc.d/mysql-server start|stop|restart
如果以后要修改mysql的数据保存路径,请参考:http://blog.haohtml.com/archives/7989
安装APACHE
#cd /usr/ports/www/apache22
#make install clean
以上使用ports方式安装的apache默认目录并非大家习惯使用的/usr/local/apache,而是/usr/local/etc/apache22目录,可以使用以下命令指定apache的安装目录:
#make PREFIX=/usr/local/apache install,
Unix下apache默认的mpm模块用的是prefork,如果更换为worker的话,请编译的时候添加参数:--with-mpm=worker ,prefork与worker的区别见:http://blog.haohtml.com/archives/4656
详细使用方法点击这里查看(另类用法:make deinstall,make clean ,make rmconfig,make reinstall FORCE_PKG_REGISTER="yes")
启动APACHE
/usr/local/sbin/httpd -k start
查看是否安装成功
配置httpd.conf
/usr/local/etc/apache22/httpd.conf
设置根目录
/home/web/blog.haohtml.com
在AddType application/x-gzip .gz .tgz后面加上下面3行:
#php support
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
随后设置网站默认启动页允许为index.php。同样在httpd.conf里编辑,不必退出。找到
DirectoryIndex index.html index.html.var
添加index.php进去,为:
DirectoryIndex index.php index.html index.html.var
还有其它设置,根据需要自行处理
最后:在/etc/rc.conf 添加:
apache22_enable = "YES"
或者直接在命令行中输入:
echo 'apache22_enable="YES"' >> /etc/rc.conf
这样服务器启动时,apache就会启动,注意是apache22_enable,这里是两个数字2.
要注意的:
(在FreeBSD下使用ports安装apache22会出现类似的warming:
No such file or directory: Failed to enable the 'httpready' Accept Filter
解决方法是:
#kldload accf_http (有关kldload命令简介点击这里查看)
并将以下语句写入到/boot/defaults/loader.conf中,以便下次启动自动装载模块
accf_data_load="YES"
accf_http_load="YES"
这是因为不能启动FreeBSD自带的一个基于http端口过滤的模块。这个模块的作用很不错--检查HTTP请求是否完整,符合规则accpt一个Http进程,否则就扔掉。)
安装PHP5
#cd /usr/ports/lang/php5
#make install clean
+--------------------------------------------------------------------+
| Options for php5 5.3.2 |
| +----------------------------------------------------------------+ |
| | [X] CLI Build CLI version | |
| | [X] CGI Build CGI version | |
| | [X] APACHE Build Apache module | |
| | [ ] DEBUG Enable debug | |
| | [X] SUHOSIN Enable Suhosin protection system | |
| | [ ] MULTIBYTE Enable zend multibyte support | |
| | [ ] IPV6 Enable ipv6 support | |
| | [ ] MAILHEAD Enable mail header patch | |
#cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
如果提示php.ini-dist,请使用php.ini-production.
修改 /usr/local/etc/php.ini文件,修改date.timezone = PRC ,解决php中相差八小时的问题.
安装完毕后,安装扩展
cd /usr/ports/lang/php5-extensions/
make install clean
根据需要选择插件包,安装过程中要在弹出的对话框中选中mysql 选项,否则不支持mysql数据库的.建议把mysqli扩展项也选择上,现在用这个扩展的越来越多.
当然包越多所需要的时间越长,大概需要30分钟.测试安装是否成功 .
注意这里先安装了apache,再安装了php,这样安装完php后,将自动在php.ini文件里添加php模块(LoadModule php5_module libexec/apache22/libphp5.so )
安装Zend Optimizer
cd /usr/ports/devel/ZendOptimizer/
make install clean
===> ZendOptimizer-3.3.0.a cannot install: doesn't work with PHP version : 5 (Doesn't support PHP 5).
*** Error code 1
Stop in /usr/ports/devel/ZendOptimizer.
注:如果你用的是FreeBsd8.0版本的可能会出现上面的情况,这里可以使用使用pkg_add命令来安装Zend Optimizer.
#pkg_add -r ZendOptimizer
#rehash
执行结果将类似如下:
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.0-release/Latest/ZendOptimizer.tbz... Done.
pkg_add: warning: package 'ZendOptimizer-3.3.0.a' requires 'libxml2-2.7.5', but 'libxml2-2.7.7' is installed
pkg_add: warning: package 'ZendOptimizer-3.3.0.a' requires 'php5-5.2.11', but 'php5-5.3.2' is installed
********************************************************************************
You have installed the ZendOptimizer package.
Edit /usr/local/etc/php.ini and add:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
NOTE: PHP should be compiled in non-debug mode (default).
********************************************************************************
虽然居然成功了,但也可能用phpinfo时候还是不行的![可惜最后还是不行,得到的教训是,不要用太新的版本,这样资料和环境的支持会很不完善。]
安装phpMyAdmin
# cd /usr/ports/databases/phpmyadmin/
# make fetch
接下来是一些提示,下载。
#cd /usr/ports/distfiles/
#tar xvf phpMyadmin-2-11.9-languages.bz2 -C /home/web/phpmyadmin
设置一下就可以了
设置FTP
安装memcache (服务端)
1.首先安装memcache,因为是在FreeBSD环境下,所以我们采用最简单的ports方式来安装memcache
cd /usr/ports/databases/memcached/
make install clean
ports会自动寻找源进行下载,然后编译安装
安装好memcache以后,编辑/etc/rc.conf文件,
在最后一行加一句
memcached_enable="YES"
然后保存退出。
memcache会随着开机自动启动,手动启动的命令是:
/usr/local/etc/rc.d/memcached start
好了,现在memcache已经安装并启动完毕了。
2.安装pecl::memcache扩展(客户端),这是php的扩展,安装以后可以使用Memcache函数库,php手册上有详细的使用法说明。
cd /usr/ports/databases/pecl-memcache/
make install clean
安装好以后,会自动在/usr/local/etc/php/extension.ini 加上一行 extension=memcache.so
用命令查看一下:
cat /usr/local/etc/php/extensions.ini
如果看见最后一行有 extension=memcache.so
说明已经安装好了
这个时候重新启动一下apache server即可
phpinfo()可以看到memcache扩展的信息。
(责任编辑:IT)