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 | sudo apt-get update |
更改软件源方法此处不赘述,阿里云官方文档有介绍。
在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 | use mysql; |
测试是否能连接远程的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 | sudo pip install virtualenv |
就创建了一个名为venv的虚拟环境,要激活虚拟环境,在venv同级目录下执行
1 | source venv/bin/activate |
如果要退出虚拟环境,执行
1 | deactivate |
(9)、安装uwsgi
安装uwsgi的时候报错可能会报setuptools的错误,首先要安装编译uwsgi的依赖包
在终端中输入命令
1 | pip install python-dev |
(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 | sudo apt-get install language-pack-zh-hans |
安装phpmyaddmin之后,会发现远程连接phpmyadmin时连接不上,要先用将www和phpmyadmin建立关联:
1 | sudo ln -s /usr/share/phpmyadmin /var/www/html/pma |
然后登陆ip/pma就可以了
修改phpmyadmin最大文件上传限制大小,默认情况,phpmyadmin将文件上传大小限制在了2M,可以通过更改配置文件修改其大小,
设置php.ini文件,将2M改自己需要的大小
1 | upload_max_filesize: 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 |