这里还有我其他项目的部署链接:
Flask Linux部署(HelloTest):Flask+Nginx+Gunicorn+Supervisor
Flask Linux部署(项目):Flask+Nginx+Gunicorn+Supervisor
目录
1、准备工作
-云服务器
-远程控制软件(MobaXterm),本地远程SSH登陆到个人云服务器的过程很简单,这里就不再细说
2、JDK安装
1、首先先到http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html下载JDK,下载到本到后,通过MobaXterm上传到服务器。
2、配置目录
注意:最好以root用户来操作
先新建一个目录:
cd usr
sudo mkdir java
cd java
sudo mkdir jdk
然后解压jdk的tar文件到上面的目录:
sudo tar zxvf jdk-9.0.4_linux-x64_bin.tar.gz -C /usr/java/jdk
3、配置环境变量
输入:
sudo vi /etc/profile
添加如下内容:
#set java environment
export JAVA_HOME=/usr/java/jdk/jdk-9.0.4
export JRE_HOME=/usr/java/jd/jdk-9.0.4/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
保存后执行:
source /etc/profile
验证安装:
java -version
如图所示:
3、配置tomcat
1、下载tomcat,到http://tomcat.apache.org/下载,此处笔者使用的是tomcat8.5,将tomcat下载到本地电脑上,通过MobaXterm上传到服务器。
2、安装
此处我把tomcat安装到/usr/java/tomcat中去。
cd /usr/java/
sudo mkdir tomcat
解压:
sudo tar zxvf apache-tomcat-8.5.28.tar.gz -C /usr/java/tomcat
3、配置环境
进入到上面的tomcat的bin文件夹下
sudo -i
cd /usr/java/tomcat/apache-tomcat-8.5.28/bin
sudo vi setclasspath.sh
添加如下:
export JAVA_HOME=/usr/java/jdk/jdk-9.0.4/
export JRE_HOME=/usr/java/jdk/jdk-9.0.4/jre
然后退回到bin目录下:
执行:
./startup.sh
出现如下,说明安装成功:
这样就可以通过(网址:8080)访问了:
此处若无法访问,就去查看tomcat服务器的Log信息,看看tomcat服务器是否已经正常启动,进入tomcat服务器下的logs目录,打开catalina.out文件进行查看:
cd /usr/java/tomcat/apache-tomcat-8.5.28/logs
cat catlina.out
4、从本地上传java web项目
1、war包上传
本地打包好的war包,上传到服务器,例如:
转到我的工作目录,上传.war文件
cd /home/ubuntu/DD/
mkdir tools
cd tools
vim run.sh
插入如下:
意思是,将刚上传的包,复制到tomcat路径下,接着重启。
cp /home/ubuntu/DD/customs.war /usr/java/tomcat/apache-tomcat-8.5.28/webapps/ROOT.war
cd /usr/java/tomcat/apache-tomcat-8.5.28/bin
./shutdown.sh
./startup.sh
cd -
运行此文件:
sudo ./run.sh
如图所示:
此时由于还没有装MySQL,会报如下错误:
5、Linux下安装Tomcat服务器使用到的命令
5.1、linux查看端口被哪个进程占用
lsof -i:端口号
5.2、查看Linux服务器的版本
lsb_release -a
5.3、查看当前iptables(防火墙)规则
可使用”iptables –L –n”查看当前iptables规则
iptables –L –n
5.4、添加指定端口到防火墙中
iptables -I INPUT -p 协议 –dport 端口号 -j ACCEPT
iptables -I INPUT -p udp --dport 161 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
6、安装MySQL
1.下载安装包到本地
http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
2.上传到服务器
3.解压安装包
sudo tar zxvf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
4.进入文件夹
cd /usr/local/ # 进入该目录
sudo mv mysql-5.6.26-linux-glibc2.5-x86_64/ mysql #改名
5.创建用户组和用户
groupadd mysql
useradd -g mysql mysql
6.修改权限
chown -R mysql:mysql /usr/local/mysql
7.安装数据库
cd /usr/local/mysql
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
error while loading shared libraries: libaio.so.1
解决方案:
sudo apt-get install libaio1 libaio-dev
继续
cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
cp support-files/my-default.cnf /etc/my.cnf
#修改启动脚本
vi /etc/init.d/mysql
#修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
启动服务:
#启动服务
service mysql start
这时会有错误:
Package ‘chkconfig’ has no installation candidate
chkconfig: command not found
解决方案:
sudo apt-get install sysv-rc-conf
alias chkconfig=sysv-rc-conf
#因为Ubuntu没有chkconfig,所以安装sysv-rc-conf并重命名为chkconfig,机智!
chkconfig --list #显示列表
chkconfig mysql on #打开
MySQL提示:The server quit without updating PID file问题的解决办法
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !
4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
9 启动mysql
service mysql start
#测试连接
./mysql/bin/mysql -uroot
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
#刷新
source /etc/profile
#启动mysql
service mysql start
#关闭mysql
service mysql stop
#查看运行状态
service mysql status
—————————————————————————-
若是无root权限,可将mysql安装到用户目录下
方法如下:
https://jingyan.baidu.com/article/ad310e80cf9ce81849f49ea2.html
mysqld_safe A mysqld process already exists
mysqld_safe A mysqld process already exists
表示mysqld_safe进程存在,可以通过
ps -A|grep mysql 查看mysqld_safe进程ID
kill -9 xxxx 终结ID为xxxx的进程
scripts/mysql_install_db --defaults-file=my.cnf --user=user
bin/mysqld_safe --defaults-file=my.cnf &
netstat -an | grep 3306