学习FreeBSD - 初次探索

一直都很想尝试将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,去下载压缩包:

http://httpd.apache.org/download.cgi


下载回来的包叫做 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

我们使用的PHP版本是4.3.8,先去下载: http://www.php.net/downloads.php, 下回来的包叫做 php-4.3.8.tar.gz, 放到/usr/local/src目录下.
首先进入该目录后解压缩:

# 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

然后用vi打开配置文件httpd.conf:

# vi httpd.conf

在httpd.conf文件中,添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

应该将以上两句添加在其他AddType之后。

确保文件中有以下一句话,没有就自己添加在所有LoadModule之后。

LoadModule php4_module modules/libphp4.so

好了,在vi中使用”:wq”保存httpd.conf文件,退出vi。启动apache server:

# /usr/local/apache/bin/httpd start

现在apache就能够运行php了,写个文件测试一下,在/usr/local/apache/htdocs目录下,新建一个phpinfo.php文件,
文件中只有一行代码:

<? phpinfo(); ?>;

保存此文件, 在你的浏览器中输入http://localhost/phpinfo.php,你应该看到PHP的系统信息。
如果出现错误,比如提示你下灾phpinfo.php,那么apache就是还无法解析php文件,那么请仔细检查以上的操作是否正确.

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hello world

Hi,我是Tang Bin,finalbug.org是我的个人站点。这里有更多关于我的内容。English readers please click here to learn more about me and this site.

Categories