title: 线上云服务器搭建(1)【后端】
阿里云linux yum源配置
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、之后运行yum makecache生成缓存
服务器上新建用户
- useradd -d /usr/whohim -m whohim
- cd /usr/whohim/
- passwd whohim
- sudo vim /etc/sudoers
- 在搜索root 在下面写用户的权限跟root管理员一样
- exit
- 登录whohim账号
安装Java
运行命令:
yum -y install java-1.8.0-openjdk.x86_64
最后出现Complete! 就成功了
安装MySQL
yum -y install mysql-server
rpm -qa|grep mysql-server #检查是否安装mysql-server
字符集配置:
vim /etc/my.cnf
在mysqld节点下添加
保存退出
配置mysql的自启动:
systemctl enable mysqld centosd6:chkconfig --level 3 mysqld on
systemctl list-unit-files --type=service
systemctl restart mysqld centosd6:service mysqld restart
CentOS切换为iptables防火墙
切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。
1、关闭firewall:
service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum install iptables-services #安装
3、编辑iptables防火墙配置
vi /etc/sysconfig/iptables #编辑防火墙配置文件
下边是一个完整的配置文件:
#Firewall configuration written by system-config-firewall
#Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动
配置防火墙:
sudo vim /etc/sysconfig/iptables
添加
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
重启防火墙
systemctl restart iptables
此时报错,遂我放弃使用iptables改用centos7.3自带的firewall,反正旧的不去新的不来,总要拥抱新技术的。
卸载iptable,停止服务
yum安装firewalld
sudo yum -y install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
直接设置端口会报这个错:firewall-cmd: command not found,要先做以下两步
顺便设置80端口和3306端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
最后重载:
sudo firewall-cmd --reload
MySQL服务启动
1.启动MySQL服务
systemctl restart mysql
卡主没反应
然后:mysql -u root
进入数据库又报
看不出问题,查看mysql的日志终于找到问题vim /var/log/mysqld.log
搜索
原因:
table ‘mysql.host’不存在的原因是因为新安装的mysql服务后,一般需要执行数据库初始化操作 ,从而生成与权限相关的表,执行命令如下:
/usr/bin/mysql_install_db --user=mysql
再执行systemctl restart mysql
成功。mysql -u root
进入数据库
MySQL配置
1.查看当前用户
select user,host,password from mysql.user;
2.修改root密码:
set password for root@localhost=password('youpassword');
set password for root@127.0.0.1=password('youpassword');
3.exit退出mysql
4.重新登录mysql输入mysql -u root -p
-p, --password[=name] //输入密码 参考:(http://www.cnblogs.com/iloveyoucc/archive/2012/03/09/2388130.html)
5.输入密码登录成功
6.删除匿名用户,执行以下sql
查看是否有匿名用户:select user,host from mysql.user;
删除匿名用户:delete from mysql.user where user='';
再次查看:select user,host from mysql.user;
刷新,使以上操作生效:flush privileges;
7.插入mysql新用户
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
8.使操作生效flush privileges;
9.创建新的database
CREATE DATABASE `mmall`
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
10.本地用户赋予所有权限
grant all privileges on mmall.* to yourusername@localhost identified by 'yourpassword';
11.给账号开通外网所有权限
grant all privileges on mmall.* to 'yourusername'@'%'identified by 'yourpassword';
ps:根据实际修改权限
列:grant select,insert,update on mmall.* to yourusername@'192.11.11.11'identified by 'yourpassword';
代表只开通增改查给指定账号,并指定ip地址
12.使操作生效flush privileges;
MySQL验证
1.Linux:执行ifconfig查看运行mysql服务器的ip地址
2.windows:执行ipconfig
3.使用navicat连接数据库:
(参考:https://blog.csdn.net/nw_ningwang/article/details/76218997)
创建数据库
- create database
mmall
default character set utf8 COLLATE utf8_general_ci;
2.show datebases;
3.grant all privileges on mmall.* to yourusername@localhost identified by ‘yourpassword’;
4.flush privileges;
5.将数据表移动到云上去:
exit
cd/product/developer/
sudo wget http://learning.happymmall.com/mmall.sql
输入密码;
pwd,复制路径,进入数据库
use mmall;
show tables;
source /usr/whohim/product/developer/mmall.sql
show tables;
查看一下表有没有数据select * from mmall_user\G;
配置git
下载gitsudo wget http://learning.happymmall.com/git/git-v2.8.0.tar.gz
git安装依赖sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils- MakeMaker
解压
sudo tar -zxvf git-v2.8.0.tar.gz
cd git-2.8.0/
sudo make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
sudo vim /etc/profile
在最后一行加上:export PATH=/usr/local/git/bin:$PATH
使之生效source /etc/profile
git --version
配置用户名等信息
git config --global user.name "600849155"
git config --global user.email "[email protected]"
git config --global core.autocrlf false //避免系统不兼容
git config --global core.quotepath off //避免中文乱码
git config --global gui.encoding utf-8
ssh-keygen -t rsa -C "[email protected]"
回车,什么都不输入
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
复制公钥,登录git,码云-修改资料-添加公钥
安装Tomcat
1.下载 wget http://learning.happymmall.com/tomcat/apache-tomcat-7.0.73.tar.gz
2.解压缩 tar -zxvf apache
3.配置环境变量sudo vim /etc/profile
export CATALINA_HOME=/product/developer/apache-tomcat-7.0.73
使配置生效source /etc/profile
4.进入安装目录config打开server.xml 8080端口后面添加URIEncoding=“UTF-8”
(1).tomcat默认端口为8080,首先在云服务器控制台配置安全组规则 (2)将标签里面的name值改为你的服务器外网ip,就能通过http://你的外网ip:8080访问了
5.验证启动[whohim@iZwz96eyhfrn3ogpu6k90xZ bin]$ ./startup.sh
当shutdown.sh无法关闭Tomocat:
- ps -ef|grep tomcat
如显示以下内容,则说明Tomcat进程还存在着
2.直接杀死进程:kill -9 2993
继续查看Tomcat是否关闭,如出现以下信息则说明Tomcat已关闭
3.如果想查找报错原因可以打开Tomcat目录下的logs目录打开最新的catalina文件
linux 配置多个tomcat:
按照下面的步骤操作即可部署成功:
一些具体操作命令就不详细说了,直接说有用的:
1、在 /usr/local 下部署两个Tomcat,tomcat的文件夹重命名为:tomcat6-1 、 tomcat6-2
2、修改 linux 的profile文件,文件路径 /etc
在profile 中增加以下内容:
JAVA_HOME=/usr/java/jdk1.7.0_45
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH
tomcat1
CATALINA_BASE=/usr/local/tomcat6-1
CATALINA_HOME=/usr/local/tomcat6-1
export CATALINA_BASE CATALINA_HOME
tomcat2
CATALINA_2_BASE=/usr/local/tomcat6-2
CATALINA_2_HOME=/usr/local/tomcat6-2
export CATALINA_2_BASE CATALINA_2_HOME
TOMCAT_HOME=/usr/local/tomcat6-1
export TOMCAT_HOME
TOMCAT_2_HOME=/usr/local/tomcat6-2
export TOMCAT_2_HOME
3、修改 tomcat 的配置文件
tomcat6-1的配置文件保持不变;
tomcat6-2的配置文件修改如下:
修改 tomcat6-2/bin 下的文件:startup.sh 和 shutdown.sh(加入的内容一样),在文件中加入以下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin
export CATALINA_HOME=$CATALINA_2_HOME
export CATALINA_BASE=$CATALINA_2_BASE
修改 tomcat6-2/conf 下的 service.xml 文件,修改(三个地方)如下:
<Server port="8005" shutdown="SHUTDOWN">
8005 改为 8006(其他不用的端口也可以)
==================================================================
<Connector port="8080" protocol="HTTP/
1.1"
connectionTimeout="20000"
redirectPort="8443" />
8080 改为 8081(其他不用的端口也可以)
===================================================================
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
8009 改为 8010(其他不用的端口也可以)
===================================================================
4、 重新启动Linux
启动两个tomcat:
sh /usr/local/tomcat6-1/bin/startup.sh
sh /usr/local/tomcat6-1/bin/startup.sh
5、访问地址:http://192.168.0.13:8080 和 http://192.168.0.13:8081
6、成功。。。
注:如果配置多个的话,就按照这个方法累加就OK。。。
Maven
Maven是什么?
Apache Maven Project – Apache 的优秀开源项目
Maven是Java项目的构建和管理工具。
Maven能干什么?
1.用Maven可以方便的创建项目,
基于archetype可以创建多种类型的java项目
2.Maven仓库对jar包(artifact)进行统一管理,避免jar文件的重复拷贝和版本冲突
3.团队开发,Maven管理项目的RELEASE和Snapshot版本,方便多模块(Module)项目的各个模块之间的快速集成。
安装步骤
1.首先要确保电脑上已经安装了JDK
2.登录这里下载
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.0.5/binaries/
3.解压
tar -zxvf apache-maven-3.0.5-bin.tar.gz
4.配置环境变量
(1) sudo vim /etc/profile 在最下面增加Maven的环境变量
(2)export MAVEN_HOME=/developer/apache-maven-3.0.5
(3)export PATH=PATH:JAVA_HOME/bin:
$MAVEN_HOME/bin
(4)执行source /etc/profile,使之生效,如下图所示:
(5)环境变量配置参考,访问:
https://learning.happymmall.com/env/profile
(6)执行mvn -version,进行验证,如图
Maven常用命令
清除命令:mvn clean
编译命令:mvn compile
打包命令:mvn package
跳过单元测试:mvn clean package -Dmaven.test.skip=true
vsftpd 安装 (linux)
1.安装
执行 yum -y install vsftpd
注:
- 是否使用 sudo 权限执行请根据您具体环境来决定
- rpm -qa| grep vsftpd 可通过这个检查是否已经安装 vsftpd
默认配置文件 /etc/vsftpd/vsftpd.conf
2.创建虚拟用户
(1) 选择在根或者用户目录下创建ftp文件夹:mkdirftpfNe,如:/ftpfile
(2) 添加匿名用户:useradd ftpuser -d /ftpfile -s /sbin/nologin
(3) 修改ftpfile权限:chown -R ftpuser.ftpuser/ftpfile
⑷重设ftpuser密码:passwd ftpuser(视频中设置成123456)
3.配置
(1) cd /etc/vsftpd
(2) sudo vim chrootjist
(3) 把刚才新增的虚拟用户添加到此配置文件中,后续要引用
⑷ :wq保存退出
(5)sudo vim /etc/selinux/config ,修改为SELINUX=disabled
(6):wq保存退出
注:如果一会验证的时候碰到550拒绝访问请执行:sudo setsebool -P ftp_home_dir 1
然后重启linux服努器,执行reboot命令
(7)sudo vim /etc/vsftpd/vsftpd.conf
(8)添加或更新配置
详细说明请访问
http://learning.happymmall.com/env.html
本项目用到的配置说明
http://learninq.happymmall.eom/vsftpdconfig/vsftpd.c
onf.readme.html
更多配置学习
http://download.happymmaM.com/vsftpdconfig.doc
4.防火墙配置
(1) sudo vim /etc/sysconfig/iptables
(2)
-A INPUT -p TCP -dport 61001:62j000 -j ACCEPT
-A OUTPUT -p TCP -sport 61001:62000 -j ACCEPT
-A INPUT -p TCP -dport 20 -j ACCEPT
-A OUTPUT -p TCP -sport 20 -j ACCEPT
-A INPUT -p TCP -dport 21 -j ACCEPT
-A OUTPUT -p TCP -sport 21 -j ACCEPT
将以上配置添加到防火墙配置中
然后执行:sudo firewall-cmd --zone=public --add-port=61001-62000/tcp --permanent
sudo systemctl restart vsftpd
vsftpd.conf修改以下:
ftpd_banner=Welcome to whohim.top FTP service.
local_root=/ftpfile
use_localtime=yes
anonymous_enable=NO
pasv_min_port=61001
pasv_max_port=62000
Nginx 安装(Linux)
Nginx 安装
(1)进入ngi nx目录之后执行./ccmf igu re
- 也可以指定安装目录,增加参数–prefix=/usr/ngim(
- 如果不指定路径,可以通过whereis nginx进行查询
3)默认安装在八isr/loca丨/nginx
Nginx虚拟域名配置及测试验证
- 在/usr/local/nginx/conf/ 目录新建vhost文件夹
即:/usr/local/nginx/conf/vhost - 创建域名转发配置文件,点击查看详情
learning.happymmall.com.conf
happymmall.com.conf
img.happymmall.com.conf
s.happymmall.com.conf - 启动(重启)验证
启动:nginx/sbin/nginx重启:{nginx}/sbin/nginx -s reload
注:${nginx}代表安装在系统中的路径,例如/usr/local/nginx - 访问验证
使用默认80端口访问验证:http://localhost:80 或 http://127.0.0.1:80
指向端口
learning.happymmal.com.conf
happymmall.com.conf(既指向端口又指向目录)
详情可访问:
http://learning.happymmall.com/nginx/linux_conf/vhost/
vhost/learninq.happymmall.com.conf
vhost/happvmmall.com.conf
指向目录
img.happymmall.com.conf
s.happymmall.com.conf
详情可访问:
http://learning.happymmall.com/nginx/linux_conf/vhost/
nginx 本地玩耍注意事项
可以配置域名转发,但是请一定要配置host,
并且使host生效之后才可以,设置芫成之后要重启浏览器
Linux :
(l)sudo vim /etc/hosts
(2)添加好对应的域名及ip
线上防火墙
cd /etc/sysconfig/
ll | grep ipt
sudo iptables -P OUTPUT ACCEPT
sudo service iptables save
ll | grep ipt
备份 sudo mv iptables iptables.bak
ll | grep ipt
复制线上的iptables sudo wget learning.happymmall
ll | grep iptsudo vim iptables
注释开放的3306、5005、8080端口,保存退出
sudo service iptables restart
自动化发布脚本
cd /developer/
ll
sudo wget ....deploy.sh
sudo vim deploy.sh
sudo mkdir git-repository
cd git-repository/
cd ..
cd ..
sudo chown -R whohim /developer/
ll
sudo chmod u+w -R usr/whohim/developer/
sudo chmod u+x -R usr/whohim/developer/
sudo chmod u+r -R usr/whohim/developer/
ll
cd developer
cd git-repository
git clone git #仓库上的ssh地址
ll
sudo vim deploy.sh
把目录修改成ll命令显示的目录/developer/git=repository/mmall_learning
同样的‘拷贝编译。。。’那一行的下一行的目录也要修改,修改分支名与git仓库上的匹配
cd root
看一下是不是我们上传的文件
cat index.jsp
上阿里云查看实例公网IP,解析域名
把IP粘贴到地址为www上面
修改代码里的mmall.properties、datasource.properties
ftp修改成云服务器的实例公网ip,提交代码,重新部署:
./deploy.sh
成功启动tomcat后sudo service vsftpd start
上传图片,看一下日志less logs/cat,修改ftpuser,重新部署:
./deploy.sh
如果此时报mvn: command not found
则source /etc/profile
上传图片看看
cd apache-tomcat-7.0.73
ll
sudo vim /usr/local/nginx/conf/
sudo vim /usr/local/nginx/conf/vhost/
sudo vim /usr/local/nginx/conf/vhost/img.happymmall.com
得知文件放在 /product/ftpfole/img/
cd /product/ftpfole/img/
ll 复制目录下的.jpg文件
sudo mkdir img
sudo mv ...jpg img/
ll
sudo chown ftpuser img/
sudo chgrp ftpuser img/
ll
sudo chmod g+w img/
ll