一. 部署Apache
1. 先安装apache的依赖:apr、apr-util、pcre
(1)apr、apr-util下载地址:http://apr.apache.org/download.cgi ,下载完后分别解压编译安装
apr解压编译安装:
tar -zxvf 包名
./configure --prefix=/usr/local/apr #指定目录安装方便查看
make && make install
apr-util解压编译安装:
tar -zxvf 包名
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
(2) pcre下载地址:http://pcre.org/
tar -zxvf 包名
./configure --prefix=/usr/local/pcre
make && make install
2.安装Apache
下载地址:http://httpd.apache.org/download.cgi ,下载完一样解压编译安装:
tar -zxvf httpd-2.4.33.tar.gz
cd httpd-2.4.33
./configure --prefix=/usr/local/apache2
make && make install
3. 测试apache安装完成
(1)由于apache默认监听的80端口,避免和其他部署项目冲突,我这里将配置的监听端口改为8000
vim /usr/local/apache2/conf/httpd.conf
将Listen 80修改为Listen 8000
(2)重启apache服务
/usr/local/apache2/bin/apachectl restart
(3)浏览器访问http://127.0.0.1:8000,显示It Work 即成功。
二. 部署Wsgi(相当于apache和django的桥梁)
tar xvfz mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python
make && make install
PS:如果报错Error: Command failed with rc=65536,是由于没有与python建立共享库,所以需要重新编译python
(我用的是python2.7.10),然后编译的时候加上--enable-shared
三. 部署Django
1. 安装pip,python项目这个工具是必不可少的
可能会碰到的报错:缺少setuptools,继续先安装setuptools;依然可能会碰到的报错:缺少zlib;
在ubuntu中,直接安装他们:
agt-get install zlib1g
apt-get install zlib1g-dev
然后再重新编译安装下python才能生效。顺利的话pip就安装好了,pip -V,看看安装成功没,推荐安装10.0.1的最新版本。
2. 按项目需要用到的包django、mysql等
pip install "django<2" (我自己用的1.11)
pip install mysql-python
如果仍然报错,根据报错提示解决。
3. 配置apache以及wsgi,重点部分的配置如下
(1)wsgi.py:
import os
from os.path import join,dirname,abspath
PROJECT_DIR = dirname(dirname(abspath(__file__)))
import syssys.path.insert(0,PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()
(2)apache的配置:
#添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so
#指定myweb项目的wsgi.py配置文件路径
WSGIScriptAlias / /***/wsgi.py
#指定项目路径
WSGIPythonPath /usr/local/lib/python2.7/dist-packages
<Directory ***>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#配置静态资源
Alias /static/ /***/static/
<Directory /***/static>
Require all granted
</Directory>
四. 重启Apache服务,项目部署成功
/usr/local/apache2/bin/apachectl restart
如果仍有错误,可以看下apache的log