阿里云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账号
安装MySQL
yum -y install mysql-server
rpm -qa|grep mysql-server #检查是否安装mysql-server
字符集配置:
vim /etc/my.cnf
在mysqld节点下添加
character-set-server=utf8
default-character-set=utf8
保存退出
配置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进入数据库又报 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
看不出问题,查看mysql的日志终于找到问题vim /var/log/mysqld.log
搜索 Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
原因:
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] //输入密码 参考:()
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连接数据库:
(参考:)
创建数据库
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 "534801304@qq.com"
git config --global core.autocrlf false //避免系统不兼容
git config --global core.quotepath off //避免中文乱码
git config --global gui.encoding utf-8
ssh-keygen -t rsa -C "534801304@qq.com"
回车,什么都不输入
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)将标签<Host>里面的name值改为你的服务器外网ip,就能通过http://你的外网ip:8080访问了
5.验证启动 [whohim@iZwz96eyhfrn3ogpu6k90xZ bin]$ ./startup.sh
当shutdown.sh无法关闭Tomocat:
1. ps -ef|grep tomcat
如显示以下内容,则说明Tomcat进程还存在着
root 2993 1 0 20:07 pts/1 00:00:04 /usr/lib/jvm/jdk1.8.0_121/jre/bin/java -Djava.util.logging.config.file=/usr/lib/tomcat/apache-tomcat-7.0.75/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/lib/tomcat/apache-tomcat-7.0.75/endorsed -classpath /usr/lib/tomcat/apache-tomcat-7.0.75/bin/bootstrap.jar:/usr/lib/tomcat/apache-tomcat-7.0.75/bin/tomcat-juli.jar -Dcatalina.base=/usr/lib/tomcat/apache-tomcat-7.0.75 -Dcatalina.home=/usr/lib/tomcat/apache-tomcat-7.0.75 -Djava.io.tmpdir=/usr/lib/tomcat/apache-tomcat-7.0.75/temp org.apache.catalina.startup.Bootstrap start
root 3042 2838 0 20:17 pts/1 00:00:00 grep --color=auto tomcat
2.直接杀死进程:
kill -9 2993
继续查看Tomcat是否关闭,如出现以下信息则说明Tomcat已关闭
root 3044 2838 0 20:20 pts/1 00:00:00 grep --color=auto 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_2_HOME=/usr/local/tomcat6-2
export
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安装
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
sudo firewall-cmd --zone=public --add-port=61001-62000/tcp --permanent
sudo systemctl restart vsftpd
Nginx
Nginx是什么?
是一款轻量级Web服务器、也是一款反向代理服务器
Nginx能干什么?
Nginx能干的事情很多,这里简要罗列一些:
1.可直接支持Rails和PHP的程序
2.可作为HTTP反向代理服务器
3.作为负载均衡服务器
4.作为邮件代理服务器
5.帮助实现前端动静分离
Nginx特点
高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署
Nginx安装:
1.安装gcc
yum -y install gcc
2.安装pcre
yum -y install pcre-devel
3.安装zlib
yum -y install zlib zlib-devel
4.安装openssl
yum -y install openssl openssl-devel
备注:如需支持ssl,才需安装openssl
5.下载源码包
解压缩 tar -zxvf nginx-1.10.2.tar.gz
make
make install
Nginx常用命令
测试配置文件
安装路径下的/nginx/sbin/nginx -t
启动命令
安装路径下的/nginx/sbin/nginx
停止命令
安装路径下的/nginx.sbin/nginx -s stop,
或者是:nginx -s quit
重启命令
安装路径下的/nginx/sbin/nginx -s reload
查看进程命令
ps -ef |grep nginx
平滑重启
kill -HUP [Nginx主进程号(即查看进程命令查到的PID)]
增加防火墙80端口权限
线上防火墙
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 ipt
sudo 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