Переменные Apache2 Config не определены
Я новичок в Apache2, так что терпите меня.
Я следовал этому руководству, чтобы заставить HTTPS работать с сервером Flask.
Я продолжаю получать один и тот же вывод, когда я запускаю apache2
команда:
[Wed Nov 28 01:42:32.210442 2018] [core:warn] [pid 1184] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Wed Nov 28 01:42:32.210921 2018] [core:warn] [pid 1184] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Wed Nov 28 01:42:32.211029 2018] [core:warn] [pid 1184] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Wed Nov 28 01:42:32.211138 2018] [core:warn] [pid 1184] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.219990 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
[Wed Nov 28 01:42:32.220662 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221009 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221106 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221304 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221421 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221710 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Nov 28 01:42:32.221808 2018] [core:warn] [pid 1184:tid 139772922629056] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00543: apache2: bad user name ${APACHE_RUN_USER}
Я пробовал ответить на несколько вопросов StackOverflow, AskUbuntu и ServerFault, но ни один из них не помог. Я застрял и не знаю, что делать. Я отредактирую вопрос на то, что нужно от других людей (например, код или что-то из файла conf)
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: я пошел на небезопасный (не https) IP, и я получил общий Apache "Это работает!" стр. Если я перехожу в защищенный (https) домен, я получаю 500 Внутренняя ошибка сервера.
EDIT2: Вот мой текущий файл VirtualHost:
<VirtualHost *:80>
ServerName xerix.me
ServerAlias www.xerix.me
ServerAdmin admin@xerix.me
WSGIScriptAlias / /var/www/cf/cf.wsgi
<Directory /var/www/cf/cf/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/cf/cf/static
<Directory /var/www/cf/cf/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =xerix.me [OR]
RewriteCond %{SERVER_NAME} =www.xerix.me
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
EDIT3:
Nov 28 01:50:34 xerix systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit apache2.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit apache2.service has begun starting up.
Nov 28 01:50:34 xerix systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit apache2.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit apache2.service has finished starting up.
--
-- The start-up result is RESULT.
EDIT4:
[Wed Nov 28 02:43:15.319965 2018] [wsgi:error] [pid 2078:tid 139635571181312] [client :40218] Traceback (most recent call last):, referer: https://xerix.me/
[Wed Nov 28 02:43:15.320002 2018] [wsgi:error] [pid 2078:tid 139635571181312] [client :40218] File "/var/www/cf/cf.wsgi", line 7, in <module>, referer: https://xerix.me/
[Wed Nov 28 02:43:15.320215 2018] [wsgi:error] [pid 2078:tid 139635571181312] [client :40218] from cf import app as application, referer: https://xerix.me/
[Wed Nov 28 02:43:15.320252 2018] [wsgi:error] [pid 2078:tid 139635571181312] [client :40218] ImportError: cannot import name app, referer: https://xerix.me/
Спасибо!
0 ответов
Какие инструкции вам сказали использовать
apache2
прямо?
Эти инструкции неверны.
Начать следует с
systemctl
под Ubuntu/Debian.
Его также можно запустить (в масштабе всей системы), используя
/etc/init.d/apache2
(он же
service
команда) в Debian/Ubuntu. Также есть
apache2ctl
, но в наши дни лучше всего использовать systemctl / systemd:
$ sudo systemctl start apache2.service
(другие команды: перезапуск / перезагрузка / остановка / статус). См. Справочную страницу systemctl для получения дополнительной информации.
Но если вы настаиваете на том, чтобы запускать его "напрямую", вам нужно сначала создать среду.
Например:
$ apache2 -V | grep -i 'version\|mpm'
Вы, вероятно, увидите тот же тип вывода / ошибок, который был опубликован в вопросе.
Но:
$ source /etc/apache2/envvars
$ apache2 -V | grep -i 'version\|mpm'
- or one line:
$ source /etc/apache2/envvars && apache2 -V | grep -i 'version\|mpm'
Server version: Apache/2.4.29 (Ubuntu)
Server MPM: event
Должен дать вам правильный результат (показывает версию и работающий MPM). Получение переменных среды Apache перед запуском команды позволяет правильно читать / писать / анализировать необходимые данные о местоположении файлов.
Запуск его как демона / веб-службы (как пользователь root) с помощью
apache2
Команда также должна работать, если сначала будет получена текущая рабочая среда. Однако я не вижу причин делать это в Debian/Ubuntu и большинстве зрелых дистрибутивов. Также ПРИМЕЧАНИЕ: вы должны работать как пользователь root для веб-службы на порте 80/443. Пожалуйста, обратитесь к этому ответу, чтобы узнать почему.