安装和配置夹层(Ubuntu 19.10)

夹层是用Python编写的内容管理系统。这是对流行WordPress的替代品,并提供类似的界面。

你会需要:

  • Hostwinds SSD云或专用服务器
  • Ubuntu 19.10。 您可以在这里从Canonical获取ISO: https://ubuntu.com/download/serve 然后,在此处使用我们的指南从ISO安装:https://www.hostwinds.com/guide/reinstall-vps-cloud-server-from-an-iso/
  • 工作中的公共领域。 Hostwinds在此处提供域:http://hostwinds.com/domains.php
  • Python3
  • virtualenvwrapper脚本
  • nginx webserver
  • PostgreSQL

要使所有这些运行,请使用以下命令:

sudo apt install python3 python3-pip postgresql nginx libpq-dev

然后,在安装virtualenvwrapper *中使用pip:

sudo pip3 install virtualenvwrapper

通常,在安装软件中使用PIP3是一个坏主意,但VirtualEnvWrapper是安装系统宽的少数包的包装。

现在,为夹层设置一个环境并安装它:

mkvirtualenv my_site
work on my_site
pip3 install mezzanine uwsgi pillow

安装了所有依赖项后,我们需要设置数据库。

设置Postgresql用户

为PostgreSQL配置用户只需要几个SQL语句you8可以从SQL命令行运行。 要启动SQL Shell:

sudo su postgres -c psql

在psql shell中,运行以下3行:

CREATE USER your_site_name WITH ENCRPYPTED PASSWORD 'secure_pass';
CREATE DATABASE your_site_name;
GRANT ALL PRIVILEGES ON DATABASE your_site_name TO your_site_name;

这些命令将创建数据库和用户与之交互。

现在,我们可能需要授予对该用户的访问权限。使用此命令编辑pg_hba.conf,这就是PostgreSQL用于验证访问的原因:

sudo nano /etc/PostgreSQL/11/main/pg_hba.conf

确保文件中存在此行:

主持所有127.0.0.1/32 MD5

一旦编辑文件,重新启动数据库以应用更改:

sudo systemctl restart postgresql

设置夹层

既然数据库已设置,我们可以继续配置夹层。 要启动Mezzanine项目,请使用命令:

(my_site)夹层项目my_site

cd my site

在my_site目录中,您将找到另一个名为"my_site"的目录。您需要编辑一个名为settings.py的文件:

nano mysite/settings.py

在该文件中需要设置两件事。

数据库配置,使用与我们之前创建的SQL用户相同的用户名和密码:

DATABASES = {
"default": {
    # Add "postgresql", "mysql", "sqlite3" or "oracle".
    "ENGINE": "django.db.backends.postgresql",
    # DB name or path to database file if using sqlite3.
    "NAME": "my_site",
    # Not used with sqlite3.
    "USER": "my_site",
    # Not used with sqlite3.
    "PASSWORD": "secure_pass",
    # Set to empty string for localhost. Not used with sqlite3.
    "HOST": "127.0.0.1",
    # Set to empty string for default. Not used with sqlite3.
    "PORT": "",
}
}

允许的主机:

ALLOWED_HOSTS = ['my_site.com', 'www.my_site.com']

准备好这些文件后,保存settings.py文件。

恰当命名的manage.py脚本用于设置和管理服务器。 现在,Mezzanine已正确配置了数据库用户,我们可以使用createdb命令添加表,如下所示:

python manage.py createdb

然后,添加一个管理员用户以帮助管理您的站点:

python manage.py createsuperuser

最后,使用以下内容构建资产,如JavaScript和CSS,如下:

python manage.py collectstatic

使用uWSGI部署应用程序

对于我们的网站来提出来看,您需要配置一个Python加载程序来运行代码和网络服务器以与外部世界进行通信。让我们从Python加载程序开始。对于此设置,我们将使用UWSGI Runner。

在您的my_site / my_site目录中,使用nano创建一个名为my_site.ini的文件:

[uwsgi]
socket = 127.0.0.1:8080
chdir = /home/$USER/my_site
wsgi-file = my_site/wsgi.py
processes = 2
threads = 1

您可以通过在/usr/lib/systmd/system/my_site.service中创建服务文件来将uWSGI设置为在启动时运行:

[Unit]
Description=My Site
After=Network.target

[Service]
User=$USER
Group=$USER
WorkingDirectory=/home/$USER/my_site
Environment="PATH=/home/$USER/.virtualenvs/mezzanine/bin"
ExecStart=/home/$USER/.virtualenvs/mezzanine/bin/uwsgi my_site.ini

最后,运行命令:

sudo systemctl enable my_site

和:

sudo systemctl start my_site

这将配置您的Python Runner以启动启动并立即启动它。

NGINX配置

最后一个任务来完成所有这一切:设置Web服务器。 Nginx是Python项目的热门选择,因为它反向代理功能。

要配置它,请将此文件添加到启用/ etc / nginx / sites:

upstream mezzanine {
        server 127.0.0.1:9081;
}

server {
        listen 80 default_server;
        server_name www.my_site.com my_site.com;
        charset utf-8;
        client_max_body_size 50M;


        location /media {
                alias /home/$USER/my_site/media;
        }

        location /static {
                alias /home/$USER/my_site/static;
        }

        location / {
                uwsgi_pass mezzanine;
                include uwsgi_params;
        }
}

然后应用此配置,运行命令:

sudo systemctl restart nginx
5

发表回复