Linux一键安装部署环境

2023-05-16

安装Java环境

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

安装mariadb

1. vi install-mariadb.sh  创建文件并打开

image

2. 输入 i 进入编辑(复制一下内容粘贴)

#!/bin/bash
MARIADB_DIR=/usr/local/mariadb
DATA_DIR=/data/mariadb
MARIADB_VER=10.3.27
ROOT_PASSWORD=123456
# 创建数据存放目录
mkdir -p ${DATA_DIR}
# 创建mysql的用户做为mariadb的运行用户
useradd -r mysql -s /sbin/nologin
# 下载
cd /usr/local/src
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-${MARIADB_VER}/bintar-linux-systemd-x86_64/mariadb-${MARIADB_VER}-linux-systemd-x86_64.tar.gz
tar -zxvf mariadb-${MARIADB_VER}-linux-systemd-x86_64.tar.gz 
mv mariadb-${MARIADB_VER}-linux-systemd-x86_64 ${MARIADB_DIR}
ln -s ${MARIADB_DIR} /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/
# 授权
chown -R mysql.mysql ${DATA_DIR}
# my.conf configuration
cat > /etc/my.cnf <<EOF
[mysqld]
port            = 3306
character-set-server = utf8
collation-server = utf8_general_ci
datadir = ${DATA_DIR}
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
EOF
cd ${MARIADB_DIR}
./scripts/mysql_install_db --datadir=${DATA_DIR} --user=mysql
# 设置开机自启动
cp ${MARIADB_DIR}/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
${MARIADB_DIR}/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"${ROOT_PASSWORD}\" with grant option;"
${MARIADB_DIR}/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"${ROOT_PASSWORD}\" with grant option;"
${MARIADB_DIR}/bin/mysql -uroot -p${ROOT_PASSWORD} -e "delete from mysql.user where Password='';"
${MARIADB_DIR}/bin/mysql -uroot -p${ROOT_PASSWORD} -e "delete from mysql.db where User='';"
${MARIADB_DIR}/bin/mysql -uroot -p${ROOT_PASSWORD} -e "delete from mysql.proxies_priv where Host!='localhost';"
${MARIADB_DIR}/bin/mysql -uroot -p${ROOT_PASSWORD} -e "drop database test;"
# 添加环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile.d/mysql.sh
# 刷新环境变量
. /etc/profile.d/mysql.sh

image

3. 按 Esc 输入 :wq! 
4. 授权文件为可执行命令: chmod 777 install-mariadb.sh 
5. 安装wget命令: yum -y install wget
6. 执行安装mariadb命令 ./install-mariadb.sh

安装 Nginx install-nginx.sh

#!/bin/bash
# 版本
NGINX_VERSION=1.16.0
# 安装目录
NGINX_DIR=/usr/local/nginx
# 安装依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel wget
# 下载
cd /usr/local/src
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
# 解压
tar -zxvf nginx-${NGINX_VERSION}.tar.gz
# 安装
cd nginx-1.16.0
./configure --prefix=${NGINX_DIR} --with-http_stub_status_module --with-http_ssl_module
make install
# 设置为系统服务
cat > /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx service
After=network.target 
[Service] 
Type=forking 
ExecStart=${NGINX_DIR}/sbin/nginx
ExecReload=${NGINX_DIR}/sbin/nginx -s reload
ExecStop=${NGINX_DIR}/sbin/nginx -s quit
PrivateTmp=true
[Install] 
WantedBy=multi-user.target
EOF
# 刷新
systemctl daemon-reload
# 设置开机自启
systemctl enable nginx
# 启动
systemctl start nginx

image

安装redis install-redis.sh

#!/bin/bash
# 版本
REDIS_VERSION=5.0.9
# 安装目录
REDIS_DIR=/usr/local/redis
# 安装依赖
yum install -y gcc 
# 下载
cd /usr/local/src
wget http://download.redis.io/releases/redis-${REDIS_VERSION}.tar.gz
# 解压
tar -zxvf redis-${REDIS_VERSION}.tar.gz
# 安装
cd redis-${REDIS_VERSION}
make install PREFIX=${REDIS_DIR}
# 复制配置文件
cp /usr/local/src/redis-${REDIS_VERSION}/redis.conf ${REDIS_DIR}/bin/
# 配置后台启动
sed -i 's/daemonize no/daemonize yes/g' ${REDIS_DIR}/bin/redis.conf
# 设置为系统服务
cat > /etc/systemd/system/redis.service <<EOF
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=${REDIS_DIR}/bin/redis-server ${REDIS_DIR}/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
# 刷新
systemctl daemon-reload
# 设置开机自启
systemctl enable redis
# 启动
systemctl start redis
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux一键安装部署环境 的相关文章

  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • 如何在linux中使用iptables将http和https流量转发到透明代理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 进程如何知道它已收到信号

    如果我错了 请纠正我 以下是我对信号的理解 据我所知 信号生成 和信号传递有2个不同 事物 为了产生信号 操作系统只是在位数组中设置一个位 在过程控制中维护 工艺块 PCB 每一位 对应于特定信号 当设置一个位时 这意味着 该位对应的信号为
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要

随机推荐