Linux 常用开发环境搭建

记录常用的开发环境搭建过程,大部分来源于网络,在此统一记录,方便大众。侵删。
基于 CentOS Linux release 7.6.1810 (Core)
查看系统版本命令 cat /etc/redhat-release

lrzsz

lrzsz(Linux服务器和window互传文件工具)
sz /文件名:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

yum install -y lrzsz

wget

Linux中的一个下载文件的工具

yum -y install wget

lsof

lsof(list open files)是一个列出当前系统打开文件的工具。

yum -y install lsof

unzip

unzip是一款用于在Linux系统中解压缩的小工具,可以帮助用户轻松解压多种压缩文件格式,例如zip、rar、tar等。

yum install -y unzip

JDK 安装

1、查看支持的JDK版本:

 yum -y list java* 

带-devel的安装的是jdk,而不带-devel的,实际上安装的是jre!

2、选择需要的版本安装 JDK

yum install -y java-1.8.0-openjdk-devel.x86_64

3、验证

java -version

4、查看 JDK 版本信息

cd /usr/lib/jvm

进入该安装目录下,输入 ls 命令,查看刚刚安装的 JDK

5、配置默认 JDK

如果你安装了多个不同版本的JDK,可以通过如下命令查看已安装的JDK:

 sudo update-alternatives --config java

6、配置JAVA_HOME

6.1 查找路径

[root@master01 jre]# which java
/bin/java
[root@master01 jre]# ls -l /bin/java
lrwxrwxrwx. 1 root root 22 Mar 22 01:01 /bin/java -> /etc/alternatives/java
[root@master01 jre]# ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Mar 22 01:01 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

6.2 配置JAVE_HOME

vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre
export PATH=$PATH:$JAVA_HOME/bin

6.3 使配置生效

source /etc/profile

Tomcat 安装

1、创建安装目录

mkdir /usr/tomcats
cd /usr/tomcats

2、下载 Tomcat

打开 Tomcat 官网 ,在左侧 Download 菜单下选择需要的版本,找到Core ->tar.gz (pgp, sha512),鼠标右键复制链接地址。

然后在Linux终端执行 wget 命令下载,wget后面为下载的版本,此处为 8.5.57

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz

3、解压

tar -zxvf apache-tomcat-8.5.57.tar.gz

重命名简化文件夹名称

mv apache-tomcat-8.5.57 tomcat8.5

4、运行

进入 bin 目录,执行以下命令启动:

./startup.sh 

或者

sh startup.sh 

重看启动日志

tail -f ../logs/catalina.out

4、访问

浏览器输入 ip:8080 访问即可看到Tomcat默认启动界面。

Maven 安装

1、下载

wget https://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz

wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

2、解压

# 将apache-maven-3.6.3-bin.tar.gz拷贝到指定文件夹
cp apache-maven-3.6.3-bin.tar.gz /etc/local/apache-maven-3.6.3-bin.tar.gz
# 进入安装目录
cd /etc/local/
# 解压安装文件
tar -zxvf apache-maven-3.6.3-bin.tar.gz

3、安装
3.1 仓库准备

# 新建本地仓库
mkdir maven-repository
# 修改目录权限(不然就只有root可以操作了,其他用户将无法下载jar,从而无法进行编译、打包等操作)
chmod 775 maven-repository

3.2 修改配置文件
编辑conf/settings.xml文件,新增下面内容。

<!-- 在settings标签开头指定本地仓库位置 -->
<localRepository>/usr/local/apache-maven-3.6.3/maven-repository</localRepository>

<!-- 在mirrors标签中指定中央仓库配置 -->
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyunmaven-maven</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

3.3 配置环境变量

# maven 环境变量
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

使配置生效

source /etc/profile

4、验证

# 查看maven当前版本
mvn -v

Python3 安装

1、创建安装目录

mkdir /usr/local/python3
cd /usr/local/python3

2、下载解压

Python官网 选择合适的版本下载,此处演示的为 3.8.0 版本。

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

解压

tar -xvzf Python-3.8.0.tgz

3、编译安装

# 进入主目录
cd Python-3.8.0

# 检查配置
./configure --prefix=/usr/local/python3

# 编译、安装
make && make install

# 创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

4、测试

# 输入
python3 -V
# 输出
Python 3.8.0

# 输入
pip3 -V
# 输出
pip 19.2.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)

Docker 安装

1、下载

yum install docker

2、基本操作命令

启动

systemctl start docker

重启 docker 服务

systemctl restart docker

关闭 docker 服务

systemctl stop docker

验证

docker info

3、镜像操作

获取镜像

其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像的标签(用来表示版本信息)

docker pull NAME[:TAG]

查看镜像

docker images

搜索镜像

docker search [image-name]

删除镜像

用来删除指定镜像,其中后面的参数可以是tag,如果是tag时,实际上是删除该tag,只要该镜像还有其他tag,就不会删除该镜像。当后面的参数为镜像ID时,则会彻底删除整个镜像,连通所有标签一同删除

docker rmi NAME\IMAGEID

实战 hello-world

# 拉取 hello-world 镜像
docker pull hello-world

# 查看镜像
docker images

# 启动hello-world镜像
docker run hello-world

# 出现以下信息代表启动成功
Hello from Docker!
This message shows that your installation appears to be working correctly.

远程访问
首先编辑docker的宿主机文件/lib/systemd/system/docker.service

vi /lib/systemd/system/docker.service

修改以ExecStart开头的行:(因为我的系统是centos 7的,所以修改为下面得)

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

如果是centos7以下的话,就把ExecStart修改为:

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

修改后保存文件,然后通知docker服务做出的修改

systemctl daemon-reload

重启docker服务

service docker restart

接下来测试一下看是否能连接到docker api。上面的2375就是对应端口

curl http://localhost:2375/version

4、容器操作

查看容器

# 查看容器
docker ps
# 查看所有容器记录(包括未运行的容器)
docker ps -a 

停止容器

docker stop IMAGEID

删除容器

docker rm IMAGEID

Git 安装

安装

yum -y install git

验证

git --version

Nodejs 安装

1、创建安装目录

mkdir /usr/local/nodejs
cd /usr/local/nodejs

2、下载解压

Node官网 下载需要的版本,上传到Linux服务器;

或者使用 wget 命令下载,如 14.8.0 版本:

wget https://npm.taobao.org/mirrors/node/v14.8.0/node-v14.8.0-linux-x64.tar.xz

解压

tar -xvf node-v14.8.0-linux-x64.tar.xz

重命名

 mv node-v14.8.0-linux-x64 node14.8

3、建立软连接

ln -s /usr/local/nodejs/node14.8/bin/npm /usr/local/bin/ 
ln -s /usr/local/nodejs/node14.8/bin/node /usr/local/bin/

4、验证

node -v

Nginx 安装

1、安装依赖环境:

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel

安装命令:

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2、创建安装目录

mkdir /usr/local/nginx
cd /usr/local/nginx

3、下载解压

Nginx 官网 下载需要的版本,此处演示为 1.9.9 版本

wget https://nginx.org/download/nginx-1.9.9.tar.gz

解压

tar -zxvf nginx-1.9.9.tar.gz

4、配置

进入解压好的文件目录下,依次执行以下命令:

./configure --prefix=/usr/local/nginx
make
make install

4、测试是否安装成功

回到 nginx 主目录,cd /usr/local/nginx/ 执行:

./sbin/nginx -t

若提示以下信息则说明安装成功:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5、启动Nginx

cd /usr/local/nginx/sbin
./nginx
创建软连接后就不用在Nginx/sbin目录下执行命令了
ln -sv /usr/local/nginx/sbin/nginx /usr/bin/nginx

然后查看Nginx进程,如果看到Nginx进程说明启动成功

ps -ef | grep nginx

6、外网测试

在浏览器中输入服务器的 ip 地址,如果看到 Welcome to nginx ! 说明可以访问

如果打不开链接可能是防火墙的原因

# 查看 80 端口是否开启
firewall-cmd --query-port=80/tcp

# 开启80端口
firewall-cmd --add-port=80/tcp --permanent

# 重启防火墙
systemctl restart firewalld

也有可能是服务商安全组规则限制 需要去购买服务器的平台修改。

7、配置 nginx 开机自启动

vim /etc/rc.d/rc.local

插入

# 开机启动 Nginx
/usr/local/nginx/sbin/nginx

8、配置 nginx.conf

vim /usr/local/nginx/conf/nginx.conf

9、常用命令

nginx           # 启动 nginx
nginx -s reload       # 重新载入配置文件
nginx -s reopen      # 重启 nginx
nginx -s stop          # 停止 nginx

三种启动方式

systemctl restart nginx
service nginx restart
nginx -s reload
nginx启动报 ssl parameter requires ngx_http_ssl_module

Nginx 可视化配置工具

nginxWebUI https://gitee.com/cym1102/nginxWebUI

(1)下载

sudo wget http://www.nginxwebui.cn/download/nginxWebUI-1.8.6.jar

(2)启动

nohup java -jar -Xmx64m nginxWebUI-1.8.6.jar --server.port=8080 --project.home=/usr/local/nginx/web_ui/ > /dev/null &

参数说明(都是非必填)

-Xmx64m 最大分配内存数

--server.port 占用端口, 默认以8080端口启动

--project.home 项目配置文件目录,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/

注意命令最后加一个&号, 表示项目后台运行

(3)访问

打开 http://xxx.xxx.xxx.xxx:8080 进入主页

Mysql 安装

Linux 安装

1、下载并安装MySQL官方的 Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum安装

yum -y install mysql57-community-release-el7-10.noarch.rpm

使用yum安装MySQL了,这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

yum -y install mysql-community-server

2、MySQL数据库设置

(1)首先启动MySQL

systemctl start  mysqld.service

(2)查看MySQL运行状态

systemctl status mysqld.service

(3)找出初始密码

grep "password" /var/log/mysqld.log

(4)进入数据库

mysql -uroot -p

(5)修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

如果提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,说明密码过于简单,可以设置密码强度 validate_password_policy:

mysql> set global validate_password_policy=0; #设置安全级别
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=4;#默认密码长度为8,可以设置为其它值,最小4位
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
Query OK, 0 rows affected (0.01 sec)

3、可视化工具登录授权

grant all on *.* to root@'%' identified by '密码';

Docker 安装

1、拉取镜像

docker pull mysql:5.7   # 拉取 mysql 5.7
docker pull mysql       # 拉取最新版mysql镜像

2、查看镜像

docker images

3、启动MySQL 镜像

(1)一般来说数据库容器不需要建立目录映射

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • –name:容器名,此处命名为mysql
  • -e:配置信息,此处配置mysql的root用户的登陆密码
  • -p:端口映射,此处映射 主机3306端口 到 容器的3306端口

可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了

docker run -p 3307:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • 可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了

(2)如果要建立目录映射

Copyduso docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
  • -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录

常用命令

启动:

sudo docker start pwc-mysql   //通过指定容器名字
sudo docker start 73f8811f669e  //通过指定容器ID

关闭:

docker stop pwc-mysql   //通过指定容器名字
docker stop 73f8811f669e  //通过指定容器ID

查看运行的镜像:

docker ps

连接 MySQL

(1)Docker 本地连接

进入docker本地连接mysql客户端

docker exec -it mysql bash

(2)Linux本地连接

mysql -uroot -p123456

(3)远程连接

通过 Navicat 等工具进行连接。

Redis 安装

使用 Docker 进行安装

一、安装

1、 搜索镜像

docker search --limit 10 redis

2、拉取镜像

docker pull redis:7.0.0

3、在宿主机本地创建redis配置目录和数据目录

我这里创建在 /usr/local/redis 目录下

mkdir /usr/local/redis/conf
mkdir /usr/local/redis/data

4、配置文件

复制原有redis.conf到/docker/redis/目录下

修改配置(最重要主要4项:修改后台运行默认为no、端口、存放位置、开启持久化):

#密码
requirepass 123
maxclients 10000

#如果要外网访问,请注释掉下面,或者修改为0.0.0.0,保险起见,也可以把protected-mode设置为no
bind 0.0.0.0

protected-mode no

#注意修改这里端口,根据你实际暴露端口情况配置
port 6380

tcp-backlog 511
timeout 0
tcp-keepalive 300

#注意这里要把后台运行设置为no,避免docker后台运行冲突
daemonize no

supervised no
pidfile /docker/redis/redis.pid
loglevel notice

databases 16

always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb

#注意修改这里的目录为容器内目录,默认reids进来是在/data/目录
dir /data/

replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

#注意修改这里的配置,yes开启持久化,no关闭持久化
appendonly yes

appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

5、启动容器

docker run -p 6380:6380 --name redis --privileged=true -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis:7.0.0 redis-server --appendonly yes  --requirepass 123

参数介绍:

-p 指定容器暴露的端口 外网6380,容器6380
--name 指定容器名字
--privileged=true  挂载容器卷目录权限
-v /usr/local/redis/conf/redis.conf[宿主机配置文件]:/etc/redis/redis.conf  [容器配置文件]
-v /usr/local/redis/data[宿主机数据存储位置]:/data [容器数据存储位置]
-d resdis[:版本号] 让容器在后台运行
redis-server 在容器内执行redis-server命令
--appendonly yes 打开redis持久化配置
--requirepass 123 设置redis访问密码

二、验证

1、进入容器

docker exec -it redis /bin/bash

2、打开客户端

redis-cli

3、执行ping命令

ping

发现提示:(error) NOAUTH Authentication required.,那么你的密码验证是设置成功了

4、使用密码登录

auth 123

提示:(error) WRONGPASS invalid username-password pair or user is disabled.

原因:
Redis 6.0之前的版本只支持验证密码方式的权限控制,格式如下:

AUTH <password>

当使用 Redis ACLs 权限控制时,AUTH 验证格式如下:

AUTH <username> <password>

在 ACLs 模式下,如果传递一个密码参数给 AUTH,那么会隐式设置用户名 "default" !!

使用以下命令登录,成功。

auth default 123

再ping,成功。

使用 config set requirepass <新密码> 可以修改认证密码。

5、使用以下命令测试redis

127.0.0.1:6379> auth default 123
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> get a
"1"
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> 

三、删除容器后重新启动容器

为了验证redis持久化,删除容器后数据在宿主机不会丢失,我们尝试删除容器后重新启动

1.删除,然后查看宿主机目录下是否有持久化文件,查看这一步可以放在上一步后

[root@iZ2zehyrc36yws3fh4yl7wZ data]# docker rm -f redis
redis
[root@iZ2zehyrc36yws3fh4yl7wZ data]# docker ps -a
[root@iZ2zehyrc36yws3fh4yl7wZ data]# cd /usr/local/redis/data/
[root@iZ2zehyrc36yws3fh4yl7wZ data]# ls
appendonlydir  dump.rdb

2.重启容器

docker run -p 6380:6380 --name redis --privileged=true -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis:7.0.0 redis-server --appendonly yes  --requirepass 123

进入redis,查看数据是否存在

[root@iZ2zehyrc36yws3fh4yl7wZ data]# docker exec -it redis /bin/bash
root@09cccd9651c7:/data# redis-cli  
127.0.0.1:6379> auth default 123
OK
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> 

数据存在,成功!

参考:

Linux下安装JDK https://www.cnblogs.com/imyalost/p/8709578.html
配置yum安装的java的JAVA_HOME https://www.cnblogs.com/irobotzz/p/12594305.html
Linux 基础入门 https://www.geekdigging.com/2019/11/21/1005563697/
Linux 安装Nodejs https://www.cnblogs.com/mmzuo-798/p/11190244.html
Linux下安装nginx https://www.cnblogs.com/xxoome/p/5866475.html
Centos7搭建Nginx并提供外网访问 https://blog.csdn.net/qq_40543961/article/details/79654230
使用Docker搭建MySQL服务 https://www.cnblogs.com/sablier/p/11605606.html
Docker开启远程访问https://blog.csdn.net/longzhanpeng/article/details/82217398
nginx启动报 ssl parameter requires ngx_http_ssl_module
docker 安装redis:挂载容器卷,同时开启持久化
安全无小事—docker安装redis并设置密码验证
Linux下安装Redis开放远程连接

本文链接: https://jianz.xyz/index.php/archives/58/

1 + 1 =
快来做第一个评论的人吧~