ECS7天实践进阶训练营Day2:基于阿里云ECS部署MediaWiki
一、概述
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的魅力。
ECS7天实践进阶训练营Day2:基于阿里云ECS部署MediaWiki的更多相关文章
- 基于阿里云ECS的phpwind网站备案前如何远程访问调试?
基于阿里云ECS的phpwind网站部署非常方便,但云主机的外网IP绑定域名却比较复杂.先要申请域名,成功后还需要备案.尤其是企业网站备案,需要提交的资料较多,准备资料以及审批的时间较长.这段时间在外 ...
- 用阿里云ecs部署kubernetes/K8S的坑(VIP、slb、flannel、gw模式)
1 阿里云ecs不支持keepalived vip 1.1 场景描述 本来计划用keepalived配合nginx做VIP漂移,用以反代多台master的apiserver的6443端口,结果部署了v ...
- ECS7天实践进阶训练营Day1:使用阿里云ECS,快速搭建、管理VuePress静态网站
一.概述 VuePress是2018年由尤雨溪发布的一个全新的基于Vue的静态网站生成器,它是一个非常轻量级的静态网站生成器.VuePress主要用于生成技术文档,其类似于Gitbook,我们可以用于 ...
- 阿里云ECS部署ES
背景 最近越来越多的公司把业务搬迁到云上,公司也有这个计划,自己抽时间在阿里云和Azure上做了一些小的尝试,现在把阿里云上部署ES和kibana记录下来.为以后做一个参考,也希望对其他人有帮助. 这 ...
- 部署:阿里云ECS部署Docker CE
1 部署阿里云ECS,选择CentOS操作系统,并启动实例: 2 部署Docker CE: a.检查centos版本: $ cat /etc/redhat-release CentOS Linux r ...
- 阿里云ECS部署Redis主备哨兵集群遇到的问题
一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www ...
- ECS7天实践进阶训练营Day5:使用ECS自建云端下载服务器
一.概述 CCAA是服务器离线下载解决方案包,其组件中包含了Aria2提供了离线下载功能,能支持HTTP/HTTPS/FTP/BT/磁力链下载等常用离线下载模式及断点续传等功能.ccaa_web支撑于 ...
- 基于阿里云ecs(centos 7) 安装jenkins
1. 安装好 jdk 2. 官网(https://pkg.jenkins.io/redhat-stable/)下载rpm包(稳定版): wget https://pkg.jenkins.io/redh ...
- 基于阿里云 ecs 使用 docker 方式部署 showDoc
官网文档:https://www.showdoc.cc/help?page_id=65610 (建议先看下这个) 首先说明一下,我 ecs 镜像是 CentOS 7.6 64位 1. 首先在 服务器上 ...
随机推荐
- How to start MySQL on Linux
启动MySQL数据库 service mysql start 查看MySQL进程 ps -ef |grep mysql 查看MySQL端口号 cd /etc/init.d/ netstat -atnp ...
- HotSpot VM垃圾收集器
最常用的HotSpot VM垃圾收集器是分代垃圾收集.该方案是基于两个观察事实. 大多数分配对象的存活时间很短. 存活时间久的对象很少引用存活时间短的对象. 上述两个观察事实统称为弱分代假设(Weak ...
- SpringBoot代码生成器
Code-Generate 代码生成器 简介 一个基于原生Mysql & SpringBoot & Mybatis 的代码生成器,建表之后即可完全解放双手,适合: 规律性定制化开发 解 ...
- 测试工程师想进BAT必须具备的几项素质
我发现一个奇怪的现象:总是听到身边的程序员朋友谈论BAT(中国大陆互联网的三大巨头:百度.阿里.腾讯)以及如何进入BAT,却鲜少有测试会去谈论或者考虑这些问题. 我不知道这是为什么,或者我就算知道也只 ...
- java实现判断时间是否为合法时间
最近遇到一个需求,输入字符串,判断为日期的话再进行后面的比较大小之类的操作,但是合法日期的格式也是比较多的,利用正则表达式又太长了.所以后面利用的方法就是,先把输入的字符串转成一种固定的时间格式,然后 ...
- 通过Vue实现的todolist
和接口对接的todolist因为有后台的存在,todolist获取的数据会一直存在不丢失(不管你如何刷新页面),思路如下: 首先得先搞到接口: 通过这个接口地址可以获取整段的数据,成功err为0. 于 ...
- python学完可以做什么?Python就业方向最全面的解析
乔布斯说过:“每一个人都应该学习如何编程,因为编程会教会你如何思考.”下一个时代是人机交互的时代,学习编程不是要让你成为程序员,而让你理解这个时代. 点击免费领取:全网最全python学习导图+14张 ...
- HashTable、HashMap与ConCurrentHashMap源码解读
HashMap 的数据结构 hashMap 初始的数据结构如下图所示,内部维护一个数组,然后数组上维护一个单链表,有个形象的比喻就是想挂钩一样,数组脚标一样的,一个一个的节点往下挂. 我们可以 ...
- MVC + EFCore 项目实战 - 数仓管理系统6 – 数据源管理上--使用view component完成卡片列表
上次课程我们完成了菜单的配置和开发里程碑的划定. 按照计划,我们先来开发数据仓库管理中的数据源管理(对应菜单为:数据仓库管理 / 数据源),首批支持的数据源是SQL SERVER数据库. 一.数据源管 ...
- .Net Core缓存组件(MemoryCache)【缓存篇(二)】
一.前言 .Net Core缓存源码 1.上篇.NET Core ResponseCache[缓存篇(一)]中我们提到了使用客户端缓存.和服务端缓存.本文我们介绍MemoryCache缓存组件,说到服 ...