Настройка apache2 для mediawiki

Для MediaWiki работать над apache2 файлом /etc/apache2/conf/mediawiki необходимо. Где я могу найти его?

1 ответ

Хорошей идеей является создание выделенного виртуального хоста (который будет запускать отдельный поддомен) для каждого MediaWiki на вашем сервере. Apache2 virtualhost.conf файлы содержатся в папке /etc/apache2/sites-available/,

Например, файл конфигурации VH может быть назван следующим образом (обратите внимание, что его имя должно заканчиваться на .conf): /etc/apache2/sites-available/wiki.example.com.conf, И его примерное содержание должно быть примерно таким:

<VirtualHost *:80>

    ServerName wiki.example.com
    ServerAdmin admin@wiki.example.com

    # Redirect Requests to SSL
    Redirect permanent "/" "https://wiki.example.com/"

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

</VirtualHost>

<IfModule mod_ssl.c>

    <VirtualHost _default_:443>

            ServerName wiki.example.com
            ServerAdmin admin@wiki.example.com
            DocumentRoot /var/www/wiki.example.com

            # According MWiki Manual:Security
            php_flag register_globals off

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

            SSLEngine on
            SSLCertificateFile /etc/ssl/certs/wiki.example.com.crt
            SSLCertificateKeyFile /etc/ssl/private/wiki.example.com.key
            SSLCertificateChainFile /etc/ssl/certs/wiki.example.com.root-bundle.crt

            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
            </FilesMatch>

            <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
            </Directory>

            <Directory /var/www/wiki.example.com>
                    Options None FollowSymLinks
                    #Allow .htaccess
                    AllowOverride All
                    Require all granted
                    <IfModule security2_module>
                            SecRuleEngine Off
                            # or disable only problematic rules
                    </IfModule>
            </Directory>

            # According to MWiki Manual:Security
            <Directory /var/www/wiki.example.com/images>
                    # Ignore .htaccess files
                    AllowOverride None
                    # 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/wiki.example.com/images/deleted>
                    Deny from all
                    AllowOverride AuthConfig Limit
                    Require local
            </Directory>

    </VirtualHost>

</IfModule>

Обратите внимание, что этот пример для конфигурации с включенным HTTPS/SSL. Для чистого HTTP это должно выглядеть так:

<VirtualHost *:80>

    ServerName wiki.example.com
    ServerAdmin admin@wiki.example.com
    DocumentRoot /var/www/wiki.example.com

    # According MWiki Manual:Security
    php_flag register_globals off

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

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>

    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </Directory>

    <Directory /var/www/wiki.example.com>
            Options None FollowSymLinks
            #Allow .htaccess
            AllowOverride All
            Require all granted
            <IfModule security2_module>
                    SecRuleEngine Off
                    # or disable only problematic rules
            </IfModule>
    </Directory>

    # According to MWiki Manual:Security
    <Directory /var/www/wiki.example.com/images>
            # Ignore .htaccess files
            AllowOverride None
            # 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/wiki.example.com/images/deleted>
            Deny from all
            AllowOverride AuthConfig Limit
            Require local
    </Directory>

</VirtualHost>

Для активации VirtyalHost вам нужно запустить:

sudo a2ensite wiki.example.com.conf
sudo systemctl restart apache2.service

Читайте также:

Другие вопросы по тегам