亚马逊云可以为新用户提供一年免费的云服务器(千万不要超流量了)。需要绑定一张银联或者visa的信用卡。
绑定好后就可以创建你的Amazon EC2实例了。一定要保存好你的密钥.pem文件。记得选择香港或者台湾节点,这样大陆连接的时候也不会太慢,境外服务器的好处就是没那些乱七八糟的网络故障了。
1 连接到实例
可以使用官方推荐的putty连接
这里我向尝试使用git bash进行远程连接
在你本地储存密钥对的文件夹右键,我这里存储地址是 G:\code_workspace\aws keys 
输入“连接到您的实例”中示例的指令 ssh -i "your-key-name.pem" my-instance-user-name@my-instance-public-dns-nam .
其中user-name根据你的服务器系统决定,我的aws服务器系统为Ubuntu,所以user-name为ubuntu。下面为不同系统的默认实例user-name
获取您的实例的用户名。
您可以使用用户帐户的用户名或用于启动实例的AMI的默认用户名连接到实例。
- **获取您的用户帐户的用户名。**<br />有关如何创建用户帐户的更多信息,请参阅[在Amazon Linux实例上管理用户帐户](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html)。<br />- **获取用于启动实例的AMI的默认用户名:**- 对于Amazon Linux 2或Amazon Linux AMI,用户名为`ec2-user`。<br />- 对于CentOS AMI,用户名是`centos`。<br />- 对于Debian AMI,用户名为`admin`。<br />- 对于Fedora AMI,用户名为`ec2-user`或`fedora`。<br />- 对于RHEL AMI,用户名为`ec2-user`或`root`。<br />- 对于SUSE AMI,用户名为`ec2-user`或`root`。<br />- 对于Ubuntu AMI,用户名为`ubuntu`。<br />- 否则,如果`ec2-user`和`root`不工作,请与AMI提供商。
更改root密码
sudo passwd root
ubuntu@ip-172-31-15-248:/env$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
2. 安装网站运行基础
代码:
- 代码运行基础:Python及相关库
- 传输代码:Git、scp、ftp
数据库MySQL
输入python +tab 查看服务器python版本
ubuntu@ip-172-31-15-248:~$ python3
python3 python3-jsondiff python3m
python3.5 python3-jsonpatch
python3.5m python3-jsonpointer
ubuntu@ip-172-31-15-248:/usr/bin$ python -v
The program 'python' can be found in the following packages:
* python-minimal
* python3
该服务器默认python版本为 Python 3.5.2 (default, Apr 16 2020, 17:47:17) .
我们的Django运行环境为python3.6因此需要
2.1 升级python3.6
sudo add-apt-repository ppa:jonathonf/python-3.6报错
可以执行下面代码
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
2.2 创建软连接
ubuntu@ip-172-31-15-248:/usr/bin$ ls |grep python
dh_python3
python3
python3.5
python3.5m
python3.6
python3.6m
python3-jsondiff
python3-jsonpatch
python3-jsonpointer
python3m
系统中只有python3.5的软连接—— python3 .
创建python3.6的软连接—— python (可删除python3.5的软连接前最好备份,同时不可以卸载系统自带的python3.5)
ubuntu@ip-172-31-15-248:/usr/bin$ whereis python3.6
python3: /usr/bin/python3 /usr/bin/python3.6m
/usr/bin/python3.6 /usr/bin/python3.5 /usr/bin/python3.5m
/usr/lib/python3 /usr/lib/python3.6 /usr/lib/python3.5 /etc/python3
/etc/python3.6 /etc/python3.5 /usr/local/lib/python3.6 /usr/local/lib/python3.5
/usr/share/python3 /usr/share/man/man1/python3.1.gz
ubuntu@ip-172-31-15-248:/usr/bin$ sudo ln -s /usr/bin/python3.6 /usr/bin/python
ubuntu@ip-172-31-15-248:/usr/bin$ python
Python 3.6.11 (default, Jun 29 2020, 05:15:03)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
2.3 安装pip
服务器地址是在香港,所以不需要更新下载源为大陆镜像。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
更新pip
pip3 install --upgrade pip
pip install --upgrade pip
2.4 安装虚拟环境 (可选)
root@ip-172-31-15-248:/home# apt-get install virtualenv
root@ip-172-31-15-248:/home# virtualenv py36_django
The executable python2 (from --python=python2) does not exist
报错`The executable python2 (from —python=python2) does not exist`
修改为 此处python=python后面的python是python3.6的软连接
root@ip-172-31-15-248:/home# virtualenv py36_django --python=python
Already using interpreter /usr/bin/python
Using base prefix '/usr'
New python executable in /home/py36_django/bin/python
Also creating executable in /home/py36_django/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
root@ip-172-31-15-248:/home# ls
py36_django ubuntu
2.5 激活虚拟环境
root@ip-172-31-15-248:/home# cd py36_django/
root@ip-172-31-15-248:/home/py36_django# source bin/activate
(py36_django) root@ip-172-31-15-248:/home/py36_django#
2.6 克隆文件
cd /home
git clone https://xxxxx
更新
cd proj_lab
git fetch --all && git reset --hard origin/master && git pull
2.7 安装apt-getmysql 以及后续依赖 -> 链接
从原来的服务器传数据库文件到本服务器
root@ip-172-31-15-248:/home# scp root@121.37.130.65:/home/data.sql /home/
The authenticity of host '121.37.130.65 (121.37.130.65)' can't be established.
ECDSA key fingerprint is SHA256:wrlv........
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '121.37.130.65' (ECDSA) to the list of known hosts.
root@121.37.130.65's password:
data.sql 100% 127KB 127.0KB/s 00:01
root@ip-172-31-15-248:/home# ls
data.sql mysql-apt-config_0.8.15-1_all.deb proj_lab py36_django ubuntu
root@ip-172-31-15-248:/home#
2.8 本地传文件到aws
scp -i "s2ac.pem" about.png ubuntu@ec2-18-166-47-140.ap-east-1.compute.amazonaws.com:~/
传送到根目录再拷贝到目的目录,以免传递时提示
scp: permission denied

