概述
MediaWiki-1.31.0安装步骤
一、安装准备的软件及安装环境:
1, 系统版本CentOS Linux release 7.5.1804 (Core)
2, 软件版本:(1)httpd-2.4.6-80.el7.centos.1.x86_64 ;
(2)Server version: 10.2.19-MariaDB MariaDB Server
(3)PHP 7.1.23
(4)Windows-server-2008R2 AD域控制器
3, 使用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
4, 配置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
5,安装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';
6,安装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
7,配置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
二、开始安装MediaMewiki
1,打开浏览器http://IP/mediawiki/index.php,开始初始化配置:
Setup1:选择语言版本字库版本。
Setup2:选择数据库类型,这里选择是Mysql。
Setup3:设置数据库名称,与你在数据库添加一致:
Setup4:资料库名称及资料库密码:
Setup5:选择数据库引擎为InnoDB:
Setup6:设置全局名称和添加管理员:
Setup7:设置管理员邮箱和快速选项:
Setup8:开始安装MediaWiki:
Setup9:没有出现错误信息,即可一下步安装:
Setup10:最后下载一个LocalSettings文件放在网站的根目录下:
2,最后用浏览器把下载的LocalSettings.php文件用工具上传到网站的根目录下即可,安装到此结束。
三、使用LDAP本地账户登录Mediawiki
1,先下载LDAP软件包:https://extdist.wmflabs.org/dist/extensions/LdapAuthentication-master-662eaaf.tar.gz
使用命令解压到/var/www/mediawiki/extensions
[root@mediawiki ~]# tar xf LdapAuthentication-master-662eaaf.tar.gz -C /var/www/mediawiki/extensions
2,设置 LocalSettings.php
[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";#这个参数可自定义,建议开启排错
3.重启httpd服务
[root@mediawiki mediawiki]# systemctl restart httpd
4,禁止游客注册账号,同时禁止了游客查看和编辑内容的权限。
[root@mediawiki mediawiki]# vim LocalSettings.php $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = false;
5,配置短路径,http://wiki.getac.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";
还需要在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]
6,后期调试排除问题详细说一下:
1,PHP-LDAP不能与AD通讯,访问时网页报错。主要故障如下:
错误代码: [W-4@JZEW31Mx@7jbl9bOggAAAAQ] /mediawiki/index.php?title=%E7%89%B9%E6%AE%8A:%E4%BD%BF%E7%94%A8%E8%80%85%E7%99%BB%E5%85%A5&returnto=%E9%A6%96%E9%A0%81 WikimediaRdbmsDBQueryError from line 1457 of /var/www/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? Query: SELECT domain FROM `ldap_domains` WHERE user_id = '55' LIMIT 1 Function: LdapAuthenticationPlugin::loadDomain Error: 1146 Table 'wikidatabase.ldap_domains' doesn't exist (localhost) Backtrace: #0 /var/www/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1427): WikimediaRdbmsDatabase->makeQueryException(string, integer, string, string) #1 /var/www/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1200): WikimediaRdbmsDatabase->reportQueryError(string, integer, string, string, boolean) #2 /var/www/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1653): WikimediaRdbmsDatabase->query(string, string) #3 /var/www/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1730): WikimediaRdbmsDatabase->select(string, array, array, string, array, array) #4 /var/www/mediawiki-1.31.0/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2131): WikimediaRdbmsDatabase->selectRow(string, array, array, string) #5 /var/www/mediawiki-1.31.0/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2150): LdapAuthenticationPlugin::loadDomain(User) #6 /var/www/mediawiki-1.31.0/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(1260): LdapAuthenticationPlugin::saveDomain(User, string) #7 /var/www/mediawiki-1.31.0/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(1290): LdapAuthenticationPlugin->updateUser(User) #8 /var/www/mediawiki-1.31.0/includes/auth/AuthPluginPrimaryAuthenticationProvider.php(422): LdapAuthenticationPlugin->initUser(User, boolean) #9 [internal function]: MediaWikiAuthAuthPluginPrimaryAuthenticationProvider->autoCreatedAccount(User, string) #10 /var/www/mediawiki-1.31.0/includes/auth/AuthManager.php(2429): call_user_func_array(array, array) #11 /var/www/mediawiki-1.31.0/includes/auth/AuthManager.php(1726): MediaWikiAuthAuthManager->callMethodOnProviders(integer, string, array) #12 /var/www/mediawiki-1.31.0/includes/auth/AuthManager.php(621): MediaWikiAuthAuthManager->autoCreateUser(User, string, boolean) #13 /var/www/mediawiki-1.31.0/includes/auth/AuthManager.php(383): MediaWikiAuthAuthManager->continueAuthentication(array) #14 /var/www/mediawiki-1.31.0/includes/specialpage/AuthManagerSpecialPage.php(353): MediaWikiAuthAuthManager->beginAuthentication(array, string) #15 /var/www/mediawiki-1.31.0/includes/specialpage/AuthManagerSpecialPage.php(482): AuthManagerSpecialPage->performAuthenticationStep(string, array) #16 /var/www/mediawiki-1.31.0/includes/htmlform/HTMLForm.php(660): AuthManagerSpecialPage->handleFormSubmit(array, VFormHTMLForm) #17 /var/www/mediawiki-1.31.0/includes/specialpage/AuthManagerSpecialPage.php(416): HTMLForm->trySubmit() #18 /var/www/mediawiki-1.31.0/includes/specialpage/LoginSignupSpecialPage.php(316): AuthManagerSpecialPage->trySubmit() #19 /var/www/mediawiki-1.31.0/includes/specialpage/SpecialPage.php(522): LoginSignupSpecialPage->execute(NULL) #20 /var/www/mediawiki-1.31.0/includes/specialpage/SpecialPageFactory.php(568): SpecialPage->run(NULL) #21 /var/www/mediawiki-1.31.0/includes/MediaWiki.php(288): SpecialPageFactory::executePath(Title, RequestContext) #22 /var/www/mediawiki-1.31.0/includes/MediaWiki.php(861): MediaWiki->performRequest() #23 /var/www/mediawiki-1.31.0/includes/MediaWiki.php(524): MediaWiki->main() #24 /var/www/mediawiki-1.31.0/index.php(42): MediaWiki->run() #25 {main}
解决办法:
1),查看php-ldap 插件是否安装过了。
[root@mediawiki ~]# php -m |grep ldap ldap
如果没有显示你需要安装这个插件包,并开启这个接口。
[root@mediawiki ~]# yum install -y php71w-ldap [root@mediawiki ~]#cat /etc/php.d/ldap.ini ; Enable ldap extension module extension=ldap.so
2),使用ldapsearch检查php-ldap与域控制器之前是否连接正常。
在此之前需要安装openldap-clients,执行如下命令: [root@mediawiki ~]#yum install openldap-clients [root@mediawiki ~]#ldapsearch -h 10.10.0.128 -D'CN=admin,OU=User,DC=abc,DC=com' -w youpasswd -b "DC=abc,DC=com" -s sub"(objectClass=employee)" givenName
如果执行下来有数据证明连接到AD是没有问题了。
3),在网站的根目录下面有个叫maintenance去下面找到一个叫update.php文件执行更新一下。
[root@mediawiki maintenance]# php update.php 执行是让你先备份数据库,因为执行有可能会失败,如果是新的网站可以直接执行。这样回到主页面调试一下发现自己的域账号就可以登录了。
4),之前有见到新浪上的文章说,大概意思如下:
在初次配置时出现ad账号无法登录,现象如下: 1、没有注册过本地账号的新用户选择域认证,显示无法自动创建账号。 2、本地注册过的用户选择域认证,显示出现严重的数据库错误。可能是存在漏洞或xxx,然后可以登录进来。 按照这2种报错信息无法判断问题出现在哪里,通过ldap日志文件查看有通过AD认证并且有authenticate passed的字样,并且通过本地注册过的用户确实通过AD密码可以登录,故判断ladp部分配置应该正确。 在网上查找mediawiki的错误日志查看发现有debug功能可以打开,上面已经注明。打开后看到了具体报错信息,是显示没有一个表。 3、数据库是在mediawiki第一次部署时自动创建的,并没有这个表,故判断可能AD认证相关功能需要额外的表支持,mediawiki通过AD认证后获取的用户名自动创建到自己的user表中。所以会有账号创建的过程,可能在此过程中需要一张表,这在网上的mediawiki集成ldap的教程中都未体现。 4、根据报错信息在mysql中创建一个表,并创建相关字段后,使用没有注册过的本地账号选择域账号认证后可以正常登录。在user表中也自动创建了登录的用户。
针对这个问题,我想说的是更新一下LDAP插件到LdapAuthentication-master-662eaaf.tar.gz这个版本,然后在根目录下的maintenance执行update.php基本就没有那些问题了,我测试这个版本目前是没有这种问题了。当然有问题还请博友告知,然后我登录数据库的时候发现多了一个表字段。
MariaDB [(none)]> SHOW INDEX FROM `wikidatabase`.`ldap_domains`; +--------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +--------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | ldap_domains | 0 | PRIMARY | 1 | domain_id | A | 6 | NULL | NULL | | BTREE | | | | ldap_domains | 1 | user_id | 1 | user_id | A | 6 | NULL | NULL | | BTREE | | | +--------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 2 rows in set (0.00 sec)
最后要说的是查看LDAP日志需要到/tmp/systemd-private-1aeb9eff3a37476da654dcbb0d2d7260-httpd.service-jJJF6S类似这样的一个目录下面的/tmp/ldap.log怎么会这样呢?我也说不清楚,调试时能看到动态信息,还是管用的。
四、配置首页logo图片
在网页根目录下找到/var/www/mediawiki/resources/assets并上传做好的图片至此处。
[root@wiki mediawiki]# cd /var/www/mediawiki/resources/assets
五、设置网站的时区
在此设置的是上海时区修改LocalSettings.php
[root@wiki mediawiki]# vim LocalSettings.php +41 #timezone configure $wgLocaltimezone = "Asia/Shanghai"; date_default_timezone_set( $wgLocaltimezone );
六、设置邮件地址
[root@wiki mediawiki]# vim LocalSettings.php +56 $wgEmergencyContact = "tony.hu@163.com"; $wgPasswordSender = "tony.hu@163.com";
总结:
从运维的角度来看基本的网站已经搭建好了,剩下就是来发来优化网站的一些功能了,等真正上线的时候需要给网站做个定时备份数据库的功能,还有什么需要补充的,请博友提提建议。
参考网站:
升级php7方法:
https://blog.csdn.net/u012569217/article/details/77506902
升级MariaDB方法:
https://www.cnblogs.com/operationhome/p/9141881.html
LDAP加载:
https://www.mediawiki.org/wiki/Extension_talk:LDAP_Authentication
https://m.mediawiki.org/wiki/Manual:Update.php
https://www.pickysysadmin.ca/2013/05/13/how-to-configure-mediawiki-to-authenticate-against-active-directory-on-centos/
转载于:https://blog.51cto.com/hwg1227/2160677
最后
以上就是温婉世界为你收集整理的MediaWiki-1.31.0+PHP-LDAP安装详细步骤的全部内容,希望文章能够帮你解决MediaWiki-1.31.0+PHP-LDAP安装详细步骤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复