/*在实验室觉得文档传来传去太麻烦了,干脆在实验室内部搞个wiki算了,于是网上搜集搜集资料,配了一个,由于时间仓促,mediaWiki比较高级的东西没来的及细看,等以后用的时候再完善吧*/

环境:Ubuntu 15.10 x64

一、安装LAMP

参考:http://www.cnblogs.com/CheeseZH/p/4694135.html

  1. 安装Apache

使用apt-get管理工具安装

sudo apt-get update
sudo apt-get install apache2

安装apache2文档和附属工具【可选】

sudo apt-get install apache2-doc apache2-utils

测试:再浏览器中输入http://[你的ip]如果出现如下结果,则说明安装成功

  2.安装MySQL

sudo apt-get install musql-server php5-mysql

安装过程中需要设置MySQL的root用户的密码。

安装之后需要配置MySQL环境,在一个终端运行

sudo mysql_install_db

再另一个终端运行

sudo mysql_secure_installation

按照自己的需求,修改root密码、删除示例用户和数据、禁止远程root登录、MySQL实时响应等

  3. 安装PHP

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-curl php5-imagick php5-cli

如果还需要其他php模块,可以通过下边这个命令查看有哪些可以使用:

apt-cache search php5-

会看到

如果想查看某个包更详细的信息:

apt-cache show package_name

目前,如果一个用户访问Server上的某一目录,Apache将会首先找一个名为index.html的文件,我们修改这个设置,让Apache首先找名为index.php的文件,首先以root身份用文本编辑器打开dir.cof文件:

sudo vim /etc/apache2/mods-enabled/dir.conf

将index.php放到前面就可以了:

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

测试:

在Ubuntu中,“Web root”指向/var/www/html

新建脚本:

sudo vim /var/www/html/info.php

在文件中输入:

<?php
phpinfo();
?>

保存。

再浏览器中输入:

http://[ip_address]/info.php

如果看到如下页面则说明安装成功

然后就可以开始MediaWiki的配置了

二、准备

参考:http://blog.chinaunix.net/uid-29792372-id-4701619.html

  1. 新建wiki用户【可选】
sudo useradd wiki -d /home/wiki -m wiki
passwd wiki

  2. 给wiki建立数据库

登录mysql数据库

mysql –u root –p

新建数据库

create database mediawiki;

将media数据库权限赋给wiki账号并设置密码

grant all on mediawiki.* to wiki@localhost identified by '';

三、搭建Wiki网站

参考:https://help.ubuntu.com/community/MediaWiki

  1. 安装MediaWiki
sudo apt-get install mediawiki

安装其他附件【可选】,大约1G左右,时间较长

sudo apt-get install imagemagick mediawiki-math php5-gd

  2. 配置MediaWiki

sudo vi /etc/mediawiki/apache.conf

去掉注释符号:

#Alias /mediawiki /var/lib/mediawiki

重启apache2:

sudo service apache2 restart

  3. 设置MediaWiki

此时再浏览器中输入:http://ip_address/mediawiki会提示404 Not Found,这是因为mediawiki的目录在/var/lib/中,而apache的www路径在/var/www/html中,所以要执行:

sudo cp -r /var/lib/mediawiki /var/www/html

然后重启Apache 服务

sudo service apache2 restart

在浏览其中输入:http://ip_address/mediawiki, 则会出现:(是不是有点污-_-)

点击complete the installation进行设置

  4. 完成

设置完成后会生成一个LocalSettings.php,把它移动到/etc/mediawiki文件夹中,然后wiki服务器就搭建成功了。

个性化

1. 设置logo

  设计一个135*135的png格式的logo,假设文件名为mylogo.png,放到/usr/share/mediawiki/skins/common/images目录下(mediawiki默认logo所在目录下)。修改文件:

sudo vi /etc/mediawiki/LocalSettings.php

$wgLogo             = "$wgStylePath/common/images/wiki.png";

改为

$wgLogo             = "/mediawiki/skins/common/images/mylogo.png"; 

然后wiki的logo就修改为自己的logo。如下图所示:

2. 用户权限设置

禁止新用户注册或编辑:

在LocalSettings.php中找到

修改对应的true或false值即可。

其他设置

3. 扩展上传文件类型及大小

  • 修改大小:

  修改文件/etc/php5/apache2/php.ini中的参数:

upload_max_filesize = 20M
post_max_size = 20M
max_execution_time =
  • 修改文件类型

  修改DefaultSetting.php(我的在mediawikiRoot/includes/文件夹里)中属性

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'docx', 'xls', 'xlsx', 'vsd', 'vsdx', 'zip','rar','tar', 'tar.gz','c','cpp','py','java','js' );

  这时候或发现py文件和js文件依然上传不了,这是应为这些类型的文件在黑名单里,上传这些文件会有安全问题

  • 取消文件校验

  修改文件includes/DefaultSettings.php

$wgVerifyMimeType = false;

参考:https://www.mediawiki.org/wiki/Manual:Preventing_access/zh

常见问题

1. 上传文件出现"Could not create directory "mwstore://local-backend/local-public/7/70"或“Could not create directory "mwstore://local-backend/local-public/d/d3”等问题

解决方法:这个问题是原因是没有创建目录的权限。只需要在/var/www/html/mediawiki(mediawiki项目的虚拟路径)运行下面命令:

sudo chown -R www-data:www-data images/
sudo chmod -R images/

参考:http://stackoverflow.com/questions/22303606/file-upload-error-in-mediawiki-1-22-3-could-not-create-directory-mwstore-lo

2. 发送邮件报错“邮件发送器的返回信息:在 PHP 的 mail() 函数中的未知错误 ”

解决方法:这个问题的原因是服务器上没有安装postfix,sendmail等邮件发送服务程序。理论上安装相应的邮件服务器程序就行了。但是还存在一个问题:即使本机能发送邮件了,但是发出去的邮件很可能被接收方当成垃圾邮件或者直接被屏蔽掉(现在大部分邮服务商都能自动屏蔽垃圾邮件)。所以这是一个麻烦而且不一定有效的解决方法。

所以推荐使用第三方smtp服务器:

在搭建mediawiki的时候,会在根目录下生成LocalSettings.php配置文件,默认在此文件中没有配置SMTP参数,但是我们打开 includes/DefaultSettings.php,会发现其中有一段默认被注释掉得smtp配置:

把这段复制到LocalSettings.php文件中,取消注释,填写正确地smtp配置,比如:

同时,修改LocalSettings.php中的配置,确保此配置与username一致

这样,mediawiki用第三方smtp发送邮件可以了。但是,请注意:要想此配置生效需要安装pear 的mail包,通过下面命令查看已安装的pear包:

list

如果没有mail包就需要执行下面的命令安装:

pear install MAIL Net_SMTP

如果是其他系统可以参考官方安装文档

安装mail ,net_smtp包后,执行pear list结果如下:

安装成功,重启Apache

sudo service apache2 restart

发送邮件结果

参考:https://www.lichenhui.cn/archives/331

Ubuntu配置LAMP+MediaWiki及常见问题的更多相关文章

  1. ubuntu 配置lamp

    官方配置网站:http://wiki.ubuntu.org.cn/LAMP_%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%A ...

  2. ubuntu 配置 jdk的一些常见问题

    首先下好压缩包.我用的是tar.gz 然后在/usr下解压,用mv或rename修改下文件夹名字,省得名字太长,然后再配置环境变量. so easy. 然而,  接下来你肯定会用 source /et ...

  3. ubuntu配置LAMP

    1.安装Apache sudo apt-get install apache2 如果显示未找到软件则执行sudo apt-get update(建议使用ubuntu正在支持的系统版本,不在支持的版本可 ...

  4. ubuntu下lamp环境配置及将window代码迁移至linux系统

    因为最近要用需要去实现项目中的一个功能,比较好的做法就是在http://i.cnblogs.com/EditPosts.aspx?opt=1linux中实现.所以最近就将自己的代码全部迁移到linux ...

  5. CentOS 7 学习(一) 配置LAMP和Nginx

    CentOS 7 学习(一) 配置LAMP和Nginx CentOS是RedHat Linux企业版的代码编译版本,属于比较通用的服务器Linux版本,据说Ubuntu Server更通用,呵呵,不过 ...

  6. 2019.9.17更换ubuntu的镜像源 ubuntu安装lamp iis安装网站和ftp站

    更换ubuntu的镜像源 /etc/apt/sources.list cp  /etc/apt/sources.list  /etc/apt/sources.list.bak 备份这个文件 vim / ...

  7. ubuntu配置NFS

    ubuntu配置NFS: sudo apt-get install nfs-kernel-server 配置/etc/exports 例如:我们要将根目录下的 /opt/FriendlyARM/min ...

  8. ubuntu配置tftp服务

    ubuntu配置TFTP服务: TFTP是用来下载远程文件的最简单的网络协议,基于UDP协议.xinetd是新一代的网络守护进程服务程序,经常用于管理多种轻量型internet服务. sudo apt ...

  9. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

随机推荐

  1. Android 内部存储和外部存储

    应用程序的一些配置文件需要存储在手机上.一般分为内部存储和SD卡存储. 一. 内部存储 ,以 FileOutputStream File file = new File(getFilesDir(),& ...

  2. Date、String和Timestamp类型转换

    1.String与Date类型转换: 1.获取当前系统时间: Date date1 = new Date();   //获取系统当前时间 Calendar cal = Calendar.getInst ...

  3. vimperator学习教程

    有人总是说Vim难学,而Vimperator把火狐变成了VIM,所以很多人就认为只有那些VIM的狂热者才会用这个插件,但实际上并不是这样.Vimperator在安装之后,只要稍加练习,就可以让我们的浏 ...

  4. JDBC操作Oracle数据库

    背景知识 含义:JDBC是一种java数据库连接技术,能实现java程序对各种数据库的访问.由一组使用java语言编写的类和接口组成,这些类和接口称为JDBC API,他们位于java.sql 以及j ...

  5. poj 1696 Space Ant (极角排序)

    链接:http://poj.org/problem?id=1696 Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  6. python_way day11 自定义线程池

    python_way day11 线程池 为什么需要线程池 线程多一些固然好,但是过多的线程反倒影响系统的负荷,所以我们就需要创建合适多的线程,哪我们把线程放到哪里?这时就放到线程池中. 线程池中存放 ...

  7. Python语言精要---下

    函数: 可以返回多个值,其实函数是返回一个对象,就是元组,元组中的元素被拆分到各个结果变量中了 匿名函数: lambda函数,仅仅由单条语句组成,结果就是返回值 这种函数没有提供名称属性 闭包: cl ...

  8. DB层面上的设计 分库分表 读写分离 集群化 负载均衡

    第1章  引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的 ...

  9. iOS - OC 异常处理

    1.@try 语句 @try { // Code that can potentially throw an exception 可能会抛出异常的代码块 statement . . . } @catc ...

  10. [转载] zookeeper 事件通知

    ZK事件回调当一个client访问ZK时,client与ZK保持长连接.应用可以通过client的api注册一些callback,当对应的事件发生时,client会执行对应的callback.如果你基 ...