Проблема с импортом библиотеки Mod_Python + Django

Недавно у меня был сайт, который работал идеально в течение нескольких месяцев, и вдруг он решил свалить себя без какой-либо приблизительной причины.

Я запускаю django + mod_python + apache, и система решила, что пришло время начать игнорировать импорт библиотеки pycurl, моя первая мысль заключалась в том, что библиотека каким-то образом была повреждена или пути не были кэшированы apache или mod_python.

После проверки путей, символических ссылок, разрешений и переустановки точной сборки pycurl я все еще получаю ту же ошибку. Странно то, что я могу загрузить библиотеку внутри самого python и запустить тесты без проблем, но не в mod_python. Я точно знаю, что пути указаны правильно, поскольку я проверял их много раз и соответствующим образом обновлял системный кеш.

Django теперь не будет загружать или выдавать какие-либо ошибки, и apache не будет ничего регистрировать, если я попытаюсь импортировать библиотеку, она просто молча потерпит неудачу ... Я изучаю эту проблему уже 2 дня и ничего не придумал.

Любая помощь будет принята с благодарностью.

Просто чтобы добавить сюда, сервер никоим образом не трогался с момента окончательной ревизии и запуска.

Я проверил все журналы, которые указывали бы на какой-то тип атаки на сервер, и ничего нет, единственное, что существует, — это запрос от моего хостинг-провайдера, где впервые начала появляться рассматриваемая ошибка.

Также аналогичная проблема: stackoverflow.com/questions/1099981/… - в этом случае не работает.

Если кому-то интересно, версии следующие

Python         2.4.3
Mod_Python     3.2.8
Apache         2.2.3
Redhat         Red Hat Enterprise Linux Server release 5.4
Linux Kernal   2.6.18-128.7.1.el5 x86_64

person nwhiting    schedule 19.01.2010    source источник
comment
Было бы слишком много, чтобы предложить вам использовать mod_wsgi?   -  person Ignacio Vazquez-Abrams    schedule 19.01.2010
comment
mod_wsgi - это крайняя мера... Я не могу позволить себе простои, вызванные переходом на mod_wsgi. Сначала у меня был mod_wsgi, но я столкнулся с несколькими проблемами и перешел на mod_python.   -  person nwhiting    schedule 19.01.2010
comment
Обязательно используйте WSGI для всех новых приложений. Однако для этого должно быть исправлено...   -  person bobince    schedule 20.01.2010


Ответы (3)


Если проблема заключается в неудачном импорте при запуске под Apache, но импорт работает при запуске из вашей оболочки входа в систему, дважды проверьте, нет ли проблемы с правами доступа к каталогу / файлу с неисправным модулем (модулями). Они должны быть доступны для чтения, а в некоторых случаях также доступны для выполнения с идентификатором пользователя, под которым работает Apache.

person Ned Deily    schedule 19.01.2010
comment
Я проверил разрешения, это одна из первых вещей, которые я проверил, кажется, я упоминал :) - person nwhiting; 20.01.2010
comment
Так вы сделали - извините! Тем не менее, стоило повторить, поскольку это был, пожалуй, наиболее вероятный виновник. Кроме того, что провайдер обновляет библиотеки, не сообщая вам об этом! - person Ned Deily; 20.01.2010

Возможно, процесс httpd исчерпал лимит открытых файлов; см. help ulimit в bash для изменения соответствующей опции.

person Ignacio Vazquez-Abrams    schedule 19.01.2010
comment
Нет, это не проблема, если я запускаю приложение без библиотеки pycurl, все работает нормально, и неважно, где я загружаю библиотеку, она всегда терпит неудачу... - person nwhiting; 19.01.2010

Ну вот... я отладил этот вопрос... и ответ весьма удивителен.

R ** kspace решил сделать несколько обновлений для коробки, обновив рассматриваемую зависимую библиотеку, и это вызвало проблемы ... после переустановки библиотеки он попытался загрузить модуль c, и это не была версия comp с текущей pycurl... и сами 2 дня не могли в этом разобраться.

person nwhiting    schedule 20.01.2010