# 在 root 用户下运行这条命令创建一个新用户newuser
root@localhost:~# useradd -m -s /bin/bash newuser
# 把新创建的用户加入超级权限组
root@localhost:~# usermod -a -G sudo newuser
# 为新用户设置密码
root@localhost:~# passwd newuser
# 切换到创建的新用户
root@localhost:~# su - newuser
# 切换成功
newuser@localhost:~$
newuser@localhost:~$ sudo apt-get update
newuser@localhost:~$ sudo apt-get upgrade
sudo apt-get update
出现以下问题The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic ubuntu-minimal
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
因为有部份packages的安装版比release版新,解决方法是统一更新到发布的版本,这条
apt-get -u dist-upgrade
命令会强制更新软件包到最新版本,并自动解决缺少的依赖包。
sudo apt-get update
和upgrade
的区别在ubuntu下,我们维护一个源列表,源列表里面都是一些网址信息,这每一条网址就是一个源,这个地址指向的数据标识着这台源服务器上有哪些软件可以安装使用。 在这个文件里加入或者注释(加#)掉一些源后,保存。这时候,我们的源列表里指向的软件就会增加或减少一部分。
sudo vim /etc/apt/sources.list
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新软件包管理器里看到的软件列表,都是通过update命令更新的。
sudo apt-get update
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:
sudo apt-get upgrade
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
sudo apt-get install nginx
sudo apt-get install git python3 python3-pip
sudo pip3 install virtualenv
sudo service nginx start
settings.py
文件,找到 DEBUG 和 ALLOWED_HOSTS 这两个选项,将它们设置成如下的值:blogproject/settings.py
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost ', '.knows365.com']
ALLOWED_HOSTS 是允许访问的域名列表,127.0.0.1 和 localhost 是本地访问的域名,.knows365.com 是访问服务器的域名。域名前加一个点表示允许访问该域名下的子域名,比如 www.knows365.com、test.knows365.com 等二级域名同样允许访问。如果不加前面的点则只允许访问 knows365.com。
STATIC_URL = '/static/'
# 加入下面的配置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
(mooc_project)..\mooc-project> pip freeze > requirements.txt
..\mooc-project\requirements.txt
会生成Django==2.1.7
jieba==0.39
PyMySQL==0.9.3
pytz==2018.9
~
相当于/home/nweuser
mkdir -p ~/sites/knows365 #mkdir:建立一个子目录。参数:-p 确保目录名称存在,如果目录不存在的就新创建一个。
cd ~/sites/knows365
virtualenv --python=python3 env #使用 --python=python3 来指定创建 Python3 的虚拟环境
git clone https://github.com/MorsoLi/mooc-project.git
/home/nweuser/
sites/
knows365/
env/
mooc-project/
source env/bin/activate #激活虚拟环境
cd mooc-project #进入项目目录
pip install -r requirements.txt #安装项目依赖
mkdir static
python manage.py collectstatic
python manage.py migrate #生成数据库
python manage.py createsuperuser #创建超级用户进入 Django 管理后台
sudo ln -s /etc/nginx/sites-available/knows365 /etc/nginx/sites-enabled/knows365
(env)morso@vultr:~/sites/knows365$ source env/bin/activate
(env)morso@vultr:~/sites/knows365/mooc-project$ pip install gunicorn #安装Gunicorn
(env)../$ gunicorn --bind unix:/tmp/knows365.socket mysite.wsgi:application
sudo mkdir -p /usr/lib/systemd/system #新建目录
sudo vim /usr/lib/systemd/system/knows365.service #新建文件
[Unit]
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
# 你的用户
User=morso
# 你的目录
WorkingDirectory=/home/morso/sites/knows365/mooc-project
# gunicorn启动命令
ExecStart=/home/morso/sites/knows365/env/bin/gunicorn --bind unix:/tmp/knows365.com.socket mysite.wsgi:application
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl start knows365 #启动服务,和knows365.service这个脚本同名
sudo systemctl enable knows365.service #添加服务到开机自动运行
ps -ef | grep gunicorn #查看进程
systemctl daemon-reload
sudo systemctl start knows365 #重启gunicore配置的服务脚本 knows365.service
sudo service nginx reload #重新加载nginx