一、概述

MediaWiki是全球最著名的开源Wiki程序,运行于PHP+MySQL环境,MediaWiki从2002年被作为维基百科的系统软件,并由大量其他应用实例(例如萌娘百科),因此MediaWiki是建立Wiki网站的首选后台程序。MediaWiki一直保持着持续更新,且经受过重量级应用的考验,功能丰富却架设简单。

二、LAMP环境部署

前面我们讲到过,MediaWiki是运行在PHP+MySQL环境中的,且在Day1中我们所创建的ECS服务器镜像是Linux(CentOS7.3),因此适用于LAMP或LNMP方案,本文我们采取最经典的LAMP部署方法。

在训练营中,阿里云给出的方法是直接从镜像商店找现成的LAMP镜像进行系统盘替换,但好歹我们参加的是进阶训练营,已经有点基础的一雷岂能忍受那么简单的部署方法吗?妥妥的选择手动部署了。Linux手动搭建LAMP环境主要有以下四种方法:

  ① 通过Docker技术搭建:使用方便,安装速度快,但Docker一雷尚未学习

  ② 通过LAMP一键安装包搭建(Shell脚本):使用方便,安装速度慢

  ③ 源码编译安装:使用不方便,安装速度慢,但较大程度的考验了Linux使用能力

  ④ 通过yum源快速安装:使用方便,安装速度快,但功能的自定义性较差

综上所处,明知山有虎,偏向虎山行的一雷,遂决定源码安装方法。

A.准备编译环境

将防火墙及SELinux关闭

在ECS实例安全组的入方向添加规则放行所需端口

B.安装Apache

依次执行如下命令安装依赖包

 [root@hoshizora_lei ~]# yum groupinstall -y "Development Tools"
[root@hoshizora_lei ~]# yum install -y libtool
[root@hoshizora_lei ~]# yum install -y expat-devel pcre pcre-devel openssl-devel

依次运行如下命令下载并解压Apache,Apr和Apr-util源码包

 [root@hoshizora_lei ~]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.43.tar.gz
[root@hoshizora_lei ~]# wget https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
[root@hoshizora_lei ~]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
[root@hoshizora_lei ~]# tar -zxvf httpd-2.4..tar.gz -C /usr/local/src
[root@hoshizora_lei ~]# tar -zxvf apr-1.6..tar.gz -C /usr/local/src
[root@hoshizora_lei ~]# tar -zxvf apr-util-1.6..tar.gz -C /usr/local/src

依次运行如下命令把Apr和Apr-util的文件夹移到Apache的srclib文件夹下

依次运行如下命令编译源码

涉及重要指令:

[root@hoshizora_lei ~]# ./buildconf
[root@hoshizora_lei ~]# ./configure --prefix=/usr/local/apache2 \
--enable-ssl \
--enable-so \
--with-mpm=event \
--with-included-apr \
--enable-cgi \
--enable-rewrite \
--enable-mods-shared=most \
--enable-mpms-shared=all
[root@hoshizora_lei ~]# make && make install

设置PATH环境变量

[root@hoshizora_lei ~]# echo "export PATH=$PATH:/usr/local/apache2/bin" > /etc/profile.d/httpd.sh
[root@hoshizora_lei ~]# source /etc/profile.d/httpd.sh

运行httpd -v命令可查看Apache的版本号

添加Apache启动配置文件

涉及重要配置信息:

[Unit]
Description=The Apache HTTP Server
After=network.target [Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl -k start
ExecReload=/usr/local/apache2/bin/apachectl -k graceful
ExecStop=/usr/local/apache2/bin/apachectl -k graceful-stop
PIDFile=/usr/local/apache2/logs/httpd.pid
PrivateTmp=false [Install]
WantedBy=multi-user.target

服务开启,设置开机自启动

查看安装结果

在浏览器中输入http://ECS实例公网IP,若跳出如下界面,即Apache服务启动成功

C.安装MySQL

准备MySQL编译环境和工作目录

[root@hoshizora_lei ~]# yum install -y ncurses-devel bison gnutls-devel
[root@hoshizora_lei ~]# yum install -y cmake

依次运行如下命令下载MySQL源码包并解压

[root@hoshizora_lei ~]# wget https://dev.mysql.com/get/Downloads/mysql-5.6.24.tar.gz
[root@hoshizora_lei ~]# tar -zxvf mysql-5.6..tar.gz -C /usr/local/src

涉及重要配置信息:

[root@hoshizora_lei ~]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mnt/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP= \
-DMYSQL_TCP_PORT= \
-DDEFAULT_CHARSET=utf8 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SYSTEMD= \
-DINSTALL_SYSTEMD_UNITDIR=/usr/lib/systemd/system

初始化数据库并复制配置文件

修改配置文件中的安装路径及数据目录存放路径

[root@hoshizora_lei ~]# echo -e "basedir = /usr/local/mysql\ndatadir = /mnt/data\n" >> /etc/my.cnf

修改MySQL启动配置文件

涉及重要配置信息:

[Unit]
Description=MySQL Community Server
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target
Alias=mysql.service [Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld
TimeoutSec=
Restart=always
PrivateTmp=false

设置PATH环境变量

[root@hoshizora_lei ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@hoshizora_lei ~]# source /etc/profile.d/mysql.sh

服务开启,设置开机自启动

修改MySQL的root用户密码,并按界面提示设置密码

查看安装结果

D.安装PHP

安装依赖包

[root@hoshizora_lei ~]# yum install -y libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel

依次运行如下命令下载源码包并解压编译安装

涉及重要配置信息:

[root@hoshizora_lei ~]# wget https://cn2.php.net/get/php-7.0.32.tar.bz2/from/this/mirror
[root@hoshizora_lei ~]# ./configure --prefix=/usr/local/php \
--with-config-file-scan-dir=/etc/php.d \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/etc \
--with-pdo-mysql=mysqlnd \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-openssl \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-bz2

复制PHP的配置文件

[root@hoshizora_lei ~]# cp php.ini-production /etc/php.ini

编辑Apache配置文件

[root@hoshizora_lei ~]# vim /usr/local/apache2/conf/httpd.conf

    找到ServerName参数,添加ServerName localhost:80

    

    找到Directory参数,在Require all denied前面添加#,然后添加Require all granted

    

    找到DirectoryIndex index.html,将它替换为DirectoryIndex index.php index.html

    

    找到如下内容,在后面添加如下内容

    

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

    

添加Apache对解析PHP的支持

Apache服务重启,验证是否解析成功

二、LAMP环境部署

下载MediaWiki源码包

下载地址:https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.1.tar.gz

使用Xftp,将之前网站项目(默认主页)的文件转移到备份文件夹中

将源码包上传至ECS实例中

解压缩,将解压缩后的文件移动到网站根目录下

为目录赋权(如无用户则需使用useradd指令创建用户)

[root@hoshizora_lei ~]# useradd -s /sbin/nologin www

访问http://ECS公网IP,点击set up the wiki

将下载的 LocalSettings.php 文件上传到根目录

重新访问http://ECS公网IP,就可以访问新搭建的wiki系统了

至此,MediaWiki的部署过程全部展示完毕

MeidiaWiki中的更多强大功能还请各位自行挖掘,体会搭建属于自己的wiki的魅力。

最新文章

  1. git 行动指南
  2. 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】
  3. POJ 1850 Code
  4. myBatis自动生成mapping,dao和model
  5. python (10) 文件夹的创建与文件夹的删除
  6. android——wifi系统架构
  7. Java学习笔记--注解
  8. EF中的连接字符串
  9. Linux下I/O多路转接之epoll(绝对经典)
  10. Oracle 数据库禁止全表访问的时候direct path read /////
  11. VS2017 Debug断点后显示UTF8字符串
  12. Inno Setup 系列之安装、卸载时调用bat
  13. python——二分查找算法
  14. 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute
  15. Struts上传文件
  16. Confluence 6 空间标识
  17. mac上使用jmeter录制web项目和手机app
  18. UICollectionView 常用操作
  19. CSS布局总结及实际应用中产生的问题
  20. centos配置静态ip地址

热门文章

  1. Python之爬虫(七)正则的基本使用
  2. Django之 url组件
  3. Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型
  4. 让 axios 支持 finally
  5. day6 python while,for 循环控制
  6. 手写简易SpringMVC
  7. Java常用API(Math类)
  8. C++11多线程编程--线程创建
  9. Harbor打怪升级
  10. MapReduce之MapTask工作机制