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生成缓存

服务器上新建用户

  1. useradd -d /usr/whohim -m whohim
  2. cd /usr/whohim/
  3. passwd whohim
  4. sudo vim /etc/sudoers
  5. 在搜索root 在下面写用户的权限跟root管理员一样
  6. exit
  7. 登录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)

创建数据库

  1. 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

下载git
sudo 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:

  1. 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.shshutdown.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:8080http://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虚拟域名配置及测试验证
  1. 在/usr/local/nginx/conf/ 目录新建vhost文件夹
    即:/usr/local/nginx/conf/vhost
  2. 创建域名转发配置文件,点击查看详情
    learning.happymmall.com.conf
    happymmall.com.conf
    img.happymmall.com.conf
    s.happymmall.com.conf
  3. 启动(重启)验证
    启动:nginx/sbin/nginx{nginx}/sbin/nginx -s reload
    注:${nginx}代表安装在系统中的路径,例如/usr/local/nginx
  4. 访问验证
    使用默认80端口访问验证:http://localhost:80http://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
04-04 05:07