使用阿里云ECS踩坑总结

ECS系统 ubuntu 14.04 LTS
关于系统,阿里云提供的系统可选项非常多,根据自己的需求安装即可。

1、flask部署环境相关问题

最近在学习flask,部署flask开发的网站,因此在ECS上配置flask web环境就是最重要的了。主要包含了python的一些包,mysql软件等等。下面总结了一些经验。

(1)、安装mysql-server

1
sudo apt-get install mysql-server

安装过程如果出现报错,比如某个url 404错误,可尝试更新系统或者更新软件源

1
2
sudo apt-get update
sudo aot-get upgrade

更改软件源方法此处不赘述,阿里云官方文档有介绍。

在mysql-server安装过程中,会提示用户输入root账户的密码,可按相关提示执行
然后,查看mysql服务的状态,终端下输入:

1
ps -ef | grep mysql

(2)、启动mysql-server

1
service mysql start

(3)、查看mysql数据表

进入mysql-server的安装目录,安装目录在安装的时候系统有提示。
终端下输入

1
mysql -u用户名 -p密码

这样,就进入了mysql的命令行界面,在这里可以对相关数据库进行操作。
输入

1
show databases

可以看见已经有的数据表

(4)、设置数据库字符编码

要让数据库中显示保存中文不乱码,就要设置mysql的字符编码,打开编辑mysql配置文件my.cnf

1
cd /etc/mysql/my.cnf

(5)、设置远程连接数据库

在mysql命令行下执行下面的命令

1
2
3
4
use mysql;
select Host,User from user;
update user set Host='%' where User='root' limit 1;
flush privileges;

测试是否能连接远程的mysql服务器
在本地电脑的终端中,先安装mysql-client客户端,然后对ecs的数据库发起连接请求,测试能否连接成功

1
mysql -uroot -ppassword -h addr -P port -D database

成功的话自己电脑终端下就会显示mysql命令行界面

(6)、查看mysql使用的端口号

1
show variabels like 'port'

(7)、当忘记了mysql的密码时

在mysql配置文件my.cnf中添加这一行,就跳过密码验证(先关闭mysql服务,再设置)

1
skip-grant-tables

然后重新设置密码

1
update mysql.user set password=password('123') where user='root'

(8)、部署flask生产环境

部署flask的生产环境建议使用virtualenv的虚拟环境,这样不会将各个项目不同的依赖包都导入,直接影响到全局的环境。

1
sudo apt-get install python-pip
1
2
sudo pip install virtualenv
virtualenv venv

就创建了一个名为venv的虚拟环境,要激活虚拟环境,在venv同级目录下执行

1
source venv/bin/activate

如果要退出虚拟环境,执行

1
deactivate

(9)、安装uwsgi

安装uwsgi的时候报错可能会报setuptools的错误,首先要安装编译uwsgi的依赖包
在终端中输入命令

1
2
3
4
pip install python-dev
sudo apt-get install -U setuptools
sudo apt-get install update
sudo apt-get install uwsgi

(10)、解决外网无法访问mysql的问题

检查是否只监听本地的地址,
输入命令

1
netstat -nal |grep 3306

如果是,则需要修改mysql的配置文件,在mysqld下面添加监听0.0.0.0所有的端口

也可能是被防火墙拦截了自己的连接服务,因此需要自己手动设置防火墙
输入命令

1
ptables -A INPUT -p tcp --dport 3306 -j ACCEPT

2、php环境部署相关问题

(1)、安装lamp

1
sudo tasksel install lamp-server

此时,系统可能会给出一个warning,提示要安装语言环境依赖问题,
按照相关的要求解决

1
2
sudo apt-get install language-pack-zh-hans
sudo service apache2 restart

安装phpmyaddmin之后,会发现远程连接phpmyadmin时连接不上,要先用将www和phpmyadmin建立关联:

1
sudo ln -s /usr/share/phpmyadmin /var/www/html/pma

然后登陆ip/pma就可以了
修改phpmyadmin最大文件上传限制大小,默认情况,phpmyadmin将文件上传大小限制在了2M,可以通过更改配置文件修改其大小,
设置php.ini文件,将2M改自己需要的大小

1
2
upload_max_filesize: M
post_max_size: M

(2)、ssh在安装apache后突然连接不上

1
sudo service ssh restart

(3)、ECS重做系统之后发现本地ssh连接不上服务器

发现远程连接不上ssh,因为本地openssh保存公钥在known_hosts文件下 当系统变更后,造成密钥不匹配 解决方法 把该ip地址对应的密钥信息删除就可以了,命令

1
sudo nano /Users/a/.ssh/known_hosts

然后,找到该地址对应的信息,删除即可。

(4)、ubuntu中查找文件夹的名字

1
find / name "fireName"

(5)、ubuntu中的发行版没有httpd.conf配置信息 而是用apache.conf替代了

此外 设置网站的发布目录夹在site-available中也要修改对应的目录

(6)、解决部署网站网站提示缓存神马权限不够的问题

1
sudo chmod 777  /www   www目录替换为自己项目的目录

(8)、解决网站部署后无法访问phpmyaddmin

在apache2.conf中添加phpmyadmin的关联代码,部署网站之后就能通过域名访问pythonmyadmin了

1
Include /etc/phpmyadmin/apache.conf

热评文章