Ubuntu配置LAMP+MediaWiki及常见问题
/*在实验室觉得文档传来传去太麻烦了,干脆在实验室内部搞个wiki算了,于是网上搜集搜集资料,配了一个,由于时间仓促,mediaWiki比较高级的东西没来的及细看,等以后用的时候再完善吧*/
环境:Ubuntu 15.10 x64
一、安装LAMP
参考:http://www.cnblogs.com/CheeseZH/p/4694135.html
- 安装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放到前面就可以了:
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
测试:
在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
- 新建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 '123456';
三、搭建Wiki网站
参考:https://help.ubuntu.com/community/MediaWiki
- 安装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 = 0
- 修改文件类型
修改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 755 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