版本说明:MediaWiki1.40.0、Centos7.9
1、操作系统部署与设置
1.1、安装Centos
这里不详细描述,网上也有很多方法。
1.2、网络配置(需要能联网,后面依赖环境的部署为在线部署方式)
1.2.1、关闭防火墙
如果对于安全防控要求较高,可以不关闭防火墙,但是网站需要用到的端口及策略要开通,以root帐号登录终端(后面不一一描述,操作系统端端均以root登录执行命令)输入以下命令执行:
systemctl stop firewalld.service
systemctl disable firewalld.service
1.2.2、设置静态网卡
(1)首先检查当前IP,在端终输入ip addr show命令,注意ifconfig如果是安装的最精简版本的系统,是没有带这个命令的。
(2)通过以上操作明确使用的网卡配置文件,一般为ens***如上图所示2
(3)然后编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-${ipdevice},${ipdevice}替换为上面网卡名称,如上面所示ens33。
命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改内容:
BOOTPROTO=static
ONBOOT=yes
增加静态网卡的IP地址、子网掩码、网关、DNS配置,如果不需要联外网可以不配置DNS。
IPADDR=192.168.30.36
NETMASK=255.255.255.0
GATEWAY=192.168.30.2
DNS1=8.8.8.8
DNS2=114.114.114.114
注意相应的变量根据自己地方实际的地址配置,这块网络知识需要行补充,如果实在不清楚的可以BOOTPROTO=dhcp未修改的情况下,设置完ONBOOT为yes后,重启网络,查询动态获取的信息参考进行配置。
(4)重启网络,检查是否生效
service network restart
ip addr show
检查静态IP是否修改过来
(4)ping网络,检查是否可以联网
例如:ping www.baidu.com 检查是否可以访问百度
以上准备完成后开展正式部署工作
2、依赖环境部署
MediaWiki1.40.0按官网描述需要php7.4及以上版本。
2.1、自带的php-common处理
查询当前已有的php:
rpm -qa|grep php
如果有则进行移除系:
yum remove php-common -y
yum remove php
2.2、安装PHP
2.2.1 PHP7.4及相关依赖环境安装
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y --enablerep=remi --enablerepo=remi-php74 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUint php-pecl-xdebug php-intl php-pear php-zip
yum install -y --enablerepo=remi --enablerepo=remi-php74 php-fpm
yum --enablerepo=remi-php74 install -y php-gd php-mysql php-mbstring php-xml php-mcrypt
yum install -y libpng libpng-devel libjpeg libjpeg-devel gd gd-devel libcurl-devel
yum install wget git composer
2.2.2、PHP版本确认
php -v
2.2.3、PHP启动与设置
(1)启动
systemctl start php-fpm
(2)停止
systemctl stop php-fpm
(3)重启
systemctl restart php-fpm
(4)设置开机启动
systemctl enable php-fpm
默认要设置开机启动,并在当前启动好php
2.3、安装Apache服务及其扩展包
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql
(1)启动
systemctl start httpd.service
(2)停止
systemctl stop httpd.service
(3)重启
systemctl restart httpd.service
(4)设置开机启动
systemctl enable httpd.service
默认要设置开机启动,并在当前启动好Apache
2.4、安装及配置MySQL
2.4.1MySQL安装
(1)创建存储目录
cd /usr/local/mysql
#如果没有则新建
mkdir -p /usr/local/mysql
(2)在线获取安装包,当前获取8.0版本
wget http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
#如果安装过程中出现GPG验证不通过的错误(不是必现问题,无意间发现,从网上找到了解决方案,查看解决方案地址),可以通过尝试执行以下命令:(要安装对应的gpg),建议先执行一下,因为切换相应数据源后无法执行。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
#因默云安装太慢,可以考虑使用国内数据他,需要修改相应数据获取源,参考方法:
https://www.cnblogs.com/hailun1987/articles/16218117.html
建议修改前先备份原始文件。
cd /etc/yum.repos.d
cp mysql-community.repo mysql-community.repo_bak
cp mysql-community-source.repo mysql-community-source.repo_bak
vi mysql-community.repo
vi mysql-community-source.repo
yum install mysql-server
注:/etc/yum.repos.d目录,编辑mysql-community.repo文件,把gpgcheck的值改成0即可
#检查是否已经设置为开机启动MySQL服务
systemctl list-unit-files|grep mysqld
#设置开机启动
systemctl enable mysqld.service
# 启动 MySQL
systemctl start mysqld.service
2.4.2、MySQL配置
#初始化
mysqld --initialize
#查看默认密码
grep 'temporary password' /var/log/mysqld.log
#使用临时密码进行连接,引号内为上面查看到的临时密码
mysql -uroot -p'获取的默认密码'
#修改密码,MySQL8.0在没有修改配置前,要求的密码复杂度较高
alter user 'root'@'localhost' identified by '12345678_aA';
#如果想设置简单密码,则相应进行默认参数的修改,如下所示:
set global validate_password.policy=LOW;
set global validate_password.length=6;
flush privileges;
alter user 'root'@'localhost' identified by '123456';
#远程访问授权
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
#通过命令exit退出MySQL,在终端设置防火墙端口开放,如果防火墙已关闭可不设置,如果开启防火墙需要打开相应端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent #关闭3306端口
firewall-cmd --reload # 配置立即生效
2.5、SQLITE版本更新
实际可以不进行处理,因为使用的是MySQL数据库,但为了避免mediawiki的安装提示警告,可以操作更新一下。
#更新SQLITE版本
whereis python3 |xargs rm -frv # 此为强制删除,也可以使用yum命令删除
mkdir -p /home/tools/sqlite3
cd /home/tools/sqlite3
wget https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
tar -zxvf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000
mkdir /usr/local/sqlite3.42
# 清除缓存
make clean
# 安装
make && make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo"/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig
#查看版本
sqlite3 -version
2.6、Apcu缓存
pecl install apcu
#You should add "extension=apcu.so" to php.ini
php -i | grep php.ini
#编辑php.in;终端下命令:vi /etc/php.ini增加以下内容
extension=apcu.so
apc.enabled=1
apc.enable_cli=1
3、安装配置MediaWiki
3.1、MediaWiki安装
# 在线获得 MediaWiki 安装包。注:需要可以有可访问wikimedia.org的方法,如果不能则通过其它方式获取,一般国内环境当前是无法获取的。
wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.40.0.tar.gz
# 解压
tar -xvf /home/mediawiki-1.40.0.tar.gz
# 移出 html 旧目录(如果有的话)
mv /var/www/html /var/www/old
# 部署 mediawiki-1.40.0至html 目录
mv /home/mediawiki-1.40.0 /var/www/html
#建议重启一次服务器
reboot
3.2、MediaWiki配置
3.2.1、默认配置
重启服务器后在浏览器中输入服务器IP地址进行访问
http://IP
例如上述配置服务器:http://192.168.30.36
根据自己的需要及前序的数据库信息进行自定义配置即可,前面配置完成后,在选项配置页,建议默认自带的扩展项、解析工具都钩选上。然后直接完成生成LocalSettings.php配置文件
最后将配置文件LocalSettings.php上传至服务器/var/www/html目录下,完成默认配置。
3.3.2、常规配置
(1)启动文件上传
这块其实在默认配置中就可以选择启用,如果没有启用则可以编辑LocalSettings.php修改$wgEnableUploads = true;即可
命令:vi /var/www/html/LocalSettings.php
(2)调整上传的文件类型,同样是修改LocalSettings.php增加相应上传类型的参数及相应的类型变量。例如:
$wgFileExtensions = array_merge($wgFileExtensions, array('png', 'jpg', 'jpeg', 'gif', 'pdf', 'txt', 'py', 'sql', 'tbx', 'mp4', 'avi', 'wmv', 'rar', 'zip', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'xmind', 'vsd', 'vsdx'));
(3)调整文件上传大小限制,需要修改/var/www/html/LocalSettings.php及/etc/php.ini以修改上传文件大小为100M为例:
第一步,修改/etc/php.ini中post_max_size与upload_max_filesize
注:如果内容太多不好找,可以使用vi的查找功能。在未进入编辑状态下,或者进入编辑状态下后按Esc退出编辑状态输入/要查找的内容。例如查找upload_max_filesize:
#– 按下 Shift + G – 按下大写字母 G跳到最后一行
第二步修改/var/www/html/LocalSettings.php中$wgMaxUploadSize与$wgUploadSizeWarning值,注意这边是字节值,所以100M为1024*1024*100