一直都很想尝试将RIA的服务器移到FreeBSD上,因为工作原因,我现在有一个独立控制的服务器,除了不能从互联网上下载以外,其他都可以自由控制。于是我就有了一个尝试和学习FreeBSD的机会。
我安装的是6.2版本,虽然以前有一点点Liunx的经验,但是FreeBSD的上手还是费了我不少时间。在安装了3次系统以后,终于基本上算是上手了。
现在我需要这个服务器需要提供SVN,apache+PHP,FTP,mysql的服务。在此记录我的安装过程。
1,SVN
其实FreeBSD6.2是自带SNV1.4.0版的服务器的。所以SVN就不需要安装了。
但是我遇到一个问题,使用svnserve启动了SVN以后,从别的机子一直都无法连接SVN,每次的错误都是“服务器积极拒绝”,在windows上安装SVN服务器的时候没有遇到这样的问题。但是在svnserve启动的时候加入-listen-host要求监听服务器的IP后,一切都正常了。奇怪,难道SVN默认监听localhost所以当在其他电脑上连接的时候会被拒绝?不清楚。但是问题是解决了。
另外一个问题,我没找到关闭SVN的方法,所以每次关闭SVN,我需要通过“ps x”命令罗列出所有进程和UID,然后找到svnserve的UID,使用kill -r UID来强制的关闭进程。不知道是不是应该有其他的方法呢?
2,mysql
mysql让我郁闷了很久,明明在安装系统的时候提到mysql应用的,为什么我就找到mysql被安装到哪儿了呢?后来才发现,FreeBSD系统带的是mysql应用,是client端的,而mysqld服务器,是要自己另外安装的。
因为没有办法通过port下载,所以我直接下载了mysql的package。我使用的是mysql5.0.45。
使用了无数次google以后,我在mysql的官网上找到了最直接的安装步骤:
shell> pw groupadd mysql
shell> pw useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db -user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe -user=mysql &
关于这个步骤的说明,现在大概已经比较清楚了, 有空的时候再来一一记下。
3,FTP
FreeBSD也自带了一个ftpd工具。虽然功能非常非常非常的弱,但是基本上能满足我内部使用的要求,所以暂时就不安装其他的了。ftpd有两个文件是用来设定权限的,一个是/etc/fptusers,里面罗列了所有不能通过ftp访问系统的用户名。另外一个是/etc/ftpchroot,里面罗列了所有将被锁定在根目录的用户名。ftpchroot文件默认是不存在的,因此需要自己手动建立一个。
这个自带的ftpd系统的目的是为了通过ftp协议方便系统的用户访问系统的文件。因此,每个新建的用户都有默认的ftp权限,可以其根目录是/home下的用户根目录,或者是其他设置的目录。
4,apache+php
Apache和PHP的安装我在网上找到了一个不错的教程,我完全按照这个教程操作,没有任何问题的安装并整合了apache和php。转贴教程如下:
安装Apache要简单点,我这里安装的Apache版本是 httpd-2.0.50,去下载压缩包:
下载回来的包叫做 httpd-2.0.50.tar.gz 我们放在 /usr/local/src目录下。
首先进入目录后解压缩:
# cd /usr/local/src
# tar -zxvf httpd-2.0.50.tar.gz
然后就会得到 httpd-2.0.50目录,我们进入目录
# cd httpd-2.0.50
首先配置:
# ./configure \
? -prefix=/usr/local/apache \ #我们要把Apache安装在那个目录,我们这里装在 /usr/local/apache下
? -enable-shared=max \
? -enable-module=rewrite \
? -enable-module=so
执行上面的命令,如果没有错误信息,证明配置成功,然后进行编译:
# make
一两分钟就编译完了,然后进行安装:
# make install
安装完成后,Apache就存放在 /usr/local/apache目录下了, bin是执行文件的目录,conf是配置文件目录,htdocs是网页的主目录,logs是日志目录。
Apache通过 bin/apachectl或者bin/httpd来控制启动或者停止.
# /usr/local/apache/bin/httpd -k start #启动apache
# /usr/local/apache/bin/httpd -k stop #停止apache
# /usr/local/apache/bin/httpd -k restart #重启apache
然后你可以通过 http://localhost 来测试apache是否安装成功,如果出现apache的页面则安装成功,否则请检查上面的步骤.
安装PHP
首先进入该目录后解压缩:
# cd /usr/local/src
# tar -zxvf php-4.3.8.tar.gz
解压后进入目录:
# cd php-4.3.8
进行配置,这一步比较关键,一定要设置好,特别是要考虑到你要支持什么,比如GD库,xml,mysql等等,如果想知道详细的配置,执行 ./configure -help来获得:
# ./configure \
? -with-apxs2=/usr/local/apache/bin/apxs \
? -disable-debug \ #关闭php内部调试
? -enable-safe-mode \ #打开php的安全模式
? -enable-trans-sid \
? -with-xml \ #支持xml
? -with-mysql \ #支持mysql
? -enable-short-tags \ #支持PHP的短标记
? -with-gd \ #支持GD库
? -with-zlib \ #支持zlib
? -with-jpeg \
? -with-png \
? -enable-memory-limit \
? -disable-posix \
? -with-config-file-path=/usr/local/lib
如果上面的配置没有错误的话,那么应该最后会显示感谢使用PHP等字样,那么证明配置成功,如果上面的配置选项不支持的话,会提示错误.
比如你没有安装mysql,那么-with-mysql就无法使用,所以一定要注意对应选项系统是否能够支持,如果出现错误,那么就先安装对应的程序,或
者去掉相关选项.
配置之后就进行编译:
# make
编译成功后出现”Build complete.”字样,那么就可以进行安装了:
# make install
安装完成后把/usr/local/src/php-4.3.8/php.ini-dist复制到/usr/local/lib/,并重命名为php.ini
# cp /usr/local/src/php-4.3.8/php.ini-dist /usr/local/lib/php.ini
基本到这里PHP就安装成功了,如果中间出现错误,除了在配置的时候没有选对选项之后一般都不出现错误.
整合Apache+PHP
为了让Apache能够直接解析php,我们还要进行一些配置.
首先进入apache的配置文件目录:
# cd /usr/local/apache/conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
应该将以上两句添加在其他AddType之后。
确保文件中有以下一句话,没有就自己添加在所有LoadModule之后。
# /usr/local/apache/bin/httpd start
现在apache就能够运行php了,写个文件测试一下,在/usr/local/apache/htdocs目录下,新建一个phpinfo.php文件,
文件中只有一行代码:
phpinfo(); ?>;
保存此文件, 在你的浏览器中输入http://localhost/phpinfo.php,你应该看到PHP的系统信息。
如果出现错误,比如提示你下灾phpinfo.php,那么apache就是还无法解析php文件,那么请仔细检查以上的操作是否正确。