我的目标是用Apache设置Python 3。我最大的问题是实际获取mod_python.so。在我的生活中,我发现只有一个网站可以下载(http://www.modpython.org/),而我得到的是一堆构建和安装文件。如何在Apache中使用Python 3和Django?
我找不到解释如何使用Apache设置Python 3的指南。所以如果有人能够通过它现在,互联网终将包含解决方案!
我的目标是用Apache设置Python 3。我最大的问题是实际获取mod_python.so。在我的生活中,我发现只有一个网站可以下载(http://www.modpython.org/),而我得到的是一堆构建和安装文件。如何在Apache中使用Python 3和Django?
我找不到解释如何使用Apache设置Python 3的指南。所以如果有人能够通过它现在,互联网终将包含解决方案!
Django 1.6+和mod_wsgi 3.4+需要使用Python 3和Apache。有关更多详细信息,请参阅scot's answer。
我不明白为什么这是upvoted。它提到'mod_wsgi',这是真的,但它远离漫游。在我看来,这应该作为评论提及,所以我可以编辑我的问题(我现在有 - 使这个答案完全没用) – Hubro 2011-05-08 22:28:49
没有漫游,它不能完成。 Django不支持Python 3.我想你可以拒绝接受答案,因为它不是你想听到的。我听说有人试图在今年夏天将Django移植到Python 3,如果你想看到这种情况发生,你可能需要考虑帮助。 – zeekay 2011-05-08 22:38:26
我的请求是关于如何在Apache(和Django)上使用Python 3的演练。我删除了Django的一部分,因为它不支持Python 3,但这只是一小部分。 – Hubro 2011-05-08 22:49:37
你不能使用Django unser python3。从Django常见问题解答: http://docs.djangoproject.com/en/dev/faq/install/#can-i-use-django-with-python-3
我可以在Python 3中使用Django吗?
目前不在。 Python 3.0向Python语言引入了一些向后不兼容的更改,虽然这些更改对于Python的未来通常是一件好事,但大多数Python软件都赶上并能够在Python 3.0上运行的时候已经有一段时间了。对于像Django这样的更大的基于Python的软件来说,转换预计至少需要一两年时间(因为它涉及放弃对较老的Python版本的支持,因此必须逐步完成)。同时,Python 2.x版本将得到Python开发团队的支持并提供bug修复和安全更新,因此在转换过程中继续使用Python 2.x版本不应带来任何风险。
这不是问题,为什么upvote? – Hubro 2011-05-08 22:29:29
@Codemonkey其实它回答_“Django与Apache”_你的问题的一部分。 – 2011-05-08 23:09:38
Django 1.6的这些答案不再是真的 - 它支持python3。 mod_wsgi页面说3.4版支持python 3。 https://code.google.com/p/modwsgi/
不知道这一切是否都适用于这一点虽然(我会返回并编辑,当我发现)!
答案是YES它的工作原理!
我跑Python3,Django的1.5.6的AWS EC3 Ubuntu的情况下,APACHE2.2和mod_wsgi的3.4
的Python 3.3.4:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get install python3.3
sudo apt-get install python3.3-dev python3.3-doc idle-python3.3
PPA:fkrull/deadsnakes是一个容易回购已有多个python版本可用 - 请参阅https://launchpad.net/~fkrull/+archive/deadsnakes
然后我使用pip页面上的说明添加了pip; http://pip.readthedocs.org/en/latest/installing.html。 (记住你的python可能在你的路径上是'python3.3',在这一点上,普通的'python'将指向python 2.x!)
之后,virtualenv。然后我使用python安装virtualenv。在激活并将环境的bin /目录添加到$ PATH后,我现在已经有了一个干净的python3。
然后,我激活了虚拟环境后,我做了'点Django'和所有其他必要的包(这是不少)。我有Django版本1.6.2(我一直在开发这个和在我的Mac上运行在python 3.3.3没有问题)。
我遇到的最麻烦的问题是安装lxml,因为它需要libxml2和libxslt与apt-get一起安装(它是C代码的包装),并且我花了几次尝试才意识到它们还没有安装(lxml编译失败)。
折腾后我的RDS数据库实例启动并运行并可用(postgresql,请注意python3下的mysql,你会得到很多python db driver的痛苦!但是我的大部分问题都是由于我试图理解AWS安全配置),它是相对简单的航行:
sudo apt-get install apache2 apache2-threaded-dev
安装apache - 而且你需要下一个位的开发包。
这一点上,我试图使用apt包mod_wsgi的,但我决定做的最好的事情是编译和安装它自己,这里的指示 - https://code.google.com/p/modwsgi/wiki/InstallationInstructions
我没有问题与配置,制作或安装。确保你在virtualenv激活的环境中编译它。
您必须配置手动添加到Apache的配置:
# wsgi module
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
# now configure it
<Directory /my/app/path>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
WSGIScriptAlias//my/app/path/wsgi.py
WSGIPythonPath /my/app:/path/to/the/virtual/env/lib/python3.3/site-packages
而且在尽可能广泛的方式,这是所有现在的工作。
我遇到了类似的问题,这里是我如何解决它: 安装LAMP:
sudo apt-get install lamp-server^
// then do more from here:
//https://help.ubuntu.com/community/ApacheMySQLPHP
// If you will run python services then :
apt-get install python-mysqldb
//and for python 3 install:
sudo apt-get install python3-pip python-dev build-essential
pip3.4 install mysqlclient // for mysql connection
sudo apt-get install build-essential python-dev libmysqlclient-dev
pip3 install virtualenvwrapper
sudo nano ~/.bash_profile
//Set location of virtualenvs by pasting this in above:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
//Reload startup file:
source ~/.bash_profile
mkvirtualenv -p /usr/bin/python3 myprojectenv
workon myprojectenv
//then you can install packages you want using pip
//and copy myproject here
部署一个Django 1.7应用程序的Ubuntu 14.04 LTS服务器上python3和Apache:
sudo apt-get install libapache2-mod-wsgi-py3
//then configure your apache virtualhosts(here our project is //myproject and environment is myprojectenv):
在守护进程模式
配置您的虚拟主机,其建议:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAdmin [email protected]
DocumentRoot /home/user/.virtualenvs/myprojectenv/public_html
<Directory /home/user/.virtualenvs/myprojectenv/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog /home/user/.virtualenvs/myprojectenv/logs/error.log
CustomLog /home/user/.virtualenvs/myprojectenv/logs/access.log combined
WSGIScriptAlias//home/user/.virtualenvs/myprojectenv/myproject/myproject/wsgi.py
WSGIDaemonProcess myproject python- path=/home/user/.virtualenvs/myprojectenv/prisec:/home/user/.virtualenvs/m yprojectenv/lib/python3.4/site-packages
WSGIProcessGroup myproject
Alias /static /home/user/.virtualenvs/myprojectenv/public_html/static
<Directory /home/user/.virtualenvs/myprojectenv/public_html/static>
Require all granted
</Directory>
Alias /media
/home/user/.virtualenvs/myprojectenv/public_html/media
<Directory /home/user/.virtualenvs/myprojectenv/public_html/media>
Require all granted
</Directory>
重新启动Apache。 虚拟主机配置文件中的目录必须存在于创建的虚拟环境中。
1)我们应该用我们新创建的项目文件做的第一件事是调整设置。与您的文本编辑器打开设置文件:
gedit myproject/settings.py
在文件的底部,我们将添加一行到这个目录配置。 Django使用STATIC_ROOT设置来确定这些文件应该放到哪个目录。我们将使用一些Python语言告诉它使用一种叫做在我们项目的主目录下的“静态”目录:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
2)我们可以收集所有的静态内容到我们配置的目录位置通过键入:
./manage.py collectstatic
您必须确认操作。静态文件将被放置在项目目录中名为static的目录中。3)你需要mod-wsgi适配器来配置Apache中的Django 安装wsgi lib像下面一样。
sudo apt-get install libapache2-mod-wsgi sudo a2enmod wsgi
4)在文件的底部,/etc/apache2/sites-available/000-default.conf
WSGIPythonPath /var/www/html/myproject/
WSGIProcessGroup myproject
WSGIScriptAlias//var/www/html/myproject/myproject/wsgi.py
Alias /static /var/www/html/myproject/static/
<Directory /var/www/html/myproject/static>
Require all granted
</Directory>
<Directory /var/www/html/myproject/myproject>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
Alias /media/ /var/www/html/myproject/media/
<Directory /var/www/html/myproject/media>
Require all granted
</Directory>
WSGIDaemonProcess myproject python-path=/var/www/html/myproject/
5)重新启动apache2的服务器:
sudo service apache2 restart
6)现在去Localhost:
宾果!你都是用apache为Django设置的。
这是一个非常好的答案。实际上,我认为这是考试队列中的一个考验。做得好。 – 2017-03-18 20:35:55
Apache Attic创建于2008年11月,旨在提供流程和解决方案,以便在Apache项目达到其使用期限时清楚地说明问题。 mod_python位于阁楼。使用mod_wsgi – joaquin 2011-05-08 22:25:48