Назад | Перейти на главную страницу

Lighttpd, Python, MySQLdb Модуль Python и разрешения

После перезапуска lighttpd сервер в последнее время я не мог снова запустить его. Я запускаю на нем службу API, созданную на Python, и полагаюсь на web.py модуль для запуска приложения.

Мне трудно получить MySQLdb Модуль Python для импорта. Этот конкретный импорт приводит к тому, что все выдает ошибку и создает 500 error когда я пытаюсь попасть в API.

Первоначально я думал, что это всего лишь вопрос разрешений, поскольку я мог импортировать модуль при запуске python из командной строки. Когда я увидел это бегство MySQLdb из командной строки, я продолжил и изменил разрешения кода Python и яйца Python для модуля на 755. Однако это не устранило проблему. Я не совсем уверен, что опубликовать здесь будет наиболее полезно, поэтому я включу некоторые параметры конфигурации и другие общие факты о сервере.

Чтобы уточнить, я могу получить Hello, World! сообщение для печати с моим lighttpd настройки, а также подтвердили, что lighttpd сервер использует правильную версию Python (например, 1.7.3).

Расположение кода модуля Python MySQLDb:

/home/pythoninstall/MySQL-python-1.2.3c1

Расположение сторонних модулей / яиц Python:

/opt/python2.7/lib/python2.7/site-packages

Настройка Lighttpd FastCGI для Python:

server.modules = ("mod_fastcgi","mod_accesslog","mod_rewrite", "mod_access",       "mod_redirect", "mod_proxy")
server.document-root = "/home/OverLord/"
fastcgi.server = ( "/code.py" =>
    ((      "bin-environment" => (
                    "REAL_SCRIPT_NAME" => ""
            ),
            "socket" => "/tmp/fastcgi.socket",
            "bin-path" => "/opt/python2.7/bin/python /home/OverLord/code.py",
            "check-local" => "disable",
            "max-procs" => 1
    ))
)

Любые идеи были бы отличными. Я слишком много времени терял из-за этого. Спасибо!

FCGI каким-то образом меняет имя вашего сокета. Вы объявляете это как:

"socket" => "/tmp/fastcgi.socket"

Но это ошибка:

request sent: 1154 on socket: unix:/tmp/fastcgi.socket-0

Немного критикуя Google, можно предположить, что у разработчиков php с этим много проблем. Если FCGI продолжает добавлять -0 к имени вашего сокета, а затем barfing, возможно, пришло время покопаться в wsgi.

РЕДАКТИРОВАТЬ: добавление конфиг от кого-то кто вроде решил проблему. Используйте это для определения вашего сокета:

"socket" => "/tmp/php.socket" + var.PID,