如何在Debian 9上使用Apache安装DokuWiki
本教程将向您介绍如何在Debian 9.2版本上安装和配置最新版本的DokuWiki CMS平台,以创建在线文档网站。
DokuWiki是一个完全用PHP编程语言编写的免费开源wiki应用程序,通常在Apache / Nginx Web服务器和PHP中部署在Linux中。
DokuWiki软件平台不需要运行RDBMS SQL数据库。 作为交换,它使用简单的纯文本文件作为后端以存储所有数据。 DokuWiki是一个简单而灵活的平台,它具有干净的语法,可以成功用于部署功能强大的协作文档网站。
要求
- 在裸机服务器或虚拟专用服务器上安装debian 9最少。
- 针对本地或远程帐户的sudo root权限或直接访问root帐户。
- 为您的系统网络接口卡之一配置的静态IP地址。
- 域名,私人或公共,取决于您的部署,以及为Web服务配置的正确DNS记录。 如果没有有效或已注册的域名,则可以执行安装并通过服务器IP地址访问网站。
- 如果您想使用网站注册,邮购确认和其他功能,则应该在您的场所正确配置运行中的邮件服务器,以便远程访问其.IMAP和SMTP服务。
前要求
在开始从您自己的服务器的源代码安装和配置DokuWiki之前,首先要确保系统符合编译和安装应用程序的所有软件要求。 在第一步中,通过发出以下命令来更新系统存储库和软件包。
apt update
apt upgrade
在下一步中,执行以下命令以安装一些必要的实用程序,这些实用程序将用于从命令行进一步管理您的系统。
apt install wget bash-completion zip unzip curl
系统完全更新并安装了管理服务器所需的实用程序后,请通过执行以下命令来设置系统名称(相应地替换您的主机名变量)。
hostnamectl set-hostname www.mywiki.com
通过发出以下命令验证计算机主机名和主机文件。
hostnamectl
cat /etc/hostname
hostname –s
hostname –f
接下来,通过发出以下命令来安装DokuWiki所需的ImageMagick软件来创建图像缩略图。
apt install imagemagick
最后,重新启动Debian服务器以正确应用内核更新和主机名更改。
init 6
DokuWiki是一个以PHP服务器端编程语言编写的基于web的CMS wiki平台。 为了执行应用程序的PHP文件脚本,必须在系统中安装并运行Web服务器(如Apache HTTP服务器和PHP处理网关)。 为了安装Apache Web服务器和PHP解释器以及应用程序正常运行所需的所有PHP模块,请在服务器控制台中发出以下命令。
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-curl php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-intl php-imagick php7.0-xml
在Apache和PHP安装完成后,测试Web服务器是否已启动并正在运行,并通过以root权限发出以下命令来监听端口80上的网络连接。
netstat –tlpn
如果netstat网络实用程序未在Debian系统上默认安装,请执行以下命令进行安装。
apt install net-tools
通过检查netstat命令输出,您可以看到Apache Web服务器正在监听端口80上的传入网络连接。对于同一任务,您还可以使用ss命令,该命令在Debian 9中默认自动安装。
ss- tulpn
如果您的系统上启用了防火墙(例如UFW防火墙应用程序),则应该添加新规则,以允许HTTP通信通过防火墙发出以下命令。
ufw allow WWW
要么
ufw allow 80/tcp
如果您使用iptables原始规则管理Debian服务器上的防火墙规则,请添加以下规则以允许防火墙上的端口80入站流量,以便访问者可以浏览您的wiki应用程序。
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service
接下来,启用并应用Web应用程序所需的以下Apache模块以激活weboot .htaccess文件。 运行以下命令:
a2enmod rewrite
systemctl restart apache2
最后,通过HTTP协议访问您的Debian计算机IP地址或您的域名或服务器FQDN,测试Apache Web服务器默认网页是否可以显示在客户端浏览器中,如下图所示。 如果您不知道机器的IP地址,请执行ifconfig或ip a命令以显示服务器的IP地址。
为了通过HTTPS协议安装并访问DowuWiki Web管理控制台后端和前端网站,以保护客户端的流量,请发出以下命令启用Apache Web服务器SSL模块和SSL站点配置文件。
a2enmod ssl
a2ensite default-ssl.conf
接下来,使用文本编辑器打开Apache默认SSL站点配置文件,并通过在DocumentRoot指令后面添加以下代码行来启用URL重写规则。 运行以下命令:
nano /etc/apache2/sites-enabled/default-ssl.conf
SSL站点配置文件摘录:
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
此外,对VirtualHost行进行以下更改,使其看起来像下面摘录中显示的那样:
<VirtualHost *:443>
关闭SSL Apache文件并打开/etc/apache2/sites-enabled/000-default.conf文件进行编辑,并为SSL配置文件添加相同的URL重写规则。 在DocumentRoot语句后面插入代码行,如以下示例中所示。
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
最后,重启Apache守护程序以应用到目前为止配置的所有规则,并通过HTTP协议访问您的域。 由于您使用的是安装时由Apache发出的自动签名证书对,一个不受浏览器信任的证书,应在浏览器中显示错误警告。
systemctl restart apache2
接受警告以接受不受信任的证书,并继续将其重定向到Apache默认网页,如下图所示。
如果UFW防火墙应用阻止传入网络连接到HTTPS端口,则应发出以下命令添加新规则以允许HTTPS流量通过防火墙。
ufw allow ‘WWW Full’
要么
ufw allow 443/tcp
如果iptables是安装的默认防火墙应用程序以在网络级别保护您的Debian系统,请添加以下规则以允许防火墙中的端口443入站流量,以便访问者可以浏览您的域名。
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
在下一步中,我们需要对PHP默认配置文件进行一些更改,以确保启用以下PHP变量,并且PHP时区设置已正确配置并与系统地理位置匹配。 打开/etc/php/7.0/apache2/php.ini文件进行编辑,并确保按照图示设置下列行。 此外,最初还要对PHP配置文件进行备份。
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini
在php.ini配置文件中搜索,编辑和更改以下变量:
file_uploads = On
default_charset = UTF-8
memory_limit = 128M
max_execution_time = 300
upload_max_filesize = 100M
short_open_tag = Off
output_buffering = Off
output_handler =
zlib.output_compression = Off
implicit_flush = Off
max_input_time = 60
max_input_vars = 10000
error_reporting = E_ALL & ~E_NOTICE
display_startup_errors = Off
log_errors = On
variables_order = “EGPCS”
register_argc_argv = Off
session.use_cookies = 1
date.timezone = Europe/London
增加upload_max_file_size变量以适应大型文件附件,并根据您的物理时间将time.zone变量替换为您的物理时间,方法是查看PHP文档提供的时区列表, 网址为http://php.net/manual/en/timezones .PHP
如果您想通过可用于PHP7的OPCache插件提高网站页面的加载速度,请在PHP解释器配置文件底部附加以下OPCache设置,详细信息如下:
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
关闭php.ini配置并通过发出以下命令重新启动apache守护程序来应用新的更改。
systemctl restart apache2
最后,通过执行以下命令来创建一个PHP信息文件,并通过访问以下URL中浏览器的PHP信息脚本文件来检查PHP时区是否已正确配置,如下图所示。 向下滚动到日期设置来检查PHP时区配置。
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
安装DokuWiki
在安装wiki文档CMS后,满足所有系统要求后,请访问DokuWiki官方下载页面, 网址为https://download.dokuwiki.org/,并通过发出以下命令获取系统中最新的稳定压缩包压缩存档。
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
zip存档下载完成后,将DokuWiki zip存档文件提取到当前工作目录,并通过发出以下命令列出提取的文件。 另外,将由Apache Web服务器安装的默认index.html文件移除到webroot路径,并删除先前创建的info.php文件。
tar xzvf dokuwiki-stable.tgz
ls
rm /var/www/html/index.html
rm /var/www/html/info.php
DokuWiki的安装文件位于dokuwiki-2017-20-19e目录的当前工作目录中。 发出ls命令以列出提取的目录文件。 通过发出以下命令,将提取的目录的所有内容复制到Web服务器文档根路径。 另外,请确保将隐藏文件.htaccess复制到HTTP服务器webroot路径。
ls dokuwiki-2017-02-19e/
cp -rf dokuwiki-2017-02-19e/* /var/www/html/
cp dokuwiki-2017-02-19e/.htaccess.dist /var/www/html/
接下来,执行以下命令以授予Apache运行时用户对Web根路径的完全写入权限。 使用ls命令列出位于/ var / www / html /目录中的应用程序已安装文件的权限。
chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/
接下来,通过打开浏览器继续DokuWiki安装过程,并通过HTTPS协议导航服务器的IP地址或域名或服务器FQDN并打开install.php脚本。
https://yourdomain.tld /install.php
在第一个安装脚本中,添加您的wiki平台的名称并选中启用ACL。 提供维基超级用户帐户名称,真实姓名和超级用户帐户的电子邮件地址,并选择强大的密码以保护超级用户帐户。
接下来,选择Public Wiki(为所有人阅读,为注册用户编写并上传)作为您的初始ACL策略,并取消选中允许用户自行注册,以禁用访问者的Wiki注册过程。 此外,从提供的选项中选择您最喜欢的内容许可证,并取消选中每月向DokuWiki开发人员发送一次匿名数据的选项。
完成后,点击保存按钮以应用配置。
在下一个屏幕上,安装程序会通知您,您的以前的配置已成功保存到位于Web服务器文档根路径中的DokuWiki配置文件,并且您可以删除安装文件。
在登录到您的wiki CMS后台管理面板之前,请返回服务器控制台并发出以下命令以删除安装文件并保护DokuWiki系统配置文件。
rm -rf /var/www/html/install.php
chown -R root:root /var/www/html/
chown -R www-data:root /var/www/html/data/
chown -R www-data:root /var/www/html/lib/plugins/
chown -R www-data:root /var/www/html/lib/tpl/
chown -R www-data:root /var/www/html/conf/local.php*
chown -R www-data:root /var/www/html/conf/users.auth.php
chown -R www-data:root /var/www/html/conf/acl.auth.php
chown -R www-data:root /var/www/html/conf/plugins.local.php*
为了访问您的wiki应用程序前端,只需通过HTTPS协议导航到您的服务器IP地址或域名,默认的DokuWiki将如下图所示显示。
要管理DokuWiki平台,请点击顶部登录链接并使用安装过程中配置的凭据登录DokuWiki后台管理面板 - 如下面的屏幕截图所示。
要进一步配置您的wiki平台,点击顶部的管理按钮,并使用管理链接来管理用户,ACL,扩展,模板样式设置或其他自定义设置。
最后,要强制访问者浏览wiki网站并通过HTTPS协议安全地访问后端界面,以加密服务器和客户端浏览器之间的流量,请返回到您的服务器终端并打开位于您网站文档根目录中的.htaccess文件路径,通过发出以下命令。
cp /var/www/html/.htaccess.dist /var/www/html/.htaccess
nano /var/www/html/.htaccess
然后,编辑.htaccess文件并在文件底部,可以使用下面的配置更改本机PHP服务器设置。 修改PHP设置以匹配您自己的服务器资源和配置。
.htaccess文件摘录:
# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M
最后,在.htaccess文件中添加以下规则,以自动将域流量重定向到HTTPS。
# Redirect to HTTPS for all pages including the main web page
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
Options -Indexes
</IfModule>
如果您只想将https重定向到https,只需登录,配置文件和管理页面,请将上述重定向规则替换为下面显示的规则。 在这种情况下,您的wiki网站的主页将不会被重定向到https协议。
# Switch to HTTPS on login, profile and admin actions
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{QUERY_STRING} do=(log|profile|admin)
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,QSA,L,NE]
就这样! 您已经在Debian 9.2中成功安装并配置了DokuWiki平台。 但是,由于Apache HTTP服务器使用自签名证书对服务器和访问者浏览器之间的流量进行加密,因此将始终生成警告消息并将其显示在其浏览器中。 此警告对您的网站声誉和搜索引擎优化不利。 在这种情况下,您应该购买由受信任的证书颁发机构颁发的证书或从Let's Encrypt CA获取免费证书对。
有关DokuWiki的其他自定义配置,请访问以下地址的文档页面: https : //www.dokuwiki.org/dokuwiki