前言
最近想做个wiki,接触了一下mediawiki,感觉很不错,来来回回配置了几次,差不多初步熟悉了配置,今天把一切资料转移到正式服务器上,顺便写个博客来记录一下过程。
一:基本环境搭建
1 扩展虚拟内存
服务器内存有点小,只有2G,所以我打算拓展个4G虚拟内存
查看内存情况
free -m创建要作为swap分区的文件:增加4GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)
dd if=/dev/zero of=/var/swap bs=1M count=4096格式化为交换分区文件
mkswap /var/swap启用交换分区文件:
swapon /var/swap查看下扩充后的内存
free -m
在文件最后加入:
echo '/var/swap swap swap defaults 0 0' >> /etc/fstab
注:ubuntu 不支持barrier,所以正确写法是:
echo '/var/swap swap swap defaults barrier=0 0 0' >> /etc/fstab
2 安装PHP
小心不要安装php73,而是要安装php,然后这个php版本是73
yum -y install gcc gcc-c++
1.要安装PHP 7,您必须使用以下命令在CentOS 7系统上安装和启用EPEL和Remi存储库。
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm2.接下来,您需要安装yum-utils,这是一组用于管理yum存储库和包的有用程序。它有基本上扩展yum默认功能的工具。
它可用于管理(启用或禁用)yum存储库以及包,无需任何手动配置等等。
yum -y install yum-utils3. yum-utils提供的程序之一是yum-config-manager,您可以使用它来启用Remi存储库作为安装不同PHP版本的默认存储库,如图所示。
yum-config-manager --enable remi-php71 [ 安装PHP 7.1 ]
yum-config-manager --enable remi-php72 [ 安装PHP 7.2 ]
yum-config-manager --enable remi-php73 [ 安装PHP 7.3 ]4.现在使用以下命令安装PHP 7以及所有必需的模块。
yum -y install php php-mcrypt php-devel php-cli php-gd php-pear php-curl php-fpm php-mysql php-ldap php-zip php-fileinfo5.查看php版本
php -v6.启动php-fpm
systemctl start php-fpm
开启启动
systemctl enable php-fpm.service
查看php.ini文件位置
php -ini还有一些不知道用不用的到的插件
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel php-apcu php-apcu-bc php-mysqliz intl一定要安装yum install libicu-devel
yum install php-intl
3安装python
不管三七二十一,先安装上python
yum -y install epel-release yum repolist yum -y install python36
4安装mysql8.0
# 安装依赖包
yum install -y libaio wget
# 从mysql官网获取8.0版rpm包
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum localinstall -y mysql80-community-release-el7-3.noarch.rpm
# 查看当前安装的 MySQL 版本
yum repolist enabled | grep mysql
# 通过 Yum 来安装 MySQL,自动处理 MySQL 与其他组件的依赖关系
yum install -y mysql-community-server
# 给与mysql文件夹权限,不然无法启动
chown -R mysql /var/lib/mysql
# 启动mysql
systemctl start mysqld
MySQL安全配置
# 初始化&空密码 mysqld --initialize-insecure # 不过不执行上述命令,需要查询一下临时密码 grep 'temporary password' /var/log/mysqld.log # 安全配置,全部选y,密码规则建议选最高(至少一个大写字母和一个特殊字符) mysql_secure_installation
5安装Apache
#centos7中apache是httpd yum -y install httpd # 启动httpd systemctl start httpd.service # 设置为开机启动 systemctl enable httpd.service # 添加防火墙规则,允许http和https访问 firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
6开启HTTPS
yum install -y mod_ssl # 将证书文件移动到相应文件夹(以腾讯云为例) mv 1_root_bundle.crt /etc/pki/tls/certs/ mv 2_www.luckycat.xyz.crt /etc/pki/tls/certs/ mv 3_www.luckycat.xyz.key /etc/pki/tls/private/ # 编辑SSL配置文件,写入证书所在位置 vi /etc/httpd/conf.d/ssl.conf SSLCertificateChainFile /etc/pki/tls/certs/1_root_bundle.crt SSLCertificateFile /etc/pki/tls/certs/2_sfsettings.com.crt SSLCertificateKeyFile /etc/pki/tls/certs/3_sfsettings.com.key # 设定服务器地址 vi /etc/httpd/conf/httpd.conf ServerName luckycat.xyz:80 # 重启Apache systemctl restart httpd.service
7HTTP强转HTTPS
查找配置文件并修改/etc/httpd/conf/httpd.conf,主要是把AllowOverride 的值改成All
<Directory "/var/www/html">
Options Indexes FollowSymLinksAllowOverride All
Require all granted
</Directory>
然后在需要跳转的网站根目录,也就是80端口的网站根目录/var/www/html下编辑.htaccess文件,没有就新建
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
8部署Nodejs环境
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
sudo yum -y install nodejs
二 安装mediawiki
1 安装mediawiki
这块建议直接跳转到这:
2 VisualEditor与parsoid安装
parsoid安装
yum install git npm
git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/services/parsoid/deploy
git clone https://gerrit.wikimedia.org/r/mediawiki/services/parsoid
cd parsoid
npm install
配置文件
cp config.example.yaml config.yaml
配置细节建议跳转
Parsoid编辑器安装搭建_Micky_Yang的博客-CSDN博客_parsoid
运行parsoid
node bin/server.js
创建启动服务脚本
vim /usr/lib/systemd/system/parsoid.servic
[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
User=nobody
Group=nobody
WorkingDirectory=/home/parsoid
EnvironmentFile=-/home/parsoid/parsoid.env
ExecStart=/usr/bin/node /home/parsoid/bin/server.js
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog
systemctl daemon-reload
systemctl enable parsoid && systemctl start parsoid && systemctl status parsoid
查看端口
netstat -tunlp | grep 8000
PS:记得改配置后一定要重启服务
3安装memcached
安装 yum install memcached 运行 memcached -d -l 127.0.0.1 -p 11211 -m 64 -u root
设置LocalSettings.php
$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED; // optional
$wgMessageCacheType = CACHE_MEMCACHED; // optional
$wgMemCachedServers = [ '127.0.0.1:11211' ];
$wgSessionsInObjectCache = true; // optional -- removed in 1.33+
$wgSessionCacheType = CACHE_MEMCACHED; // optional
查看运行状态
ps -ef|grep memcached
4插件推荐
MediaWiki实用扩展程序介绍 - 忆兰居士的文章 - 知乎 https://zhuanlan.zhihu.com/p/64283626
未完待续