我在本地服务器上安装了简单的 Web 服务 (MediaWiki)。在我的 DSN 服务器中,我已将 IP 地址设置为此 Web 服务器,因此现在当我在浏览器中调用时(这仅在我的域 IP 范围内有效),www.mydomain.com
我会访问 Apache 网站,当我调用www.mydomain.com/mediawiki
时,我的 mediawiki 网站就会打开。
我可以在浏览器中实现这一点吗(我仍然希望它只在域范围内工作)我称之为www.mydomain.com
打开-重定向到www.mydomain.com/mediawiki
?
答案1
为此,您需要更改000-default.conf
位于的默认虚拟主机配置文件的内容/etc/apache2/sites-available/
。或者您可以创建一个新的虚拟主机配置文件,然后必须禁用000-default.conf
并启用新的配置文件。
假设您决定创建一个新的 VH 配置文件,我们将其命名为my.wiki.org.conf
,它应该位于/etc/apache2/sites-available/
并且其内容应该是这样的:
<VirtualHost *:80>
ServerName my.wiki.org
ServerAdmin [email protected]
# According MWiki Manual:Security
php_flag register_globals off
ErrorLog ${APACHE_LOG_DIR}/my.wiki.org.error.log
CustomLog ${APACHE_LOG_DIR}/my.wiki.org.access.log combined
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
DocumentRoot "/var/www/my.wiki.org"
<Directory "/var/www/my.wiki.org">
Options None FollowSymLinks
#Allow .htaccess:
AllowOverride All
Require all granted
</Directory>
# According to MWiki Manual:Security
<Directory "/var/www/my.wiki.org/images">
Options -Indexes
# Allow .htaccess files
AllowOverride All
# Serve HTML as plaintext, don't execute SHTML
AddType text/plain .html .htm .shtml .php .phtml .php5
# Don't run arbitrary PHP code.
php_admin_flag engine off
# If you've other scripting languages, disable them too.
</Directory>
# According to MWiki Manual:Security
<Directory "/var/www/my.wiki.org/images/deleted">
Deny from all
AllowOverride AuthConfig Limit
Require local
</Directory>
</VirtualHost>
然后禁用000-default.conf
、启用my.wiki.org.conf
并重新启动(或重新加载)Apache 的配置:
sudo a2dissite 000-default.conf
sudo a2ensite my.wiki.org.conf
sudo systemctl restart apache2.service
这里的关键点是你改变了DocumentRoot
虚拟主机的 MediaWiki 安装目录。我假设此目录为/var/www/my.wiki.org
。
此外,如果您想通过my.wiki.org/wiki/Article_name
而不是 来提供您的 wiki 文章,您可以在目录中的文件my.wiki.org/index.php/Article_name
中添加以下几行:.htaccess
DocumentRoot
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2 [L,QSA,B]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
</ifModule>
并按如下方式修改LocalSettings.php
:
$wgScriptPath = "";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
关于本附加部分的参考资料:
为了测试目的,您可以在文件中添加几行代码,如下所示,/etc/hosts
以便通过 FDQN 访问您的 wiki,而不是本地主机或 LAN 中的 IP 地址(更多细节):
127.0.0.1 localhost my.wiki.org # access my.wiki.org from the same machine
192.168.0.150 my.wiki.org # access my.wiki.org that is hosted on another LAN machine with IP 192.168.0.150
对于公共服务器还有一个安全注意事项:
另请阅读: