跳到主要内容

腾讯云开发环境配置

· 阅读需 5 分钟

基于腾讯云,操作系统centos7-64,配置django开发环境

1. centos7

更新系统,并安装开发工具。

 [root@VM_0_14_centos ~]# yum -y update
[root@VM_0_14_centos ~]# yum -y groupinstall development

2. apache

安装apache,设置apache自启动,并启动apache。

[root@VM_0_14_centos ~]# yum -y install httpd httpd-devel
[root@VM_0_14_centos ~]# systemctl enable httpd.service
[root@VM_0_14_centos ~]# apachectl start

配置

配置文件httpd.conf位置

[root@VM_0_14_centos ~]# httpd -V
HTTPD_ROOT="/etc/httpd"
SERVER_CONFIG_FILE="conf/httpd.conf"

配置文件httpd.conf内容

#指出服务器保存其配置、出错和日志文件等的根目录。
#用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是想对这个目录下
ServerRoot "/etc/httpd"

#服务器监听的端口号
Listen 80

#启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全
User apache
Group apache

#管理员的邮箱
ServerAdmin root@localhost

#主站点名称,默认是不需要指定的
#提示AH00558,解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost
#ServerName www.example.com:80
ServerName localhost

#根目录权限设置
<Directory />
#AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
#None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。
#All: 在.htaccess文件中可以使用所有的指令。
AllowOverride none
#限制所有存取
Require all denied
</Directory>

#网页文件存放的目录
DocumentRoot "/var/www/html"

#对/var/www目录权限设置
<Directory "/var/www">
AllowOverride None
#允許所有存取
Require all granted
</Directory>

#对/var/wwww/html目录权限设置
<Directory "/var/www/html">
#Options:配置在特定目录使用哪些特性
#FollowSymLinks: 在该目录下允许文件系统使用符号连接。
#Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<IfModule dir_module>
#指定所要访问的主页的默认主页名字,默认首页文件名为index.html
DirectoryIndex index.html
</IfModule>

#控制不让web上的用户来查看.htpasswd和.htaccess这两个文件
<Files ".ht*">
Require all denied
</Files>

#错误日志
ErrorLog "logs/error_log"

LogLevel warn

<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

3. python3与django

安装python3及pip3,设置与启动环境,安装Django。 查看django版本,用django建网站并运行,退出环境。

[root@VM_0_14_centos ~]# yum -y install python36 python36-devel
[root@VM_0_14_centos ~]# curl https://bootstrap.pypa.io/get-pip.py | python36
[root@VM_0_14_centos ~]# python36 -m venv env
[root@VM_0_14_centos ~]# source ~/env/bin/activate
[root@VM_0_14_centos ~]# pip install django
[root@VM_0_14_centos ~]# django-admin --version
[root@VM_0_14_centos ~]# django-admin startproject mysite
[root@VM_0_14_centos ~]# cd mysite
[root@VM_0_14_centos ~]# vi mysite/settings.py
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
[root@VM_0_14_centos ~]# ./manage.py migrate
[root@VM_0_14_centos ~]# ./manage.py createsuperuser
[root@VM_0_14_centos ~]# ./manage.py collectstatic
[root@VM_0_14_centos ~]# deactivate

mod_wsgi

安装apache模块,设置模块

[root@VM_0_14_centos ~]# pip3 install mod_wsgi
[root@VM_0_14_centos ~]# mod_wsgi-express install-module
[root@VM_0_14_centos ~]# vi /etc/httpd/conf.modules.d/10-wsgi.conf
LoadModule wsgi_module "modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"

django - apache

通过mod_wsgi模块,联结apache与django

[root@VM_0_14_centos ~]# vi /etc/httpd/conf.d/django.conf
WSGIScriptAlias / /root/mysite/mysite/wsgi.py
WSGIPythonHome /root/env
WSGIPythonPath /root/mysite

<Directory /root/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static /var/www/mysite/static
<Directory /var/www/mysite/static>
Require all granted
</Directory>

<Directory /var/www/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

WSGIDaemonProcess mysite python-home=/root/env python-path=/var/www/mysite
WSGIProcessGroup mysite
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py

权限

chmod r:4 w:2 x:1

owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0

设置apache用户可以读写db.sqlite3数据库文件

[root@VM_0_14_centos ~]# chmod 770 mysite
[root@VM_0_14_centos ~]# chmod 770 db.sqlite3