AWS Elastic Beanstalk - Script timed out before returning headers: application.py
The @user2752159's answer highlights the issue however I am going to add this to show how to overcome this issue in the context of AWS Beanstalk (ie. if a new instance or you deploy more code then the problem will remain fixed, rather than having to ssh into the box each time to modify wsgi.conf
).
Create the file. (note it ends with *.config and not conf)
nano .ebextensions/<some_name>.config
add the following to some_name.config
(mod_wsgi docs)
files:
"/etc/httpd/conf.d/wsgi_custom.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIApplicationGroup %{GLOBAL}
add to git
git add .ebextensions/<some_name>.config
git commit -m 'message here'
deploy to beanstalk
eb deploy
Now each time you deploy, WSGIApplicationGroup %{GLOBAL}
will be added to wsgi_custom.conf
, fixing the issue.
Many thanks to @GrahamDumpleton for his help. The solution I used was:
-Edit the wsgi.conf file found at /etc/httpd/conf.d/wsgi.conf
on the Elastic Beanstalk EC2 instance.
To do this I used the command sudo -e /etc/httpd/conf.d/wsgi.conf
to open the editor, hit INSERT to start editing, and added WSGIApplicationGroup %{GLOBAL}
anywhere in the file. I then his ESCAPE and used the command :wq
to save the changes.
After this I selected Restart App Servers from the Action drop-down of the Elastic Beanstalk console. After this, the program would load and give the
AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
message, but not the error messages afterwards. In addition, the application would receive SQS messages and run as expected.
One thing to note, is that it appears the wsgi.conf file will revert if any configuration changes are made to the Elastic Beanstalk configuration. I'm not sure of a way around this, but if I find something I'll post it here.
Thanks again to @GrahamDumpleton for his prompt response and help in solving this issue!