Как создать веб-сайт Flask, обслуживаемый Apache, с блогом WordPress в / blog? - PullRequest
0 голосов
/ 05 января 2019

Я понимаю, что уже есть несколько похожих вопросов, но я не мог найти ответ, который дал бы мне понять, что мне нужно было сделать:

У меня есть капля DigitalOcean, которая обслуживает приложение Flask. Теперь я хотел бы иметь блог на WordPress в / blog. Я просмотрел инструкции по установке WordPress в DigitalOcean , но в них не было описания того, как изменить файл Apache .conf, чтобы он указывал на файл WordPress index.php.

Я попытался добавить Alias к моему .conf файлу, но он не работает. Когда я иду на /blog прямо сейчас, я вижу Apache по умолчанию "Это работает!" стр. Однако, если я перехожу на www.rhymecraft.guru/blog/wp-admin, он загружает панель администратора.

Apache .conf file

(Обратите внимание, что я установил WordPress в /var/www/html.)

WSGIDaemonProcess rhymecraft.guru processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup rhymecraft.guru

<VirtualHost *:80>
        ServerName www.rhymecraft.guru
        ServerAlias rhymecraft.guru
        ServerAdmin xxxx@gmail.com

        Alias /blog /var/www/html
        WSGIScriptAlias / /var/www/rhymecraft/server/rhymecraft.wsgi

        DocumentRoot /var/www/rhymecraft/server

        Alias /robots.txt /var/www/rhymecraft/server/robots.txt
        Alias /favicon.ico /var/www/rhymecraft/server/robots.txt

        <Directory /var/www/rhymecraft/server>
            Order allow,deny
            Allow from all
        </Directory>

        Alias /static /var/www/rhymecraft/server/static     

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.rhymecraft.guru [OR]
RewriteCond %{SERVER_NAME} =rhymecraft.guru
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
                ServerName www.rhymecraft.guru
                ServerAlias rhymecraft.guru
                ServerAdmin xxxx@gmail.com

                Alias /blog /var/www/html
                WSGIScriptAlias / /var/www/rhymecraft/server/rhymecraft.wsgi

                DocumentRoot /var/www/rhymecraft/server

                Alias /robots.txt /var/www/rhymecraft/server/robots.txt
                Alias /favicon.ico /var/www/rhymecraft/server/robots.txt

                <Directory /var/www/rhymecraft/server>
                        Order allow,deny
                        Allow from all
                </Directory>

                Alias /static /var/www/rhymecraft/server/static

                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/rhymecraft.guru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/rhymecraft.guru/privkey.pem
</VirtualHost>

Смежные вопросы и почему они не ответили на мой вопрос

1 Ответ

0 голосов
/ 05 января 2019

Я получил это работает.

Две вещи, которые мне нужно было сделать:

  1. Мне нужно было иметь строку Alias /blog /var/www/html в обеих записей VirtualHost. Сначала я только поместил его в запись порта 80 (нормальный HTTP-трафик), но забыл поместить его в запись порта 443 (трафик HTTPS).
    • Обратите внимание, что эти две записи VirtualHost будут доступны только при использовании HTTPS. Я использую Cloudflare и заставляю все запросы к веб-сайту использовать HTTPS, поэтому того факта, что я забыл добавить запись Alias ​​в запись VirtualHost порта 443, было достаточно, чтобы она не работала.
  2. Мне нужно было удалить файл Apache index.html по умолчанию, который находился в каталоге /var/www/html.
    • Apache предпочитал использовать это по сравнению с index.php файлом, который WordPress добавил в каталог.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...