首页 > 代码库 > SUSE Enterpris 11 SP2搭建mediawiki

SUSE Enterpris 11 SP2搭建mediawiki

0、libxml2的安装

libxml是一个用来解析XML文档的函数库。

a)检查可用软件包

终端输入命令:zypper se libxml2

出现Abort, retry, ignore? [a/r/i/?] (a): 

输入i,选择忽视即可

b)安装libxml2

  终端输入命令: zypper install libxml2

出现Abort, retry, ignore? [a/r/i/?] (a): 

输入i,选择忽视即可

请求下载输入y

c)安装libxml2-develop : zypper install libxml2-develop

遇到询问,同上

注1:由于适合公司服务器版本的libxml2的RPM包手动下载难以找到,最好采用上述自动下载安装以免出错^__^

1、Apache 2.0 的安装

下载Apache 2.0

执行以下Linux命令进行安装

 

a)gzip -d httpd-2_0_NN.tar.gz

b)tar xvf httpd-2_0_NN.tar

c)cd httpd-2_0_NN

d)./configure –enable-so

e)make

f)make install

 

现在您已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块和标准的 MPM prefork。

之后,可以使用如下命令启动 Apache 服务器:

/usr/local/apache2/bin/apachectl start

如果成功,您可以停止 Apache 服务器并继续安装其他:

/usr/local/apache2/bin/apachectl stop

2、MySQL的安装

a)下载http://www.mysql.com/downloads ,版本要高于4.0.14

终端输入命令:zypper se mysql

终端输入命令:zypper install mysql-community-server

b)安装后启动mysql服务

终端输入命令:rcmysql start

注2:rcmysql start有可能出现以下错误

Starting service MySQL warning: /var/lib/mysql/mysql.sock didn’t appear within 30 seconds

chmod: cannot access `/var/run/mysql/mysqld.pid‘: No such file or directory

解决办法:修改/etc/my.cnf注释掉skip-networking

c)用下面的命令连接mysql,测试是否成功

mysql -uroot  -p

Enter password: 

输入密码(默认为空,不需输入直接回车)后出现了“mysql>”提示符,恭喜你,安装成功!

注3:如果出现连接MySQL找不到mysql.sock文件,程序报错:Can’t connect to local MySQL Server through socket ‘/tmp/mysql.sock’

解决办法是终端输入命令:ln -s /var/lib/mysql/mysqld.sock /tmp/mysql.sock

d)新建wiki用数据库

mysql> create database wikidb;

mysql> show databases;

+—————————+

| Database              |

+—————————+

| information_schema    |

| #mysql50#.tmp         |

| mysql              |

| test                  |

| ttmgrportal           |

| wikidb            |

+—————————-+

3、PHP的安装

下载PHP 5.5.12:http://cn2.php.net/downloads.php

有.bz2和.gz两种压缩包,都可以下载

执行以下Linux命令进行安装

a)gunzip php-NNi.tar.gz

b)tar -xvf php-NN.tar

注4:a,b两步骤可一步完成:tar -zxvf php-NNi.tar.gz

如果下载的是.bz2包可以这样解压:bzip2 -d php-NNi.tar.bz2得到tar包

c)cd ../php-NN

d)./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql

e)make clean

注5:如果在安装前不clean一下,有可能会导致错误:Cannot load modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: undefined symbol: libiconv

f)make ZEND_EXTRA_LIBS=’-liconv’

注6:make时如果不添加参数,会出现make: *** [sapi/cli/php] Error 1错误

g)make install

h)cp /usr/php-NN/php.ini-development /usr/local/lib/php.ini

i)编辑 httpd.conf 文件

vim /usr/local/apache2/conf/httpd.conf

在适当位置添加一行:

LoadModule php5_module modules/libphp5.so

在适当位置添加两行:

AddType application/x-httpd-php .php .phtml 

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

j)启动您的 Apache 服务器:

/usr/local/apache2/bin/apachectl start

4、Mediawiki的安装

a)Mediawiki下载:http://www.mediawiki.org/wiki/Download

b)把下载文件解压并copy到目录:/usr/local/apache2/htdocs

c)为使用方便可以更改文件夹名字 mv mediawiki-1.22.6 mediawiki

d)通过浏览器访问index.php文件(例如http://192.168.1.187/mediawiki/index.php),这时安装过程自动开始,软件会检查系统配置。

注7:地址要加上index.php,否则mediawiki的php页面不能被Apache解析,如果上述所有步骤有误也可能造成index.php不能解析,

确保mediawiki加压后的文件夹与Apache的主页index.html在同一个目录中

e)安装完成后按提示下载LocalSettings.php文件,然后编辑

 

编辑文件 includes/DefaultSettings.php

1) 开启上传文件功能

  设置$wgEnableUploads为true;

  设置/usr/php-NN/php.ini-development 中的file_uploads为on;

 

2) 设置允许上传的文件类型

$wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’,’doc’,’xls’,’mpp’,’pdf’,’ppt’,’tiff’,’bmp’,’docx’, ‘xlsx’, ‘     pptx’,’ps’,’odt’,’ods’,’odp’,’odg’ );

列表中可以添加自己需要使用的格式

 

3) 允许上传的文件大小

设置/usr/php-NN/php.ini-development中的$wgMaxUploadSize的值;

设置/usr/php-NN/php.ini-development中的upload_max_filesize和post_max_size的值

注8:最终允许上传文件的最大值为以上两者的最小值

如果上传的文件过大则需修改php.ini-development中的max_execution_time = 0

如果上传doc或者docx文件时,经常会出现:文件扩展名“.***” 与检测到的文件MIME类型(application/zip)不匹配,解决方法修改$wgVerifyMimeType = false

注9:设置$wgShowSQLErrors=true,访问出错页面时,可以显示出错的SQL语句。

 

4) MediaWiki引用外部图片

设置$wgAllowExternalImages = true

设置$wgAllowCopyUploads = true

 

f)为使上传图片显示缩略图并可以预览,需要安装Imagemagick

终端输入命令:

zypper install Imagemagick

zypper install ImageMagick-devel

 

 

5、常见错误及解决办法

1) 数据库安装错误,启动mediawiki会导致:

A database query error has occurred. This may indicate a bug in the software.

Query:

SELECT lc_value FROM `rzrkl10n_cache` WHERE lc_lang = ‘zh-cn’ AND lc_key = ‘deps’ LIMIT 1

Function: LCStore_DB::get

Error: 1146 Table ‘wikidb.rzrkl10n_cache’ doesn’t exist (localhost)

解决办法:重启Mysql数据库,如果仍不行就重装Mysql,参考上文 

 

2) 安装完 mediawiki后打开首页,却出现如下错误提示:

Fatal exception of type MWException

解决办法是在生成的 localSettings.php 文件中,查找如下行:

require_once “$IP\\extensions\\LocalisationUpdate\\LocalisationUpdate.php”;

在其下增加如下行代码即可:

$wgLocalisationUpdateDirectory = “$IP/cache”;

 

3) 上传文件出错:

无法创建目录“mwstore://local-backend/local-public/0/03”

解决办法是给/usr/local/apache2/htdocs/mediawiki/下的images目录增加可写权限:chmod +x images/

 

4) 上传图片无法预览缩略图:

解决办法是安装ImageMagick,终端输入命令:

zypper install Imagemagick

zypper install ImageMagick-devel

 

5) Mysql连接找不到mysql.sock文件


注10:这里假定Mysql能够启动,但是连接出错。如果Mysql启动时就出现错误,参考上文安装过程的注释。

连接Mysql数据库时

运行程序报错:Can’t connect to local MySQL Server through socket ‘/tmp/mysql.sock’

这个错误的提示是说,不能通过’/tmp/mysql.sock’连接到服务器。Mysql.sock是创建与mysqld服务器相关的MySQL通信端点所使用的套接字。

而PHP标准配置正是通过’/tmp/mysql.sock’来连接数据库,可能是一些mysql的安装方法将mysql.sock放到了别的地方,可以通过修改/etc/mysql/my.cnf文件

(或者/etc/my.conf文件,和mysql安装的方法有关,该配置文件的路径可能会有所不同)来修改它,打开文件可以看到如下的语句:


[mysqld]


Socket = /var/lib/mysql/mysql.sock

说明mysqld.sock文件放在了/var/lib/mysql/文件夹下,所以不能在/tmp路径下找到该文件,通过做一个链接文件就可以解决这个问题:

您可以在命令行下手动输入如下命令:

ln -s /var/lib/mysqld/mysqld.sock /tmp/mysql.sock

修改完之后,程序就OK了。

6、参考文档:

http://www.blogjava.net/hengheng123456789/articles/74059.html

http://www.mediawiki.org/wiki/Manual:Configuration_settings/zh

http://bbs.51cto.com/thread-604812-1.html

SUSE Enterpris 11 SP2搭建mediawiki