sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
说不出话,学生机9.5/月网速慢,可以windows下载完直接传过去,但是上传也只有100k/s,不说了
tar -xvzf Python-3.7.0.tgz
进入python3.7.0目录,执行./configure --prefix=/usr/bin/python3.7
sudo make && sudo make install
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.7/bin/python3.7 /usr/bin/python
进入到/usr/bin/python3.7/bin需要升级一下pip3方可使用,使用如下命令进行升级。
sudo /usr/bin/python3.7/bin/pip3 install –upgrade pip
上面这条可能会报错,执行这条命令:pip install --upgrade pip
现在需要更改pip3配置
vim pip3
改下面圈起来的2个地方
输入pip -V ,显示是安装在python3.7下,成功。
如下图,就成功:
sudo /usr/bin/python3.7/bin/pip3 install Django
使用python3.7测试一下,发现也是安装Django成功了。
刚收到短信,就10元买了阿里的RDS,也就是云Mysql。但是以后续费有点贵,还是自己在服务器上装个,省钱。
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
sudo netstat -tap | grep mysql
mysql -uroot -p123456
出现以下错误
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决方案:
①找到mysql的安装目录,我的是在/etc/mysql/mysql.conf.d ,该文件夹下有个mysqld.cnf文件,使用管理员权限编辑:sudo vim mysqld.cnf,然后在文件最后一行加入:skip-grant-tables ,然后保存退出(大概就是跳过验证的意思吧)
root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf
在文件最后一行加入:skip-grant-tables
②要重启mysql服务
Service mysql restart
③
接下来用空密码进入mysql管理命令行,切换到mysql库,直接命令:mysql 回车即可进入mysql命令模式,然后就是修改下root密码(其他用户也一样,只是权限不一样),修改密码语句如下:
root@dev:/etc/mysql/mysql.conf.d# mysql
mysql> update mysql.user set authentication_string=password('密码') where user='root' and Host ='localhost';
Query OK, 1 row affected, 1 warning
然后刷选配置,使之立即生效:
mysql> flush privileges;
接着退出mysql命令行模式;
mysql> quit;
Bye
④下一步便是把刚才我们改的mysqld.cnf文件,把刚才加入的那一行注释或者删除:skip-grant-tables ,保存退出。
⑤然后就可以用mysql -u root -p 登录了。
①默认安装的mysql没有外部访问权限,所以需要开启访问权限
grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码']; "%" 表示所有 10.0.0.1这样格式的ip地址 10-0-0-1
root@dev:/etc/mysql/mysql.conf.d# mysql -uroot -proot
mysql>grant all on *.* to 'root'@'%' identified by '密码';
mysql> flush privileges;
②root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf
将bind-address=127.0.0.1注释掉
至此,环境搭建完毕。现在需要把windows的Django部署到linux。
Debug改不改都可以,因为我们的项目是自己的,不怎么对外。
DEBUG是调试模式,开发推荐DEBUG=True,而项目上线必须DEBUG=Flase
ALLOWED_HOSTS=['*']必须改,*任何表示该机器的地址都可以访问当前项目
如果允许被其他机器访问的话,启动服务时,必须使用以下方式:
python manage.py runserver 0.0.0.0:端口号
pip -r freeze > requirements.txt
pip install -r requirements.txt
我这里采用了navicat
运行的时候会出现以下错误
是因为Mysql5.7版本不兼容问题
解决方案:
进入/usr/bin/python3.7/lib/python3.7/site-packages/django/db/backends/mysql目录
将python安装路径下的base.py的 if version 注释掉:
vim base.py
将python安装路径下的operations.py的146行的decode改为encode
vim operations.py
进入项目中,
输入python manage.py runserver 0.0.0.0:端口号
我这里是端口号给了80,直接输入ip地址就可以访问。