【问题标题】:Apache failing for MediaWikiApache 在 MediaWiki 上失败
【发布时间】:2020-07-17 09:54:19
【问题描述】:

我在编辑配置文件时犯了一个错误(新手)。但是现在我们的 Mediawiki 不再正确显示。页面会加载,但会显示错误,并且正常格式已消失。

  • 它本身的页面是白色的,并且缺少各种格式
  • 超链接显示为蓝色,尚未点击
  • 其他已点击的超链接显示为紫色
  • 标题以黑色显示

我假设错误在 000-default.conf 内。我试图自己找出错误并纠正它,但我已经到了一个我真的需要帮助的地步。所以我希望有人可以看看配置并找出问题所在。

服务器版本:Apache/2.4.29 (Ubuntu)

Header always unset "X-Powered-By"
Header always unset "Server"
Header unset Server
ServerSignature Off
ServerTokens Full
#xSecServerSignature Undisclosed
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin"
Header set X-Robots-Tag "noindex"
Header set X-Frame-Options "SAMEORIGIN"
Header set Feature-Policy "fullscreen *"

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerName wiki.example.com
    AllowEncodedSlashes On
    Redirect permanent "/" "https://wiki.example.com"

    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/mediawiki/"
    <Directory "/var/www/mediawiki/">
            Options +FollowSymLinks +Includes +ExecCGI
            AllowOverride All
            RewriteEngine On
            RewriteBase /mediawiki/
            RewriteRule ^index\.php$ - [S=1]
            RewriteRule ^load\.php$ - [S=1]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . index.php [L]
            Require all granted
    </Directory>

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn
    #LogLevel Debug

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !EDH !RC4"
SSLPassPhraseDialog  builtin
#SSLSessionCache "shmcb:/opt/bitnami/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost *:443>
    ServerName wiki.example.com"
    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/mediawiki/"
    SSLEngine on
    SSLCertificateFile "/var/www/certs/server.pem"
    SSLCertificateKeyFile "/var/www/certs/server.key"
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    <Directory "/var/www/mediawiki/">
            Options +FollowSymLinks +Includes +ExecCGI +MultiViews
            AllowOverride All
            RewriteEngine On
            RewriteBase /
            RewriteRule ^index\.php$ - [S=1]
            RewriteRule ^load\.php$ - [S=1]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . index.php [L]
            Require all granted
    </Directory>

    <Directory "/var/www/mediawiki/cache">
            Deny from all
    </Directory>

    <Directory "/var/www/mediawiki/images">
           Deny from all
    </Directory>

    # Protect against bug T30235
    <IfModule rewrite_module>
            RewriteEngine On
            RewriteOptions inherit
            RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
            RewriteRule . - [forbidden]
            # Fix for bug T64289
            Options +FollowSymLinks
    </IfModule>

    <Directory "/var/www/mediawiki/includes">
            Deny from all
    </Directory>
    <Directory "/var/www/mediawiki/languages">
            Deny from all
    </Directory>
    <Directory "/var/www/mediawiki/maintenance">
            Deny from all
    </Directory>
    <Directory "/var/www/mediawiki/mainwiki/maintenance/archives">
            Deny from all
    </Directory>
    <Directory "/var/www/mediawiki/mainwiki/serialized">
            Deny from all
    </Directory>
    <Directory "/var/www/mediawiki/mainwiki/tests">
            Deny from all
    </Directory>

#LogLevel Debug
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
#prevent https rewrite for parsoid server
<VirtualHost localhost:8142>
</VirtualHost>

【问题讨论】:

标签: apache ubuntu apache2 mediawiki


【解决方案1】:

看来RewriteRule . index.php [L] 是罪魁祸首。它处理load.php,加载所有CSS和JavaScript,破坏它。

您可以在 Firefox 中按 F12,选择“网络”选项卡并点击已加载文件列表中的 load.php 链接之一。走着瞧吧。很可能,它会被重定向到 wiki 页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 2016-04-19
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多