Apatche httpd + Django + Mysql web server 搭建
Required:
- httpd: 2.4.18
- django : 1.8.7
- mysql: 5.7.10
- MySQL-python: 1.2.3
- mod_wsgi: 4.4.21
Offical Docs:
- http://httpd.apache.org/docs/2.4/
- https://docs.djangoproject.com/en/1.8/
- http://dev.mysql.com/doc/refman/5.7/en/
- https://pypi.python.org/pypi/mod_wsgi
1. Httpd 安装
Required: apr, apr-util and pcre
注意:apache 程序的安装不会有success这样的信息。
显示**make leaving directory字样不是错误,是正常的。
a) 下载安装包
b) 解压安装包, 准备 apr 和 apr-util
将 apr 和 apr-util 解压后的文件夹 重命名为 apr 和 apr-util, 并把它们放到 httpd 的 srclib 文件夹下。
c) 安装pcre
解压,切换到该目录
./configure
make
sudo make install
c) 安装 httpd
./configure
--with-included-apr
--with-included-apr-util
make
sudo make install
# start sudo ./apachectl -f /usr/local/apache2/conf/httpd.conf # restart sudo ./apachectl -k graceful # stop apachectl -k stop
2. Mysql 安装
我在官网上下载的是deb文件压缩包,解压出来的是一串deb文件:
sudo dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb
如果下载的是其他的文件,请在官网上找对应的连接去安装。
还需要做些配置参见:http://dev.mysql.com/doc/refman/5.7/en/postinstallation.html
主要是这个:http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html
# start(choose one) /etc/init.d/mysql start mysqld_safe --user=mysql & systemctl start mysqld # stop /etc/init.d/mysql stop # start mysql command line window mysql -u root mysql -p mysql> SELECT * FROM user;
3. MySQL-python, Django 安装
解压, python setup.py install
如果 python -c "import django; print(django.get_version())" 可以正常返回版本号,就成功了。
使用:
# 创建project django-admin.py startproject devicemonitor # 创建app cd project目录 python manage.py startapp device # 持久化数据库 python manage.py makemigrations python manage.py migrate # 导出数据 python manage.py dumpdata app名 > myapp.json # 导入数据 python manage.py loaddata myapp.json # create user as Admin python manage.py createsuperuser # 可以检验是否有语法错误 vim settings.py python manage.py validate
4. mod_wsgi 安装
这个是 apache 内置的python 解释器。安装方法,.configure, make, sudo make install
需要把mod_wsgi.so 放在/usr/local/apache2/modules/ 下。
配置:
1. /usr/local/apache2/conf/httpd.conf
a) 配置 DocumentRoot, 这是web的入口。 紧跟着的<Directory>也要配置,这是必须的。
如果是静态,类似于ftp性质的,那么这样就足够了,可以浏览文件,下载文件。
b) wsgi 配置
LoadModule wsgi_module modules/mod_wsgi.so
c) 网站配置例子。包括static文件路径和wsgi的配置。
WSGIPythonPath project路径 <VirtualHost *:80> ServerName 域名或IP ServerAlias 域名或IP ServerAdmin 邮箱地址 Alias /static/ 静态文件路径 <Directory "/static/"> Require all granted </Directory> WSGIScriptAlias / project路径/project名/wsgi.py <Directory "project路径/project名"> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>