因为之前的学生服务器到期,本来是能以学生价格续费3次的,但活动截止不让续费了(也没得到通知!),遂重新购买了服务器。
备份之前服务器上的数据到新服务器后,开始部署项目。
以下简单记录整个部署流程,具体服务配置我也是一知半解,就不展开讲了(毕竟才疏学浅...)
开通后登上服务器第一件事就是要更新yum源。因为是购入阿里云的服务器,yum源本身就是阿里源,就没有设置
yum update -y
yum -y install \
zlib-devel \
bzip2-devel \
openssl-devel \
ncurses-devel \
sqlite-devel \
readline-devel \
tk-devel \
libffi-devel \
wget \
gcc \
make
Linux上默认安装的是Python 2解释器,但是项目是通过Python 3解释器构建的,所以需要安装Python 3。
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 install --upgrade pip
pip3 install -r requirements.txt
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
sudo yum repolist all | grep mysql
比如我就想安装mysql5.7,而现在最新是mysql8.0,所以需要禁用8.0的,启用5.7的:
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
sudo yum repolist all | grep mysql
注意: 只为一个发行系列启用子存储库。如果启用了多个发行系列的子存储库,那么Yum将使用最新的系列。
yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。 我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存,这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。 下边两个命令按顺序执行:
yum clean all
yum makecache fast
sudo yum install mysql-community-server
对于基于EL7的平台(CentOS 7):
//启动mysql
$ systemctl start mysqld.service
//查看状态
$ systemctl status mysqld.service
//关闭
$ systemctl stop mysqld.service
//重启
$ systemctl restart mysqld.service
//运行开机自启
$ systemctl enable mysqld.service
//不允许开机自启
$ systemctl disable mysqld.service
mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码。
grep "password" /var/log/mysqld.log
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1234!';
show variables like 'validate_password%';
以下命令按顺序一条一条执行即可。(改为密码最短3位,其他无限制)
mysql> set global validate_password_policy=0;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=0;
mysql> set global validate_password_special_char_count=0;
mysql> set global validate_password_length=3;
wget http://nginx.org/download/nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
./nginx
ps -aux | grep nginx
因为我的服务器系统使用的是CentOS,其他系统不一定适用。
yum install redis
systemctl start redis
验证安装:
验证Redis是否在运行有两种办法:
ps -ef | grep redis
redis-cli
pip3 install celery
/usr/local/python3/bin/celery -A main worker -l info
yum -y install memcached
systemctl start memcached
firewall-cmd --add-port=11211/tcp --permanent
firewall-cmd --reload
pip3 install uwsgi
<uwsgi>
<socket>127.0.0.1:8000</socket>
<chdir>项目文件路径</chdir>
<module>应用文件名.wsgi</module>
<processes>4</processes>
<daemonize>uwsgi.log</daemonize>
<pidfile>记录pid的文件.log</pidfile>
</uwsgi>
uwsgi -x 配置文件名.xml
配置并启动上述所安装软件后,在阿里云控制台设置域名绑定后便可通过域名正常访问了!!!
基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建