查看 SELinux状态及关闭SELinux

阅读(709)

查看SELinux状态:

1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

SELinux status: enabled

2、getenforce ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0 ##设置SELinux 成为permissive模式

                          ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

SELINUX=enforcing改为SELINUX=disabled

sed 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

重启机器即可

宝塔面板+docker部署django项目

阅读(909)

本文原理是,使用docker生成django+uwsgi容器,利用宝塔面板的nginx反向代理容器。

进入django项目目录,新建Dockfile, uwsgi.ini和start.sh三个文件。

Dockfile

# 基础镜像:python3.7环境
FROM python:3.7

# 镜像作者
MAINTAINER Richard

# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1

# 设置pypi源头为国内源
#  COPY pip.conf /root/.pip/pip.conf

# 在容器内/var/www/html/下创建webapp文件夹
RUN mkdir -p /var/www/html/webapp

# 设置容器内工作目录
WORKDIR /var/www/html/webapp

# 将当前目录文件拷贝一份到工作目录中(. 表示当前目录)
# ADD . /var/www/html/webapp

ADD requirements.txt /var/www/html/webapp
ADD start.sh /var/www/html/webapp

# 利用 pip 安装依赖
RUN pip install -r requirements.txt

# Windows环境下编写的start.sh每行命令结尾有多余的\r字符,需移除。
RUN sed -i 's/\r//' ./start.sh

# 设置start.sh文件可执行权限
RUN chmod +x ./start.sh

uwsgi.ini

[uwsgi]
project=webapp
subproject=djangoProject1 #项目名称(需要修改的地方)
base=/var/www/html

chdir=%(base)/%(project)
module=%(subproject).wsgi:application
master=True
processes=2

socket=0.0.0.0:8080 #这里直接使用uwsgi做web服务器,使用http。如果使用nginx,需要使用socket沟通。
buffer-size=65536

pidfile=/tmp/%(project)-master.pid
vacuum=True
max-requests=5000
daemonize=/tmp/%(project)-uwsgi.log

#设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
harakiri=60
#当一个请求被harakiri杀掉会,会输出一条日志
harakiri-verbose=true

start.sh

#!/bin/bash
python manage.py collectstatic --noinput&&
python manage.py makemigrations&&
python manage.py migrate&&
uwsgi --ini /var/www/html/webapp/uwsgi.ini

修改settings.py

import os
ALLOWED_HOSTS = ["*"]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

生成镜像

docker build -t mydjango_img:0.1 .

生成容器

docker run -it --name webapp -p 8080:8080 -v /www/wwwroot/projects/djangoProject1:/var/www/html/webapp -d mydjango_img:0.1

# /www/wwwroot/projects/djangoProject1 宿主机项目目录
# /var/www/html/webapp 容器工作目录

进入容器,启动uwsgi

docker exec -it webapp3 /bin/bash start.sh

宝塔面板设置反向代理

#PROXY-START/
    location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
}
location /static/ {
    alias /www/wwwroot/projects/djangoProject1/static/; #静态资源路径
    }

#PROXY-END/

参考:https://blog.csdn.net/weixin_42134789/article/details/106205182

CentOS/Ubuntu/Debian一键安装Docker

阅读(1196)

一、Docker安装脚本使用教程
在本地连上VPS后,直接运行脚本即可安装Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

此一键脚本由Docker官方发布并维护,支持CentOS、Ubuntu、Debian、Fedora等常见的Linux发行版本。

二、其他安装Docker教程
反正VPS GO在Linux上安装Docker环境基本都是用的这个Get Docker的一键脚本,如果你想自己从零开始搭建环境,也可以跟着Docker官方的教程一步步搭建,总的来说也是比较容易的,先卸载旧版本的Docker,再安装Docker Engine-Community即可。

详细的手动安装Docker步骤可以参考Docker官方教程:

CentOS:https://docs.docker.com/engine/install/centos/
Debian:https://docs.docker.com/engine/install/debian/
Fedora:https://docs.docker.com/engine/install/fedora/
Ubuntu:https://docs.docker.com/engine/install/ubuntu/

三、其他docker服务
通过 service docker startsystemctl start docker启动docker服务。

四、测试docker服务

docker run hello-world

如果能顺利看到“Hello from Docker!”,表明安装并启动docker成功。

Nginx打开目录浏览功能

阅读(641)

Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件或你要启用目录浏览虚拟主机的配置文件,在server或location 段里添加上autoindex on;来启用目录流量,下面会分情况进行说明。

另外Nginx的目录流量有两个比较有用的参数,可以根据自己的需求添加:

autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间

1、整个虚拟主机开启目录流量

在server段添加

location / {
autoindex on;
autoindex_localtime on; #之类的参数写这里
}

2、单独目录开启目录流量
2.1:直接二级目录开启目录流量

location /down/ {
autoindex on;
}

2.2:虚拟目录开启目录流量

location /down/ {
alias /home/wwwroot/lnmp/test/;
autoindex on;
}

详细参照:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html

重启nginx,使其生效。

更换sqlite3 为pysqlite3

阅读(1054)

Python3.9环境运行django最新版本,即使更新了centos的sqlite3版本仍然会报错。出错提示如下:
“django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3”

这个问题有两种解决办法:
(1)使用Python3.8或其他
(2)通过更换sqlite3 为pysqlite3解决。

下文主要介绍第二种办法的具体操作。

#修改出错文件
vim /root/envs/myenv/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py

#注释掉第14行
#from sqlite3 import dbapi2 as Database

#新增行
from pysqlite3 import dbapi2 as Database

#然后安装pysqlite3包
pip install pysqlite3

甲骨文云 Oracle Cloud 免费 ARM 实例硬盘扩容

阅读(4683)

如果在创建实例时,设置了更大的引导卷,同时操作系统选择的Oracle Linux,在开机后,登陆服务器查询磁盘sda的容量确实提高了,但是/根目录的分区遵循Oracle Linux镜像的尺寸,只有38G.需要手动扩容系统盘.

查看sda磁盘容量

fdisk -l

查看分区详情

执行扩容命令
LANG=en_US.UTF-8
sudo /usr/libexec/oci-growfs

再次检查磁盘和分区详情

lsblk

原文:https://www.ioiox.com/archives/134.html

centos7 安装python3

阅读(642)

centos7自带python2.7,如果要使用python3需要另外安装。而系统的其他部件需要python2,所以安装的时候一般是要求python2和python3共存。

#安装依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

#下载安装包。更多版本见https://www.python.org/ftp/python 
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz

#解压并进入目录
tar xzvf Python-3.9.6.tgz
cd Python-3.9.6

#设置默认安装目录
mkdir /usr/local/python3
./configure -prefix=/usr/local/python3

#编译安装
make && make install

#建立链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3   #为python3创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3   #为pip3创建软连接

#测试安装是否成功
python3 -V
pip3 -V

virtualenv是python的一个包,可以使用pip安装。安装后要把virtualenv加入系统变量,以方便使用。

#为python3安装virtualenv
pip3 install virtualenv

echo "PATH=\PATH:/usr/local/python3/bin" >> /etc/profile

#让etc/profile生效
source /etc/profile

#检查是否添加成功
echoPATH