Я работаю на своем ноутбуке в Ubuntu 18.04 и хотел бы попробовать использовать pgadmin
и Apache
, как если бы я работал на сервере.Я следую этому учебнику и сделал, как указано, за исключением виртуальной среды, которую я создал с помощью conda:
conda create -n pgadmin python=3.6
Для ServerName в /etc/apache2/sites-available/pgadmin4.conf
я просто использовал первый IP-адрес WXYZ, полученный от hostname -I
:
<VirtualHost *>
ServerName W.X.Y.Z
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/python_envs/pgadmin
WSGIScriptAlias / /home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/">
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
</VirtualHost>
Все еще только используя мой ноутбук, веб-сайт Apache по умолчанию отлично работает на этом IP-адресе в моем браузере, однако при использовании этого же IP-адреса после активации веб-сайта gadmin4 (sudo a2ensite pgadmin4.conf
) я получилошибка от Apache:
Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.
Пожалуйста, свяжитесь с администратором сервера по адресу [адрес не указан]чтобы сообщить им о времени, когда произошла эта ошибка, и о действиях, выполненных вами непосредственно перед этой ошибкой.
Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера.
Apache / 2.4.29 (Ubuntu) Сервер в порту WXYZ 80
Проверка Apache (apachectl configtest
) показалась нормальной:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Полный журнал ошибок дляm Apache (/var/log/apache2/error.log
) содержит следующее:
[Wed Dec 26 14:32:08.810269 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] mod_wsgi (pid=59825): Target WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as Python module.
[Wed Dec 26 14:32:08.810825 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] mod_wsgi (pid=59825): Exception occurred processing WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi'.
[Wed Dec 26 14:32:08.811011 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] Traceback (most recent call last):
[Wed Dec 26 14:32:08.811061 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi", line 36, in <module>
[Wed Dec 26 14:32:08.811097 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from pgAdmin4 import app as application
[Wed Dec 26 14:32:08.811107 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py", line 70, in <module>
[Wed Dec 26 14:32:08.811110 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] app = create_app()
[Wed Dec 26 14:32:08.811115 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 374, in create_app
[Wed Dec 26 14:32:08.811131 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] driver.init_app(app)
[Wed Dec 26 14:32:08.811135 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 40, in init_app
[Wed Dec 26 14:32:08.811137 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] DriverRegistry.load_drivers()
[Wed Dec 26 14:32:08.811142 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 88, in load_drivers
[Wed Dec 26 14:32:08.811144 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] module = import_module(module_name)
[Wed Dec 26 14:32:08.811148 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Wed Dec 26 14:32:08.811151 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] return _bootstrap._gcd_import(name[level:], package, level)
[Wed Dec 26 14:32:08.811154 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 27, in <module>
[Wed Dec 26 14:32:08.811157 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from .server_manager import ServerManager
[Wed Dec 26 14:32:08.811161 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 27, in <module>
[Wed Dec 26 14:32:08.811174 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
[Wed Dec 26 14:32:08.811179 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/sshtunnel.py", line 25, in <module>
[Wed Dec 26 14:32:08.811181 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] import paramiko
[Wed Dec 26 14:32:08.811185 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/__init__.py", line 22, in <module>
[Wed Dec 26 14:32:08.811187 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from paramiko.transport import SecurityOptions, Transport
[Wed Dec 26 14:32:08.811190 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/transport.py", line 38, in <module>
[Wed Dec 26 14:32:08.811193 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from paramiko.auth_handler import AuthHandler
[Wed Dec 26 14:32:08.811196 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/auth_handler.py", line 72, in <module>
[Wed Dec 26 14:32:08.811198 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from paramiko.ssh_gss import GSSAuth, GSS_EXCEPTIONS
[Wed Dec 26 14:32:08.811201 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/ssh_gss.py", line 45, in <module>
[Wed Dec 26 14:32:08.811204 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from pyasn1.type.univ import ObjectIdentifier
[Wed Dec 26 14:32:08.811207 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/type/univ.py", line 13, in <module>
[Wed Dec 26 14:32:08.811209 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] from pyasn1.compat import integer
[Wed Dec 26 14:32:08.811213 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/compat/integer.py", line 12, in <module>
[Wed Dec 26 14:32:08.811215 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] implementation = platform.python_implementation()
[Wed Dec 26 14:32:08.811218 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1265, in python_implementation
[Wed Dec 26 14:32:08.811221 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] return _sys_version()[0]
[Wed Dec 26 14:32:08.811224 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1223, in _sys_version
[Wed Dec 26 14:32:08.811227 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] repr(sys_version))
[Wed Dec 26 14:32:08.811239 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] ValueError: failed to parse CPython sys.version: '3.6.7 (default, Oct 22 2018, 11:32:17) \\n[GCC 8.2.0]'
[Wed Dec 26 14:32:09.642066 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] mod_wsgi (pid=59825): Target WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as Python module.
[Wed Dec 26 14:32:09.642149 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] mod_wsgi (pid=59825): Exception occurred processing WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi'.
[Wed Dec 26 14:32:09.642554 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] Traceback (most recent call last):
[Wed Dec 26 14:32:09.642631 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi", line 36, in <module>
[Wed Dec 26 14:32:09.642646 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from pgAdmin4 import app as application
[Wed Dec 26 14:32:09.642652 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py", line 70, in <module>
[Wed Dec 26 14:32:09.642655 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] app = create_app()
[Wed Dec 26 14:32:09.642659 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 374, in create_app
[Wed Dec 26 14:32:09.642662 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] driver.init_app(app)
[Wed Dec 26 14:32:09.642666 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 40, in init_app
[Wed Dec 26 14:32:09.642669 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] DriverRegistry.load_drivers()
[Wed Dec 26 14:32:09.642673 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 88, in load_drivers
[Wed Dec 26 14:32:09.642675 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] module = import_module(module_name)
[Wed Dec 26 14:32:09.642679 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Wed Dec 26 14:32:09.642682 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] return _bootstrap._gcd_import(name[level:], package, level)
[Wed Dec 26 14:32:09.642686 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 27, in <module>
[Wed Dec 26 14:32:09.642689 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from .server_manager import ServerManager
[Wed Dec 26 14:32:09.642693 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 27, in <module>
[Wed Dec 26 14:32:09.642696 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
[Wed Dec 26 14:32:09.642699 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/sshtunnel.py", line 25, in <module>
[Wed Dec 26 14:32:09.642702 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] import paramiko
[Wed Dec 26 14:32:09.642706 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/__init__.py", line 22, in <module>
[Wed Dec 26 14:32:09.642708 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from paramiko.transport import SecurityOptions, Transport
[Wed Dec 26 14:32:09.642712 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/transport.py", line 38, in <module>
[Wed Dec 26 14:32:09.642715 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from paramiko.auth_handler import AuthHandler
[Wed Dec 26 14:32:09.642718 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/auth_handler.py", line 72, in <module>
[Wed Dec 26 14:32:09.642721 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from paramiko.ssh_gss import GSSAuth, GSS_EXCEPTIONS
[Wed Dec 26 14:32:09.642724 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/ssh_gss.py", line 45, in <module>
[Wed Dec 26 14:32:09.642730 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from pyasn1.type.univ import ObjectIdentifier
[Wed Dec 26 14:32:09.642735 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/type/univ.py", line 13, in <module>
[Wed Dec 26 14:32:09.642737 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] from pyasn1.compat import integer
[Wed Dec 26 14:32:09.642741 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/compat/integer.py", line 12, in <module>
[Wed Dec 26 14:32:09.642744 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] implementation = platform.python_implementation()
[Wed Dec 26 14:32:09.642748 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1265, in python_implementation
[Wed Dec 26 14:32:09.642751 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] return _sys_version()[0]
[Wed Dec 26 14:32:09.642755 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1223, in _sys_version
[Wed Dec 26 14:32:09.642757 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] repr(sys_version))
[Wed Dec 26 14:32:09.642772 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] ValueError: failed to parse CPython sys.version: '3.6.7 (default, Oct 22 2018, 11:32:17) \\n[GCC 8.2.0]'
Полный список моих пакетов в среде conda:
# packages in environment at /home/michae/python_envs/pgadmin:
#
# Name Version Build Channel
alembic 1.0.5 <pip>
argparse 1.4.0 <pip>
asn1crypto 0.24.0 <pip>
Babel 2.6.0 <pip>
bcrypt 3.1.5 <pip>
blinker 1.4 <pip>
ca-certificates 2018.11.29 ha4d7672_0 conda-forge
certifi 2018.11.29 py36_1000 conda-forge
cffi 1.11.5 <pip>
Click 7.0 <pip>
cryptography 2.4.2 <pip>
cython 0.29.2 py36hfc679d8_0 conda-forge
extras 1.0.0 <pip>
fixtures 3.0.0 <pip>
Flask 0.12.4 <pip>
Flask-BabelEx 0.9.3 <pip>
Flask-Gravatar 0.5.0 <pip>
Flask-HTMLmin 1.3.2 <pip>
Flask-Login 0.3.2 <pip>
Flask-Mail 0.9.1 <pip>
Flask-Migrate 2.1.1 <pip>
Flask-Paranoid 0.2.0 <pip>
Flask-Principal 0.4.0 <pip>
Flask-Security 3.0.0 <pip>
Flask-SQLAlchemy 2.3.2 <pip>
Flask-WTF 0.14.2 <pip>
html5lib 1.0.1 <pip>
htmlmin 0.1.12 <pip>
idna 2.8 <pip>
itsdangerous 1.1.0 <pip>
Jinja2 2.10 <pip>
libffi 3.2.1 hfc679d8_5 conda-forge
libgcc-ng 7.2.0 hdf63c60_3 conda-forge
libstdcxx-ng 7.2.0 hdf63c60_3 conda-forge
linecache2 1.0.0 <pip>
Mako 1.0.7 <pip>
MarkupSafe 1.1.0 <pip>
ncurses 6.1 hfc679d8_2 conda-forge
openssl 1.0.2p h470a237_1 conda-forge
paramiko 2.4.2 <pip>
passlib 1.7.1 <pip>
pbr 3.1.1 <pip>
pgadmin4 3.6 <pip>
pip 18.1 py36_1000 conda-forge
psutil 5.4.7 <pip>
psycopg2 2.7.6.1 <pip>
pyasn1 0.4.4 <pip>
pycparser 2.19 <pip>
pycrypto 2.6.1 <pip>
PyNaCl 1.3.0 <pip>
pyrsistent 0.14.2 <pip>
python 3.6.7 h5001a0f_1 conda-forge
python-dateutil 2.7.5 <pip>
python-editor 1.0.3 <pip>
python-mimeparse 1.6.0 <pip>
pytz 2018.3 <pip>
readline 7.0 haf1bffa_1 conda-forge
setuptools 40.6.3 py36_0 conda-forge
simplejson 3.13.2 <pip>
six 1.12.0 <pip>
speaklater 1.3 <pip>
SQLAlchemy 1.2.15 <pip>
sqlite 3.26.0 hb1c47c0_0 conda-forge
sqlparse 0.2.4 <pip>
sshtunnel 0.1.4 <pip>
testtools 2.3.0 <pip>
tk 8.6.9 ha92aebf_0 conda-forge
traceback2 1.4.0 <pip>
unittest2 1.1.0 <pip>
webencodings 0.5.1 <pip>
Werkzeug 0.14.1 <pip>
wheel 0.32.3 py36_0 conda-forge
WTForms 2.1 <pip>
xz 5.2.4 h470a237_1 conda-forge
zlib 1.2.11 h470a237_3 conda-forge
Также обратите внимание, что при использовании pgadmin
приложение "напрямую" без Apache, т.е. просто сменив владельца /var/{lib,log}/pgadmin4
с www-data
на sammy
и выполнив команду ниже, все работает нормально:
source activate pgadmin
python ~/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
Я не эксперт, но этоКажется, есть некоторые проблемы с файлом Apache conf, который вызывает некоторые конфликты версий Python.И эти конфликты не происходят при выполнении непосредственно из среды и в обход Apache.Однако я совершенно не согласен с тем, как это исправить, и любая помощь будет очень признательна.
Как подсказывает в этом посте , я попытался запустить pip install mod_wsgi
в своей виртуальной среде и скопировалвывод mod_wsgi-express module-config
в файл конфигурации Apache (LoadModule wsgi_module "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
в моем случае), но не повезло, та же ошибка.