最近公司有个项目可能会使用python开发基于AI的网站,由于系统使用人数不会太多,网站执行效率不会成为太大的问题,考虑直接使用python开发网站系统,框架就用Django,为了实现这种架构,我申请了一台阿里云的服务器,作为运行平台。以下是记录整个平台的搭建过程,一方面便于自己后期维护,另外也可以给需要的朋友提供一些参考。
准备环境:
ubuntu16.04
sudo apt-get update
sudo apt-get upgrade
先更新一下系统
步骤如下:
一、安装基本的框架
- 安装HTTP服务器
sudo apt-get install apache2

安装完成确认一下服务器是否正常
2. 安装PHP
sudo apt-get install php libapache2-mod-php
在/var/www/html/目录下新建一个文件info.php,内容如下:
<?php
phpinfo()
?>
访问该文件(IP地址/info.php),如果可以查看到如下页面,说明PHP安装正常

3. 安装MYSQL
由于Django运行需要数据库的支持,自带的sqlite性能较差,因此我们需要安装MySQL数据库
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysql-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
pip3 install mysqlclient
安装mysql数据库及连接客户端,安装过程中,记录好数据库的root密码
安装完成后,运行mysql -uroot -pxxxxxx 进入mysql xxxxxx是数据库密码
运行show databases; 能查看到当前安装的数据库,则证明数据安装正常

4. 安装phpMyAdmin
为了管理MySQL数据库,我们安装phpMyAdmin
sudo apt-get install phpmyadmin
sudo apt-get install php-mbstring
sudo apt-get install php-gettext
下面两个是php扩展,如果不安装,进入php会有错误提示,安装过程会在数据库中建立phpmyadmin用户并要求输入密码,数据库类型选择apache
建立/var/www/html
下的软连接
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
修改php配置文件(参考http://blog.csdn.net/l6807718/article/details/51374915)
sudo vim /etc/php/7.0/apache2/php.ini
display_errors= On
extension=php_mbstring.dll(开启mbstring)
sudo service apache2 restart

顺利进入系统,输入root及密码进入,在数据库中新建一个库mysite,用于存放我们Django网站的数据,并建立用户Django_user

至此,我们的准备工作完成,开始建立Django项目及应用
二、建立网站及应用
-
安装Django
先运行python3,确认当前的python3版本是否正常,python3 ubuntu系统自带,不用另外安 装。

本项目开发都基于python3,故不讨论python2设置
安装pip3
sudo apt-get install python3-pip
通过pip3安装Django
sudo pip3 install Django

验证Django是否正常,进入python3,运行

如能正确显示版本号,则Django已正确安装
2. 建立Django项目
在/var/www/html/ 目录下运行 django-admin startproject mysite django-admin startapp polls 建立mysite项目,项目可先在本地测试好,再上传至云服务器/var/www/html/目录下
安装apache2的wsgi扩展
sudo apt-get install libapache2-mod-wsgi-py3
配置apache2启动加载wsgi模块
修改/etc/apache2/apache2.conf ,在最后增加一行
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
重启apache2
sudo service apache2 restart
创建apache2新站点mysite.conf
在/etc/apache2/sites-available目录下新建mysite.conf文件
<VirtualHost *:80>
ServerName mysite.com
DocumentRoot /var/www/html/mysite
<Directory /var/www//html/mysite>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/html/mysite/mysite/wsgi.py
SetEnv DJANGO_SETTINGS_MODULE /var/www/html/mysite/mysite/settings.py
</VirtualHost>
WSGIPythonPath /var/www/html/mysite
启动新站并停止旧站
sudo a2ensite mysite.conf
sudo a2dissite 000-default.conf
service apache2 reload
service apache2 restart
在/etc/apache2/sites-enabled目录下确认新站已激活

在浏览器中输入http://IP地址/polls访问服务器
如果出现外部访问被禁止的情况,就修改一下 mysite/settings.py文件,将
ALLOW_HOSTS= [] 改为ALLOW_HOSTS= [‘*’]

至此,Django项目顺利在Apache中运行。