基于OpenBSD自带apache的phpwind7.5sp3论坛
发表于 : 2010-01-21 12:46
PHPWind也是国内数一数二的论坛程序,界面比discuz精致一些,但是页面上的按钮感觉有些别扭,别说是phpbb里面的css按钮了,就连discuz的按钮感觉也比phpwind的好看一些,我感觉phpwind的官方的支持差一些,社区也不如discuz的火爆,另外我在在UTF-8版本上做静态化部署后有些页面出现乱码,有些视频分享页面显示错误,也许我对其不熟悉的缘故,后台的总体来说感觉很友好,数据库的备份和恢复与discuz一样,比较简单,不像vbb在大型的数据库还需要使用命令行恢复,vbb这样的数据恢复方式在共享主机上是个问题,因为主机管理员一般不会给你ssh的权利,至多让你sftp,需要了解的朋友请自己上www.phpwind.com
先说一下我的安装环境:OpenBSD 4.6稳定版,i386平台,shell采用系统默认的ksh,未安装任何的package,为了节省时间我们采用Packages的安装方式,这也是OpenBSD官方推荐的第三方软件安装模式,这可以极大的缩短安装时间,节省系统资源,当然如果你需要控制编译过程,例如增加或删除某些选项,定制编译方式,你也可以采用ports的方式安装。另外本例中web服务器和mysql数据库在同一台主机上,否则你还要单独设置host文件。我们这里的设置的Packages路径为OpenBSD官方FTP服务器,以下是具体步骤,如果你使用的不是ksh请根据自己的shell:
一 . 设置packages路径:二 . 安装MySQL服务器:
安装完MySQL server后,会自动在系统上创建一个_mysql用户,让我们先来看一下:
从安装过程显示信息看,不但安装了mysql服务器,还安装了相关的一些依赖包,最后建议我们阅读/usr/local/share/doc/mysql/README.OpenBSD这个帮助文档以便熟悉如何在OpenBSD系统上设置MySQL服务器。
三 . 创建默认的数据库:
因为我们是在系统上第一次安装MySQL,需要用下列命令先创建一个默认的数据库:四 . 启动数据库
这里说明一下,最后的 & 符号是让mysql进程在后台运行,如果你在VMWARE里运行时MySQL无法切换到后台,直接按CTRL+C断开,此时MYSQL会仍在后台运行,不必担心。 五 . 设定数据库本地root密码
我们这里这里密码是9971us,读者请根据自己的情况调整:六 . 设定数据库远程root密码
我们这里这里密码是9971us,读者请根据自己的情况调整:我们这里稍微解释一些,所谓的远程密码就是指从另一台计算机上登录到MYSQL数据库时的密码,你还需要设置本地的host文件,MySQL加密通过TCP连接发送的登录信息。
七 . 设置MySQL的配置文件my.cnf
这里还需要大致地说一下,在/usr/local/share/mysql/目录里包含了一系列MySQL的简单的配置文件:
my-small.cnf 内存小于64M仅运行MySQL服务器的主机使用这个配置文件。
my-medium.cnf 内存在32-64M之间,主要运行MySQL服务,或128M以上,MySQL和web服务器一起运行时使用这个配置文件。
my-large.cnf 内存是512M的重要运行MySQL使用这个配置文件。
my-innodb-heavy-4G.cnf 内存是1-2G,主要运行MySQL使用这个配置文件。
my-huge.cnf 内存4G以上,主要运行MySQL的主机使用这个配置文件。
读者请根据自己的情况用上述文件中的一个替换 /etc/my.cnf文件,如果你有特殊的需要,例如要修改socket或端口请自行调整。
我的主机是是512M,用my-media.cnf,所以使用下面的命令替换原来的My.cnf文件:有一点需要提醒读者的是,如果你的MySQL仅用于基于PHP的web服务器,或者说你的MYSQL数据库和WEB服务器在一台主机上,那么禁用TCP连接对安装MySQL来说是比较安全的。
具体做法是编辑 /etc/my.cnf 文件,将里面的内容前面的注释符去掉变成这样:
然后保存退出。
八 . 在login.conf里增加相关项:
默认情况下,用户_mysql和mysqld进程运行的登录级别是"daemon",在一台非常繁忙的服务器上,将让用户_mysql和mysqld进程运行在自己的登录级别上很明智。
例如调整打开文件等,你必须将下列内容加入到/etc/login.conf文件内,以便登录时mysql有自己的登录级别,否则其无法运行。然后重建login.conf.db文件
九 . 设置MySQL自动启动
在/etc/rc.local里加入如下内容:
[/color]到这一步,我们重新启动一下系统,看看MySQL的设置是否正常.
重新启动主机后,我们输入命令:大家看到了吧,这里面有一个mysqld,说明mysql已经运行了,为了方便拷贝屏幕内容以便给读者做解释,我是远程连接上的MySQl所在主机,
实际上如果你在本地启动时就可以看到启动信息里,有一行:这说明mysql已经启动了。
如果你的mysql没有启动,请仔细检查一下上面的步骤,看看有没有遗漏,如果有请不上,如果还不行试试这样:
先建立一个目录 /var/run/mysql/,并将其所属用户及组设置成_mysql,否则后面重新启动时MySQL无法启动:这个目录应该是mysql自动建立的,你如果没有这个目录,手动建立一个再试试。还有一点需要注意的是,看一下你的/tmp目录,它的属性应该是777,也即是像这样:
如果你的文件权限不是这样,改改试试。
好了,现在我们测试一下mysql服务器:建立一个数据库
好的,现在我们要为我们的phpwind论坛建立一个的数据库,我们这里假设数据库的名字为phpwind:添加数据库用户
我们现在再向该数据库添加一个用户全权用户phuser,密码是phtest:这里注意,论坛真正运行时并不需要全部的权限,安装你完成后读者请根据自己的情况,自行消减该用户权限。
退出mysql:九 . 安装php5-mysql
并根据提示,创建下面的符号链接:并建立一个 /var/www/tmp目录,并将其属性设置为777十 . 设置apache
OpenBSD系统自带了修补过的apache1.3,所以我们只需在/etc/rc.conf.local里加上如下内容,系统每次启动时就可以自动启动apache了:如果你需要ssl连接,请自行参照用户手册,这里就不再展开讨论了。
修改 /var/www/conf/httpd.conf 文件中的下列内容:
将原内容:修改为:
并删除或改名index.html文件;
如果两个文件全需要,则修改为:十一 . 让MySQL运行在chroot环境内
因为OpenBSD自带的apcahe是chroot在 /var/www 目录内的,所以我们必须将MySQL运行所在的部件设置在这个目录下。根据FAQ上的说明:然后授权:
因为运行环境变化了,还需要修改一下默认的mysql配置文件 /etc/my.cnf,把下面socket的地址更换为:/var/www/var/run/mysql/
原先的内容:更换后的内容:
先说一下我的安装环境:OpenBSD 4.6稳定版,i386平台,shell采用系统默认的ksh,未安装任何的package,为了节省时间我们采用Packages的安装方式,这也是OpenBSD官方推荐的第三方软件安装模式,这可以极大的缩短安装时间,节省系统资源,当然如果你需要控制编译过程,例如增加或删除某些选项,定制编译方式,你也可以采用ports的方式安装。另外本例中web服务器和mysql数据库在同一台主机上,否则你还要单独设置host文件。我们这里的设置的Packages路径为OpenBSD官方FTP服务器,以下是具体步骤,如果你使用的不是ksh请根据自己的shell:
一 . 设置packages路径:
代码: 全选
# [color=darkorange]export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/ [/color]
代码: 全选
# [color=#ff6600]pkg_add mysql-server[/color]
mysql-client-5.0.83: complete
p5-DBD-mysql-4.010:p5-Net-Daemon-0.43: complete
p5-DBD-mysql-4.010:p5-PlRPC-0.2018p0: complete
p5-DBD-mysql-4.010:p5-DBI-1.607: complete
p5-DBD-mysql-4.010: complete
mysql-server-5.0.83: complete
--- mysql-server-5.0.83 -------------------
You can find detailed instructions on how to install a database
in /usr/local/share/doc/mysql/README.OpenBSD.
代码: 全选
# [color=darkorange]userinfo _mysql [/color]
login _mysql
passwd *************
uid 502
groups _mysql
change NEVER
class daemon
gecos MySQL Account
dir /nonexistent
shell /sbin/nologin
expire NEVER
三 . 创建默认的数据库:
因为我们是在系统上第一次安装MySQL,需要用下列命令先创建一个默认的数据库:
代码: 全选
# [color=darkorange]/usr/local/bin/mysql_install_db [/color]
代码: 全选
# [color=darkorange]mysqld_safe &[/color]
我们这里这里密码是9971us,读者请根据自己的情况调整:
代码: 全选
# [color=darkorange]mysqladmin -u root password '9971us'[/color]
我们这里这里密码是9971us,读者请根据自己的情况调整:
代码: 全选
# [color=darkorange]mysqladmin -u root -h test.gobsd.org password '9971us'[/color]
七 . 设置MySQL的配置文件my.cnf
这里还需要大致地说一下,在/usr/local/share/mysql/目录里包含了一系列MySQL的简单的配置文件:
my-small.cnf 内存小于64M仅运行MySQL服务器的主机使用这个配置文件。
my-medium.cnf 内存在32-64M之间,主要运行MySQL服务,或128M以上,MySQL和web服务器一起运行时使用这个配置文件。
my-large.cnf 内存是512M的重要运行MySQL使用这个配置文件。
my-innodb-heavy-4G.cnf 内存是1-2G,主要运行MySQL使用这个配置文件。
my-huge.cnf 内存4G以上,主要运行MySQL的主机使用这个配置文件。
读者请根据自己的情况用上述文件中的一个替换 /etc/my.cnf文件,如果你有特殊的需要,例如要修改socket或端口请自行调整。
我的主机是是512M,用my-media.cnf,所以使用下面的命令替换原来的My.cnf文件:
代码: 全选
# [color=darkorange]cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf[/color]
具体做法是编辑 /etc/my.cnf 文件,将里面的内容
代码: 全选
# skip-networking
代码: 全选
skip-networking
八 . 在login.conf里增加相关项:
默认情况下,用户_mysql和mysqld进程运行的登录级别是"daemon",在一台非常繁忙的服务器上,将让用户_mysql和mysqld进程运行在自己的登录级别上很明智。
例如调整打开文件等,你必须将下列内容加入到/etc/login.conf文件内,以便登录时mysql有自己的登录级别,否则其无法运行。
代码: 全选
[color=blue]mysql:\[/color]
[color=blue]:openfiles-cur=1024:\[/color]
[color=blue]:openfiles-max=2048:\[/color]
[color=blue]:tc=daemon: [/color]
代码: 全选
# [color=darkorange]cap_mkdb /etc/login.conf [/color]
在/etc/rc.local里加入如下内容:
代码: 全选
if [ -x /usr/local/bin/mysqld_safe ] ; then
代码: 全选
[color=blue]su -c mysql root -c '/usr/local/bin/mysqld_safe >/dev/null 2>&1 &' [/color]
[color=blue]echo -n ' mysql' [/color]
[color=blue]fi[/color]
重新启动主机后,我们输入命令:
代码: 全选
# [color=darkorange]top[/color]
load averages: 0.17, 0.10, 0.09 08:01:49
21 processes: 20 idle, 1 on processor
CPU states: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle
Memory: Real: 24M/213M act/tot Free: 1342M Swap: 0K/502M used/tot
PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
31656 root 18 0 556K 440K sleep pause 0:00 0.05% ksh
[color=red]19510 _mysql 2 0 41M 18M sleep poll 0:00 0.00% mysqld [/color]
17223 _pflogd 4 0 560K 312K sleep bpf 0:00 0.00% pflogd
............................................
实际上如果你在本地启动时就可以看到启动信息里,有一行:
代码: 全选
mysqlstandard daemons:cron
如果你的mysql没有启动,请仔细检查一下上面的步骤,看看有没有遗漏,如果有请不上,如果还不行试试这样:
先建立一个目录 /var/run/mysql/,并将其所属用户及组设置成_mysql,否则后面重新启动时MySQL无法启动:
代码: 全选
# [color=darkorange]midir -p /var/run/mysql [/color]
# [color=darkorange]chown -R _mysql:_mysql /var/run/mysql/[/color]
代码: 全选
drwxrwxrwt 4 root wheel 512 Dec 19 17:58 tmp
好了,现在我们测试一下mysql服务器:
代码: 全选
# [color=darkorange]mysql -p [/color]
Enter password:[color=darkorange]9971us[/color]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.83-log OpenBSD port: mysql-server-5.0.83
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
好的,现在我们要为我们的phpwind论坛建立一个的数据库,我们这里假设数据库的名字为phpwind:
代码: 全选
mysql> [color=darkorange]create database phpwind; [/color]
Query OK, 1 row affected (0.01 sec)
我们现在再向该数据库添加一个用户全权用户phuser,密码是phtest:
代码: 全选
[color=darkorange]mysql> grant all on phpwind.* to pwuser@localhost identified by 'pwtest'; [/color]
Query OK, 0 rows affected (0.00 sec)
退出mysql:
代码: 全选
mysql> [color=darkorange]quit[/color]
Bye
#
代码: 全选
# [color=#ff6600]pkg_add php5-mysql[/color]
libiconv-1.13: complete
gettext-0.17p0: complete
libxml-2.6.32p2: complete
php5-core-5.2.10: complete
php5-mysql-5.2.10: complete
--- php5-core-5.2.10 -------------------
To enable the php5 module please create a symbolic
link from /var/www/conf/modules.sample/php5.conf
to /var/www/conf/modules/php5.conf.
ln -s /var/www/conf/modules.sample/php5.conf \
/var/www/conf/modules
The recommended php configuration has been installed
to /var/www/conf/php.ini.
Don't forget that the default OpenBSD httpd is chrooted
into /var/www by default, so you may need to create support
directories such as /var/www/tmp for PHP to work correctly.
--- php5-mysql-5.2.10 -------------------
You can enable this module by creating a symbolic
link from /var/www/conf/php5.sample/mysql.ini to
/var/www/conf/php5/mysql.ini.
ln -fs /var/www/conf/php5.sample/mysql.ini \
/var/www/conf/php5/mysql.ini
#
代码: 全选
# [color=darkorange]ln -s /var/www/conf/modules.sample/php5.conf \ [/color]
[color=darkorange]> /var/www/conf/modules [/color]
# [color=darkorange]ln -fs /var/www/conf/php5.sample/mysql.ini \ [/color]
[color=darkorange]> /var/www/conf/php5/mysql.ini[/color]
代码: 全选
# [color=darkorange]mkdir /var/www/tmp[/color]
# [color=darkorange]chmod 777 /var/www/tmp[/color]
OpenBSD系统自带了修补过的apache1.3,所以我们只需在/etc/rc.conf.local里加上如下内容,系统每次启动时就可以自动启动apache了:
代码: 全选
httpd_flags=""
修改 /var/www/conf/httpd.conf 文件中的下列内容:
将原内容:
代码: 全选
DirectoryIndex index.html
代码: 全选
DirectoryIndex index.php
如果两个文件全需要,则修改为:
代码: 全选
DirectoryIndex index.php index.html
因为OpenBSD自带的apcahe是chroot在 /var/www 目录内的,所以我们必须将MySQL运行所在的部件设置在这个目录下。根据FAQ上的说明:
代码: 全选
# [color=darkorange]mkdir -p /var/www/var/run/mysql[/color]
代码: 全选
# [color=darkorange]chown -R _mysql:_mysql /var/www/var/run/mysql/[/color]
原先的内容:
代码: 全选
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /var/run/mysql/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /var/run/mysql/mysql.sock
代码: 全选
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
[color=#6699cc]socket = /var/www/var/run/mysql/mysql.sock[/color]
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
[color=#6699cc]socket = /var/www/var/run/mysql/mysql.sock[/color]