安装jdk
首先查看是否含有jdk
// 执行
javac
// 或者
java -version
如果没有安装
yum install -y java-1.8.0-openjdk-devel.x86_64
找到jdk 位置
which java
安装jenkins
官方下载,但是下载失败了
, 因为被墙了
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk
sudo yum install jenkins
其他方式下载
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.332.3-1.1.noarch.rpm
rpm -ivh jenkins-2.332.3-1.1.noarch.rpm
启动jenkins
# 启动jenkins
systemctl start jenkins
# 查看jenkins
systemctl status jenkins
# 重启jenkins
systemctl restart jenkins
# 停止jenkins
systemctl stop jenkins
初始端口是8080
, 可以通过修改vim /etc/sysconfig/jenkins
配置文件更改端口号
FAQ
打开网站ip:[端口]
配置jenkins
, 如果是线上ECS 服务器 有可能访问不成功, 请检查下面几个原因
- 是否已安装jdk,命令:
Java -version
- 查看防火墙状态:
systemctl status firewalld.service
- 查看端口号是否开放
netstat -natp
- 如果是
阿里云等服务器
需要将端口号加入到安全组
安装 nginx
- 安装额外的软件仓库
sudo yum install epel-release -y
- 安装nginx
sudo yum install nginx -y
在服务器上设置 git
git config --global user.name "Bill"
git config --global user.email "735051883@qq.com"
设置ssh
ssh-keygen -t rsa -C "735051883@qq.com"
验证是否通过
ssh -T git@github.com
坑:在jenkins 上建立项目,无法连接github
是因为在jenkins
上连接github
是用了jenkins
用户的ssh
, 重新生成秘钥,添加到github
上即可
或者从~/.ssh
复制过去也行
su root
cd /var/lib/jenkins/.ssh
ssh-keygen -t rsa -C your-email@sample.com
# 注意下一步提示保存位置的时候,要再输入
/var/lib/jenkins/.ssh/id_rsa
# Enter file in which to save the key (/root/.ssh/id_rsa): /var/lib/jenkins/.ssh/id_rsa
# 改变用户
chown jenkins:jenkins id_rsa id_rsa.pub
cat id_rsa.pub
或者
sudo mv ~/.ssh/id_rsa.pub /var/lib/jenkins/.ssh/
sudo mv ~/.ssh/id_rsa /var/lib/jenkins/.ssh/
sudo mv ~/.ssh/knows_host /var/lib/jenkins/.ssh/
chown jenkins:jenkins id_rsa id_rsa.pub knows_host
配置nginx
cd /etc/nginx/conf.d
vi cra-app.conf
使用以下配置
server {
listen 80;
server_name localhost;
root /home/www/cra-app;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
注意: 虚拟机需要关闭 selinux, 否则上面配置会没法显示;
# 查看seLinux 状态
getenforce
关闭它
sudo vim /etc/selinux/config
# SELINUX=enforcing改为 SELINUX=disabled
这里记录一下nginx
root 与alias 的区别
当我们这样设置 root 的时候:
location /i/ {
root /data/w3;
}
当请求 /i/top.gif
,/data/w3/i/top.gif
会被返回。
当我们这样设置 alias 的时候:
location /i/ {
alias /data/w3/images/;
}
当请求 /i/top.gif
,/data/w3/images/top.gif
会被返回。
乍一看两者很像,但细一看,就能看出两者的区别,root
是直接拼接 root + location
而 alias
是用 alias
替换 location
,所以 root
中最后的路径里有 /i/
,而 alias
中最后的路径里没有 /i/
。
所以如果你这样使用 allias 定义一个路径:
location /images/ {
alias /data/w3/images/;
}
其实使用 root 会更好:
location /images/ {
root /data/w3;
}
server 和 location 中的 root
server 和 location 中都可以使用 root,举个例子:
http {
server {
listen 80;
server_name www.yayujs.com;
root /home/www/website/;
location / {
root /home/www/ts/;
index index.html;
}
}
}
如果两者都出现,是怎样的优先级呢?
简单的来说,就是就近原则,如果 location 中能匹配到,就是用 location 中的 root 配置,忽略 server 中的 root,当 location 中匹配不到的时候,则使用 server 中的 root 配置。