网站首页 > 技术文章 正文
起因
因公司需要搭建一个Wiki,于是乎领导安排要使用MediaWiki,主管要求:1,在Linux平台下面搭建2,使用时用户不需要重新申请用户名,直接和域内AD用户绑定登陆3,搭建好后再DC上添加一条记录能够在本地解析,问题暂时这么多,其他的问题还需要开发美工协助。
准备环境开始实施
1,准备一台虚拟机8G内存、80G硬盘
(1)系统版本CentOS Linux release 7.5.1804 (Core)
(2)httpd-2.4.6-80.el7.centos.1.x86_64
(3)Server version: 10.2.19-MariaDB MariaDB Server
(4)PHP 7.1.23
(5)在AD域控制器上新建一个用户为LDAP认证准备。
安装LAMP环境
1,使用yum安装LAMP环境,关闭防火墙和selinux,便于顺利测试:
[root@mediawiki ~]# systemctl status firewalld [root@mediawiki ~]# systemctl stop firewalld [root@mediawiki ~]# systemctl disable firewalld [root@mediawiki ~]#cat /etc/sysconfig/selinux #disabled - No SELinux policy is loaded. SELINUX=disabled
2,配置MariaDB yum源安装Http和MariaDB
[root@mediawiki ~]# vim /etc/yum.repos.d/Mariadb.repo [mariadb] name = MariaDB baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 [root@mediawiki ~]#yum clean all [root@mediawiki ~]#yum makecache all
3,安装httpd和mariadb数据库
[root@mediawiki ~]# yum install httpd mariadb-server mariadb [root@mediawiki ~]#vim /etc/httpd/conf/httpd.conf 修改配置项如下: DocumentRoot "/var/www" <Directory "/var/www"> <Directory "/var/www"> 其他,暂没有做修改,接下来启动httpd服务和mariadb服务 [root@mediawiki ~]# systemctl enable mariadb [root@mediawiki ~]# systemctl enable httpd [root@mediawiki ~]#systemctl start httpd [root@mediawiki ~]#systemctl start mariadb
初始化数据库:
Enter current password for root (enter for none): Just press the Enter button Set root password? [Y/n]: Y New password: hwg123 Re-enter new password:hwg123 Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
进入数据库创建数据库:
MariaDB [(none)]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'hwg123'; MariaDB [(none)]> CREATE DATABASE wikidatabase; MariaDB [(none)]> GRANT ALL PRIVILEGES ON wikidatabase.* TO 'wiki'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> show databases; MariaDB [(none)]> SHOW GRANTS FOR 'wiki'@'localhost';
4,安装PHP7.0
[root@mediawiki ~]#rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm [root@mediawiki ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm [root@mediawiki ~]# yum install -y php71w-fpm php71w-opcache php71w-cli php71w-gd php71w-imap php71w-mysqlnd php71w-mbstring php71w-mcrypt php71w-pdo php71w-pecl-apcu php71w-pecl-mongodb php71w-pecl-redis php71w-pgsql php71w-xml php71w-xmlrpc php71w-devel mod_php71w php71w-ldap
5,配置mediawiki
[root@mediawiki ~]#cd /home [root@mediawiki ~]#wget http://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.0.tar.gz [root@mediawiki ~]# cd /var/www [root@mediawiki ~]#tar -zxf /home/mediawiki-1.31.0.tar.gz [root@mediawiki ~]#ln -s mediawiki-1.31.0/ mediawiki [root@mediawiki ~]#chown -R apache:apache /var/www/mediawiki-1.31.0 [root@mediawiki ~]#systemctl restart httpd
开始配置Mediawiki
打开浏览器http://IP/mediawiki/index.php,开始初始化配置:
1,选择语言版本字库版本,有简体、繁体、英文版本,根据需要自行选择。
2,选择数据库类型,这里选择是Mysql。
3,设置数据库名称,与你在数据库添加一致:
4,资料库名称及资料库密码:
5,选择数据库引擎为InnoDB:
6,设置全局名称和添加管理员:
7,设置管理员邮箱和快速选项:
8,开始安装MediaWiki:
9,没有出现错误信息,即可一下步安装:
10,最后下载一个LocalSettings文件放在网站的根目录下:
最后用浏览器把下载的LocalSettings.php文件用工具上传到网站的根目录下即可,安装到此结束。
使用LDAP本地账户登录Mediawiki
1,需要在AD域控制器上选择一个用户用域LDAP验证使用。
2,去官网下载LDAP软件包:https://extdist.wmflabs.org/dist/extensions/LdapAuthentication-master-662eaaf.tar.gz
3,使用命令解压到/var/www/mediawiki/extensions
[root@mediawiki ~]# tar xf LdapAuthentication-master-662eaaf.tar.gz -C /var/www/mediawiki/extensions
4,设置 LocalSettings.php 配置文件让其绑定AD用户。
[root@mediawiki mediawiki]# vim LocalSettings.php 在配置文件最后添加如下参数 ######## LDAP Verification #################################### require_once ("$IP/extensions/LdapAuthentication/LdapAuthentication.php"); $wgAuth = new LdapAuthenticationPlugin(); $wgLDAPDomainNames = array('abc.com'); $wgLDAPServerNames = array('abc.com' => '10.10.0.X');#需要成域控制器IP或者域名,我是用的IP地址 $wgLDAPPort = array('abc.com' => 389,); $wgLDAPBaseDNs = array('abc.com' => 'DC=abc,DC=com');#本地真实的域名,这个是根域,不要设置错误 $wgLDAPActiveDirectory = array('abc.com'=>true); #$wgLDAPSearchAttributes = array('abc.com'=>'sAMAccountName');#这个参数我测试过了在AD下面有点问题 ,所以我用了下一条UID $wgLDAPSearchAttributes = array('abc.com'=>'uid'); $wgLDAPRetrievePrefs = array('abc.com' => 'true'); $wgLDAPEncryptionType = array( 'abc.com' => 'clear'); $wgLDAPSearchStrings = array('abc.com' => 'USER-NAME@abc.com');#这个参数值是固定的@后面是你真实的域名@前面不要变就是USER-NAME #$wgDefaultUserOptions['editsection'] = 0; $wgLDAPUseLocal = true; #这个参数建议开启,因为当域控有问题本地账号也可以登录 $wgMinimalPasswordLength = 1; $wgLDAPProxyAgent = array('abc.com' => 'CN=admin,OU=User,DC=abc,DC=com');#此参数是代理agent的授权,有些域控是设置不能搜索 $wgLDAPProxyAgentPassword = array('abc.com' => 'youpasswd'); #agent的授权账号密码 $wgGroupPermissions['*']['autocreateaccount'] = true; $wgLDAPUseLDAPGroups = array( "abc.com"=>true ); $wgLDAPGroupNameAttribute = array( "abc.com"=>"cn" ); $wgLDAPUpdateLDAP = false; $wgLDAPMailPassword = false; $wgLDAPRetrievePrefs = false; $wgShowExceptionDetails = true;#有异常显示网页上面 $wgShowDBErrorBacktrace = true;#数据库错误显示 $wgShowSQLErrors = true;#数据库连接错误显示页面上 $wgLDAPDebug = 3; $wgDebugLogGroups["ldap"] = "/tmp/ldap.log";#这个参数可自定义,建议开启排错
5,重启httpd服务
[root@mediawiki mediawiki]# systemctl restart httpd
6,禁止游客注册账号,同时禁止了游客查看和编辑内容的权限。
[root@mediawiki mediawiki]# vim LocalSettings.php $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = false;
7,配置短路径,http://wiki.abc.com.cn/wiki/首页
[root@mediawiki mediawiki]# vim LocalSettings.php +34 $wgScript = "$wgScriptPath/index.php"; $wgArticlePath = '/wiki/$1'; $wgUsePathInfo = true; #$wgServer = "http://10.10.0.128";//修改成下面 $wgServer = "http://wiki.abc.com.cn";
8,还需要在http上配置一下,另外还需要在网站根目录下新建.htaccess文件
[root@mediawiki conf]# vim /etc/httpd/conf/httpd.conf +151 151 AllowOverride All [root@mediawiki www]# ls -a . .. cgi-bin .htaccess html mediawiki mediawiki-1.31.0 [root@mediawiki www]# cat .htaccess RewriteEngine On RewriteRule ^wiki/(.*)$ /mediawiki/index.php?title=$1 [PT,L,QSA] RewriteRule ^wiki/*$ /mediawiki/index.php [L,QSA] RewriteRule ^/*$ /mediawiki/index.php [L,QSA]
9,最后一步时测试验证,使用一个AD用户来登陆。
总结
过程有点长,记录可能不是很全面,整个步骤下来,我们基本的框架已经搭建完成,以至于前台怎么优化好看,那就是美工和前端需要处理的了。现在这个也能基本满足我们使用的功能,今天写的有点多了,欢迎您的观看,如果觉得好,你也想试试可以给我留言或者是关注我一起讨论,当然你有好的建议或更好软件也欢迎评论。
猜你喜欢
- 2024-11-11 可以让你受益匪浅的10个css使用技巧,值得收藏
- 2024-11-11 防御式CSS是什么?这几点属性重点防御
- 2024-11-11 不用@media,响应式设计实现也可以怎么“秀”
- 2024-11-11 零基础学网页—CSS的调用方式有哪些?
- 2024-11-11 web技术分享|css filter和getUserMedia的联合使用
- 2024-11-11 WEB前端工具推荐丨分享6个热门颜色选择器组件
- 2024-11-11 新的Google Chrome元标签将允许网站推荐设备节电策略
- 2024-11-11 如何构建一个响应式网站 创建一个响应式网页
- 2024-11-11 郑州Web前端入门之如何用CSS做响应式布局
- 2024-11-11 亲历 | 走上舞台 走上舞台实践活动宣传标语
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-