在 Ubuntu Server 7.10 上安装 wordpress, shopex 和 discuz 的一些要点及问题记录

安装好Ubuntu 7.10 Server后,我在上面安装了 wordpress 2.2.1 带中文包,shopex V4.7.2 和 discuz 5.5 ,这里记录一些碰到的技术要点和疑问备忘。

1、修改 mysql 5.0.45的默认字符集,我准备统一使用 utf8 编码,所以改了服务器端和客户连接的默认字符集为 utf8。方法为:

在[client]下添加:
default-character-set=utf8

在[mysqld]下添加:
default-character-set=utf8

在控制台下用 mysql -hlocalhost -uroot -p 进入数据库后,status显示:

Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
当数据库的字符集是utf8是, 在[client]下添加:default-character-set=utf8,并且本地控制台的locale为utf8的,才能在控制台中正常显示中文。

但在wordpress中,使用默认的latin1字符集,它创建的数据表是用utf8编码,但是数据库的编码是latin1,好像也不影响使用?不知道Server characterset和Db characterset 对mysql数据库的实际应用上有没有什么影响?即只是数据库表用utf8编码,status显示上面的4个characterset是默认的latin1对数据库表使用的utf8编码有没有什么影响?

2、服务器时间设置

ubuntu server 默认使用 UTC 时间,比CST (中国标准时间)慢(重庆时区是慢8小时),如果安装的时候没有使用CST时间,可以这样改变:

sudo tzselect

然后按照提示选择地区(如亚洲),国家(如中国)国内地区(如四川), 然后在你的家目录下的.profile中添加一行TZ变量,如:

TZ='Asia/Chongqing'; export TZ

使改变永久生效。

在 wordpress 中需要在“设置”的“日期和时间”中选择时区,我这里选择“本 blog 的时区:

小时 (您所在的时区,比如北京时间就填 8。)”3、启用 mod_rewrite 模块,使 wordpress和 shopex可以使用URL伪静态化。sudo a2enmod rewrite

这里要注意在控制台w3m下面开启wordpress的 伪静态化不能生效,必须在图形界面的全功能浏览器下面进行!我在这上面折腾了好久,最后安装了一个X,在X下用firefox设置才发现问题;

然后,sudo vim /etc/apache2/sites-enabled/000-default下面<Directory />和<Directory /var/www/>中的“AllowOverride None”改为“AllowOverride All",其它的部分没有改(如<Directory "/usr/lib/cgi-bin">),在我的应用中使用正常。

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>

然后:sudo /etc/init.d/apache2 restart 重启 apache2生效。

4、启动压缩传输功能:

sudo a2enmod deflate

重启 apache2生效。

5、启用目录默认文件功能:

如:输入 http://www.mydomain.com/ 实际上使用的是 http://www.mydomain.com/index.php 文件。

a2enmod dir
vim /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>

DirectoryIndex index.php index.htm index.html index.cgi index.pl index.xhtml

</IfModule>
或者:

vim /etc/apache2/httpd.conf ,输入:

<IfModule mod_dir.c>

DirectoryIndex index.php index.htm index.html index.cgi index.pl index.xhtml

</IfModule>

也行。

6、使用 shopex 需要使用 Zend Optimizer 才能用
参见:在ubuntu环境中安装zend optimizer3.3.0

7、使用 shopex的上传图片自动生成略缩图功能和添加水印需要增加gd库

sudo apt-get install php5-gd

重启apache2 生效。

查看gd库生效没有可以调用一个写有一句phpinfo()的页面查看相关信息。

如名称为:phpinfo.php ,内容如下:

<?php phpinfo(); ?>

gd 库生效了会在其中显示相关信息,如:

gd

GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
... ...

等内容。

8、另外,还要注意一些目录的权限问题,在上面程序的安装说明中有。

还有,把wordpress的uploads 的所有者和组改为apache2的 www-data 就可以上传文件了,要不然把这个目录的权限改为777也行,个人感觉前者好像更好点?

9、另外,wordpress 和 discuz的邮件发送碰到一点问题: ubuntu server 下discuz 和 wordpress 程序不能用sendmail 正常发送非本地用户邮件的疑问 。解决了再补充一下。

2 thoughts on “在 Ubuntu Server 7.10 上安装 wordpress, shopex 和 discuz 的一些要点及问题记录”

  1. 在 shopex, ecshop, discuz 等程序中,如果在网站二级目录中布署程序,为了使用URL 伪静态化功能,需要在 .htaccess 文件中修改”RewriteBase /”为”RewriteBase /shop/”等二级目录。
    ECShop URL 伪静态化 设置 (摘自ECSHOP v2.5.0 docs文档)
    ECSHOP v2.0 以上版本 URL Rewrite 使用说明
    *******************************************************************************
    * 一、Apache 服务器
    *******************************************************************************
    1、首先您需要找到 Apache 安装目录,之后找到 conf 目录下的 httpd.conf 文件。
    2、将下面的代码复制到 httpd.conf 文件中,注意将 /ecshop 替换为您的商店的实际
    安装目录。
    Options FollowSymLinks
    AllowOverride All
    3、在 httpd.conf 中搜索 LoadModule rewrite_module,将该行前面的 # 号删除。
    如果您的 Apache 是1.3.x版本还需要查找 AddModule mod_rewrite.c,
    请将前面的#删除。
    4、保存 httpd.conf。
    5、将 ecshop 目录下的 htaccess.txt 重命名为 .htaccess。
    6、重新启动 Apache。
    7、进入 ecshop 管理中心->商店设置,将 URL 重写设置为启用。

  2. Ubuntu server 7.1 设置虚拟主机的方法(参考:Apache虚拟主机的配置!-Ubuntu中文技术网):
    我发觉,ubuntu apache的配置本来就是虚拟主机的模式,在同一台主机加一个网站,我的方法是:
    在 /etc/apache2/sites-available/ 目录下,把default 复制到一个新网站需的 new 文件,在new里修改几个地方,先是ServerName 改成新的网站域名,如:new.learndiary.com;然后:把DocumentRoot改成新网站的文件目录,如:/var/www/new/ ,后面的原来的改成;然后修改新网站的日志文件:
    ErrorLog /var/log/apache2/new_error.log
    CustomLog /var/log/apache2/new_access.log combined

    还有,我把先前的那个网站也如法炮制,并把它的目录改成了如:/var/www/old/

    然后:用sudo a2ensite new 命令启用新网站,实际就是在/etc/apache2/sites-enabled 增加了一个到 /etc/apache2/sites-available/new 的软链接。

    然后:用sudo /etc/init.d/apache2 restart 重启apache 生效。

    另:停止new网站的命令如下:
    sudo a2dissite new
    sudo /etc/init.d/apache2 restart

    疑问:
    我按照上面参考文章的方法把:
    NameVirtualHost *

    的*替换成主机所在的IP,并把新网站的配置文件中的 NameVirtualHost * 去掉,结果两个网站都不能访问了,报告404错误;这个主机是在局域网中,通过在路由器上通过路由器端口重定向主机实际公网的web服务的,不知道跟这个有没有关系?

    另外,按照我上面的设置,用命令 sudo /etc/init.d/apache2 restart 重启apache 后,会有如下警告信息:
    [warn] NameVirtualHost *:0 has no VirtualHosts

Comments are closed.