phpmyadmin запрещается через туннель ssh

#! строка не используется и обычно не помещалась бы в файл сценария WSGI, как используется mod_wsgi.

Для определения, какая версия/установка Python используется существует две части к нему.

Первое, как указано кем-то еще должно удаться, с которым связана библиотека Python mod_wsgi.so. В большинстве систем UNIX это сделано с помощью команды 'ldd'.

ldd mod_wsgi.so

Выполните это на фактическом mod_wsgi.so, установленном в каталог модулей Apache, который используется. Это скажет Вам наверняка, против которых была скомпилирована версия mod_wsgi.

Если Вы не видите ссылки на libpythonX.Y.so файл затем, Ваш mod_wsgi.so был связан статически против библиотеки Python. Хотя это будет работать, пока mod_python не также загрузился в тот же Apache, это - очень плохая идея полагаться на него, поскольку использование статического подключения результатов библиотеки Python в ненужном чрезмерном увеличении размера Вашего Apache обрабатывает из-за перемещения кода во время выполнения, которое должно быть сделано при загрузке mod_wsgi.so со статически связанной библиотекой Python.

Обратите внимание, что значение 'sys.executable', когда выполнение под mod_wsgi не имеет никакого значения и не может использоваться в качестве средства определения, какая версия Python использовалась. Это вызвано тем, что командная строка Python не используется. Вместо этого исполняемый файл, который выполняется, является на самом деле Apache, и sys.executable, скорее всего, отразит это. Это только после того, как Apache выполняется, и mod_wsgi.so загрузился, тот Python затем инициализируется с помощью, встроил API Python. Точно так же работая, 'которому Python' не поможет в определении точно, какая установка Python используется.

Вторая часть разрабатывает, какая установка Python на самом деле использовалась во времени выполнения. Чтобы сделать это, необходимо использовать WSGI привет мировая программа и изменить ее для разгрузки значения 'sys.prefix'. Это говорит Вам корневой каталог, под которым расположена установка Python. На основе то, какая версия Python совместно использовала библиотеку, использовалось, Вы будете затем знать, какой фактический 'lib/pythonX.Y' каталог под тем корневым каталогом используется. Версия важна, поскольку могло быть несколько версий, установленных под тем корневым каталогом.

Обратите внимание, что то, что Вы получаете для 'sys.prefix', может на самом деле отличаться от корневого каталога, поскольку Вы думали, что он может быть основан на libpythonX.Y.so зависимости mod_wsgi.so файла. Это из-за пути который Python когда инициализированные попытки найти его каталог 'lib'.

Например, если Вам установили Python 2.6 под '/usr/local' и другим установленным под '/usr', но Вы скомпилировали mod_wsgi против этого под '/usr/local', можно все еще найти что 'sys.prefix' разрешенный к '/usr'. Это вызвано тем, что по умолчанию во встроенных системах Python смотрит на значение переменной среды 'ПУТИ', чтобы заставить путь поиска находить исполняемый файл 'Python' как базисную точку для вычисления корневого каталога, даже при том, что тот исполняемый файл 'Python' не использовался для запуска процесса.

Под Apache, потому что это обычно запускается как 'корень', это не обязательно имело бы '/usr/local/bin' в Вашем 'ПУТИ' и так будет, вероятно, находить '/usr/bin/python' вместо этого и таким образом использовать '/usr' для 'sys.prefix'.

В этом более позднем виде сценария, где это находит другой корневой каталог к тому, что Вы хотите использовать, можно использовать директиву WSGIPythonHome в конфигурации Apache для переопределения, какой 'sys.prefix' автоматически вычисляется.

Обратите внимание, что Вы не МОЖЕТЕ использовать WSGIPythonHome для обращения к другой версии Python, он должен относиться к корневому каталогу, содержащему установку Python той же главной / вспомогательной версии. Если необходимо использовать другую версию Python, необходимо перекомпилировать и переустановить mod_wsgi, таким образом, это компилируется против другой версии. Фактическая версия/установка Python, который будет использоваться, когда компиляция может быть указана с помощью '-с Python' опция к mod_wsgi, настраивает сценарий, когда это создается.

Существуют другие пути помимо использования директивы WSGIPythonHome для переопределения, какая установка Python используется, но рекомендуется Вас палку с WSGIPythonHome.

2
задан 9 July 2011 в 23:46
1 ответ

Ваш туннель должен быть,

ssh -L 8080:localhost:80 yourserver

и Вы выполняете ту команду от удаленной машины. Это создает туннель от Вас до yourserver через порт 8080 в Вашем конце. На yourserver это затем пихает что-либо, что это видит в localhost на порте 80.

Ваша команда заставляла это отправлять трафик для портирования 80 на серверах адрес mysite.com (который, вероятно, не является 127.0.0.1),

4
ответ дан 3 December 2019 в 10:17

Теги

Похожие вопросы