一、安装Apache
1. 安装Apache2:apt install apache2
2. 查看版本:apache2 -v
3 配置端口:
3.1、修改监听:root@ubuntu:/etc/apache2# sudo nano ports.conf
3.2、修改端口及目录:root@ubuntu:/etc/apache2/sites-enabled# sudo nano 000-default.conf
3.3、重启Apache:service apache2 restart
二、配置python3:
1、Ubuntu自带python2.7,需要删除:sudo rm /usr/bin/python
2、修改python版本:sudo ln -s /usr/bin/python3 /usr/bin/python
三、安装pip
1、安装pip3:
sudo apt-get update
sudo apt-get install python3-pip
四、安装mod_wsgi:
sudo apt-get update
sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
五、安装python虚拟环境:
1、安装virtualenv:sudo pip3 install virtualenv
2、var/www下创建目录:mkdir sammy
3、进入Sammy下面创建虚拟环境:virtualenv myprojectenv
4、激活虚拟环境:source myprojectenv/bin/activate
5、安装Django:python -m pip install django,不能使用pip install django 否则,django模块需要手动加入到sys的path中
六、创建、配置Django项目:
1、创建:root@ubuntu:/var/www/sammy# myprojectenv/bin/django-admin.py startproject myproject
2、修改配置:sudo nano myproject/myproject/settings.py
ALLOWED_HOSTS = ["192.168.108.138"]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
3、初始化项目:
cd myproject
./manage.py makemigrations
./manage.py migrate
4、创建项目管理员:./manage.py createsuperuser
5、链接静态文件:./manage.py collectstatic
6、测试
6.1、创建端口:sudo ufw allow 8000
6.2、命令行运行:./manage.py runserver 0.0.0.0:8000
6.3、访问:192.168.108.138:8000
6.4、管理员登录:192.168.108.138:8000/admin(用户名、密码是上面的第4步配置的)
6.5、退出:ctrl+c,然后停止:deactivate
七、配置Apache:
打开配置文件:sudo nano /etc/apache2/sites-available/000-default.conf
ServerName 192.168.108.138
ServerAdmin webmaster@localhost
# DocumentRoot /var/www/sammy
Alias /static /var/www/sammy/myproject/static
<Directory /var/www/sammy/myproject/static>
Require all granted
</Directory>
<Directory /var/www/sammy/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess 192.168.108.138 python-path=/var/www/sammy/myproject python-home=/var/www/sammy/myprojectenv/lib/python3.5/site-packages
WSGIProcessGroup 192.168.108.138
WSGIScriptAlias / /var/www/sammy/myproject/myproject/wsgi.py
八、配置SQLite
#664,即所有者的权限为可读可写不可执行、所属群组可读可写不可执行、其他人可读不可写不可执行。
chmod 664 myproject/db.sqlite3
sudo chown :www-data myproject/db.sqlite3
sudo chown :www-data myproject
九、防火墙配置:
#关闭之前的端口
sudo ufw delete allow 8000
sudo ufw allow 'Apache Full'
十、Apache配置结尾:
#
sudo apache2ctl configtest
#重启
sudo systemctl restart apache2
十一、问题:
1、unable to open database file的解决banf:
chgrp www-data myproject
chgrp www-data myproject/db.sqlite3
chmod g+w myproject
chmod g+w myproject/db.sqlite3