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>

 

原文地址:https://www.cnblogs.com/snow-backup/p/5169042.html