最简洁的方式是使用packages的安装方式,因为没有必要再将别人编译过的packages重新编译一遍,因为那些生成的packages是一模一样的,除非你不想用默认参数,也就是用特殊的编译参数控制编译过程,本例中,因为稳定版的AMP和空间上的一样,所以我们采用稳定版构建NAMP,但是如果你是新的环境,完全可以使用当前版,而且当前版的packages维护似乎好一些,根据lionux兄的建议,使用pkgin来安装packages比较省心,当然你可能也有你自己的喜欢的工具,这里采用手动编译仅是作为例子。
一. 需要进行的网络设置:
1. 建立一个文件/etc/myname,内容如如下:
代码: 全选
www.gobsd.org
代码: 全选
inet 192.168.1.36 netmask 0xffffff00
代码: 全选
inet 192.168.1.38 netmask 0xffffff00
代码: 全选
auto_ifconfig=yes
代码: 全选
192.168.1.38 www.gobsd.org gobsd
192.168.1.36 www.9971.us 9971
代码: 全选
defaultroute=192.168.1.1
代码: 全选
nameserver 192.168.0.1
6. 在 /etc/mygate里设置网关:
代码: 全选
192.168.1.1
二. 更新为稳定版:
方法略,注意这里原文的NetBSD指南上有问题,中文翻译仅是直译,未作校正,实际上更新为稳定版,应该用 -r netbsd-5-0 ,多谢lionux兄指正。
三. 设置pkgsrc路径:
因为是第一次获取pkgsrc的源代码,我们直接从ftp上将源代码文件拖下来,以后的更新还是cvs来得快,关于版本和文件的说明请读者自己查阅指南,我们这里是"pkgsrc-2010Q1.tar.gz'这个文件,这里的Q代表英文的quarter(四分之一),你也可以按时间理解成季度的意思,也就是每个季度会出一个新版本。运行如下命令下载此文件并解压:
代码: 全选
# ftp ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2010Q1/pkgsrc-2010Q1.tar.gz
# tar -xzf pkgsrc-20xxQy.tar.gz -C /usr
首先我们修改一下 /etc/mk.conf文件,加上以下行:
代码: 全选
PKG_RCD_SCRIPTS=YES
0. 先生成安全漏洞检查文件,/var/db/pkg/pkg-vulnerabilities:
代码: 全选
# /usr/sbin/pkg_admin -K /var/db/pkg fetch-pkg-vulnerabilities
代码: 全选
# cd /usr/pkgsrc/www/apache22
# make install clean clean-depends
接下来是要配置apache,编辑 /usr/pkg/etc/httpd/httpd.conf
修改两行:
代码: 全选
Listen www.gobsd.org:80
代码: 全选
ServerName www.gobsd.org:80
要设置为apache开机启动,在/etc/rc.conf里加入:
代码: 全选
apache=yes
代码: 全选
# apachectl start
代码: 全选
# /etc/rc.d/apache start
2.安装MySQL
leo提示:注意你的myname,hostname,和ServeName这三者是否一致,否则apache起不来。
代码: 全选
# cd /usr/pkgsrc/databases/mysql5-server
# make install clean clean-depends
代码: 全选
mysqld=yes
代码: 全选
[mysqld]
port=3306
bind-address=127.0.0.1
找到客户端配置[client] 在下面添加
default-character-set=utf8 (默认字符集为utf8)
在找到[mysqld] 添加
default-character-set=utf8 (默认字符集为utf8)
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,这样让mysql数据库以utf8编码初始化连接)
此外请注意最后一行的“bind-address=127.0.0.1‘,如果你要从远程连接该数据库,例如在windows下使用mysql提供的MySQLAdministrator工具来连接这个数据库,那么这里不能用这行,必须要注释掉。要远程连接还需要注释掉一行:
代码: 全选
#skip-networking
此外,如果你是安装新论坛,上面的设置已经足矣了,但是你要恢复老论坛时,可能发现你的数据库无法导入,这里还是NetBSD里mysql的限制导致的,在/etc/my.cnf文件里加上如下相应的内容以便放开上传上限、以下是我的文件:
代码: 全选
www$ cat /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'
port=3306
#bind-address=127.0.0.1
key_buffer_size=512M
max_allowed_packet=2M
代码: 全选
# /etc/rc.d/mysqld start
代码: 全选
# /usr/pkg/bin/mysqld_safe &
# /usr/pkg/bin/mysqladmin -u root -p password 'gobsd'
Enter password:
3. 安装php5和apache的php模块:
代码: 全选
# cd /usr/pkgsrc/lang/php5/
# make install clean clean-depends
# cd /usr/pkgsrc/www/ap-php
# make install clean clean-depends
代码: 全选
LoadModule php5_module lib/httpd/mod_php5.so
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php .php3
代码: 全选
DirectoryIndex index.html
代码: 全选
DirectoryIndex index.php index.html
代码: 全选
# cd /usr/pkgsrc/databases/php-mysql/
# make install clean clean-depends
代码: 全选
extension=mysql.so
5. 安装Imagemagick
ImageMagick的图像处理比用GD速度快,效果好,安装也很简单:
代码: 全选
# cd /usr/pkgsrc/graphics/ImageMagick
# make install clean clean-depends
用户可以在后面的discuzx的安装后,进行图像处理引擎的设置。
如果你想使用GD生成图形,这样:
代码: 全选
# cd /usr/pkgsrc/graphics/p5-GD
# make install clean clean-depends
discuz是很强劲的社区程序,目前刚发行了Discuz! X1,我们就试试这个,你安装discuz7.2也一样,请参考原来的帖子。
下载地址:
http://www.comsenz.com/downloads/install/discuzx1
我们这里使用utf-8版本。
解压后将upload目录下的内容上传到/usr/pkg/share/httpd/htdocs,也就是你的web主目录。这里请注意,如果你是使用root的身份上传的,则需要权限设置,你需要先将 /usr/pkg/share/httpd/htdocs这个目录及其下子目录及文件的权限设置为755,运行以下的命令:
代码: 全选
# chmod -R 755 /usr/pkg/share/httpd/htdocs
将/usr/pkg/etc/php.ini中的short_open_tag设置为on,否则无法安装discuzx1, 如果你此时已经启动了apache,则需要重新启动以应用此设置:
代码: 全选
# apachectl stop
# apachectl start
代码: 全选
www# mysql -p
Enter password:gobsd.org
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.90 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database discuzx default charset utf8;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on discuzx.* to 'discuzxuser'@localhost identified by \ 'discuzxtest';
Query OK, 0 rows affected (0.03 sec)
mysql> quit
Bye
www#
接下来我是采用远程安装的方式,在浏览器窗口输入http://192.168.1.38
出现如下画面:
![图片](http://www.gobsd.org/ddd/discuzxonnb/001-1.png)
继续
![图片](http://www.gobsd.org/ddd/discuzxonnb/002-1.png)
将图中提示的目录及文件的属性设置为777,否则无法继续安装,方法同上。
修改好后就没有问题了,点击下一步继续:
![图片](http://www.gobsd.org/ddd/discuzxonnb/004-1.png)
出现安装向导画面,选全新安装,点击下一步。
![图片](http://www.gobsd.org/ddd/discuzxonnb/005-1.png)
这里输入刚才我们设置的数据库信息
![图片](http://www.gobsd.org/ddd/discuzxonnb/006-1.png)
这里随你了,我是选择跳过。
![图片](http://www.gobsd.org/ddd/discuzxonnb/007-1.png)
OK,所有的设置全部结束,你可以使用discuzx社区程序了。
此外请注意:请自行设置数据库的安全处理,也就是将不用的权限全禁止了,此外如果需要ImageMagick做缩图处理,请单独安装这个软件,然后再discuzx1里给出软件的具体位置就可以了。再有如果需要做网页静态化处理,无需单独安装apache的rewrite模块,因为默认的安装已经包含了这个模块,你只需要开启它就可以了。
总结:
1. 安装和设置相对OpenBSD来说很简单,如果你用package将更容易,连编译的时间全省了,因为没有OpenBSD下的chroot限制,各个软件的设置时考虑的因素比较少。
2. 如果你想使用Mysqladministrator等工具链接到远程的数据库进行数据的备份和恢复等工作,需要修改/etc/my.cnf文件,将里面的:
代码: 全选
bind-address=127.0.0.1
此外在数据库授权时,可以采用如下的方式以便允许远程连接到数据库上,我们这里假设你要通过192.168.1.33连接到数据库所在主机:
代码: 全选
mysql>grant all on discuzx.* to discuzxuser@192.168.1.33 identified by 'discuzxtest';
代码: 全选
mysql>grant all on discuzx.* to gobsd@'%' identified by 'discuzxtest';
3. 静态化部署是如今社区程序的一个重要标志,如果你的社区采用的SEO的措施,就更便于被搜索引擎收录,要在NetBSD上开启apache的静态化功能,仅需在httpd.conf上启用它就可以了,因为默认的编译已经将rewrite模块内嵌在apache里面了。
代码: 全选
allowoverride all
rewriteengine on
4. 此外,本例中web server和mysql在同一样主机上,根据mysql的建议,应该在my.cnf里面禁用TCL连接以保障安全。
5. 因为每个论坛程序对数据库的要求不一样,请自行参考程序说明文档以进行安全的设置。本例中,给了该用户全部的权限,你需要根据社程序的具体要求进行设置,没有必要的权限一般不要轻易给予,这样才能尽可能地确保社区的安全。
6. 如果你没有在 /etc/mk.conf 里加上以下行:
代码: 全选
PKG_RCD_SCRIPTS=YES
代码: 全选
# cp /usr/pkg/share/examples/rc.d/apache /etc/rc.d
# cp /usr/pkg/share/examples/rc.d/mysqld /etc/rc.d
如果你喜欢直接packages安装,也可以采用lionux推荐的pkgin这个工具,很好用,唯一需要注意的地方是packages的名称可能与pkgsrc目录里的不同,此外,有时可能pakcages之间有冲突,这个我暂时就不知道如何解决了。
我在这里把通过pkgin安装的packages列出来,里面的mg和ncurses不是其中所需的packages:
代码: 全选
nb# pkg_info
pkgin-0.3.3.1 Apt / yum like tool for managing pkgsrc binary packages
sqlite3-3.6.23.1 SQL Database Engine in a C Library
ncurses-5.7nb3 CRT screen handling and optimization package
mg-20090107 Small, fast, public domain EMACS style editor
perl-5.10.1nb1 Practical Extraction and Report Language
apr-1.3.9 Apache Portable Runtime
apr-util-1.3.9 Apache Portable Runtime utilities
apache-2.2.15 Apache HTTP (Web) server, version 2.2
xmlcatmgr-2.2nb1 XML and SGML catalog manager
jpeg-8nb1 IJG's jpeg compression utilities
tiff-3.9.2nb2 Library and tools for reading and writing TIFF data files
png-1.2.43 Library for manipulating PNG images
libxml2-2.7.6 XML parser library from the GNOME project
libltdl-2.2.6b Generic shared library support (libltdl abstraction library)
lcms-1.18.0.1nb2 Little Color Management System -- a color management library
jasper-1.900.1nb5 Software-based reference implementation of the JPEG-2000 codec
ImageMagick-6.5.7.9nb1 Package for display and interactive manipulation of images
mysql-client-5.1.47 MySQL 5, a free SQL database (client)
unzip-6.0 List, test and extract compressed files in a ZIP archive
mysql-server-5.0.90 MySQL 5, a free SQL database (server)
libmm-1.4.2nb1 Portable abstraction layer for shared memory
lynx-2.8.7nb1 Alphanumeric display oriented World-Wide Web Client
openssl-0.9.8mnb2 Secure Socket Layer and cryptographic library
php-5.2.13nb1 PHP Hypertext Preprocessor version 5
ap22-php5-5.2.13nb1 Apache (apache22) module for PHP5
php5-mysql-5.2.13 PHP extension for MySQL databases
leo@gobsd