安装php

1. 安装所需环境

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel

2. 下载并安装PHP

#下载
wget http://cn2.php.net/distributions/php-7.3.3.tar.gz
#解压
tar -xzf php-7.3.3.tar.gz
#进入目录
cd php7.3.3
#编译php
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

如果报错system libzip must be upgraded to version >= 0.11

yum  -y remove libzip-devel
wget https://libzip.org/download/libzip-1.3.2.tar.gz
tar xvf libzip-1.3.2.tar.gz
cd libzip-1.3.2
./configure
make && make install

编译,安装

# -j: 启用两个任务
make && make install -j2

3. 配置PHP

# 复制ini文件
cp php.ini-production /usr/local/php7/etc/php.ini
# 配置fpm
cd /usr/src/php-7.0.0/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
# 启动服务
/etc/init.d/php-fpm start
# 添加环境变量
vim /etc/profile
# 在最后添加
export PATH=$PATH:/usr/local/php7/bin
# 立即生效
source /etc/profile
# 验证是否可以全局使用php命令
php -v
PHP 7.2.0 (cli) (built: Jan 16 2020 12:17:55) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies

删除文件后,不释放空间

因为文件是被打开的(有一个进程正在使用),被直接删除了文件。虽然文件被删除了,但是进程将仍然能够读取该文件,磁盘空间也一直被占用。所以若想清除被占用的文件,可以选择清空日志文件的方式:

echo > /data/server/xxx/log/log.log

通过以下命令查找哪些被删除的文件未释放空间

lsof |grep deleted

file
将这个服务重启一下即可。

修改jar包内配置文件

# 解压jar包到目录
jar xvf audit-creditscore-jl-1.4.2_20211028.jar
# 用 vi 命令 修改需要改的配置文件
# 把解压修改后的文件重新打成jar包即可
jar -cfM0 audit-creditscore-jl-1.4.2_1028.jar *

监控端口是否运行

监控端口是否允许,如果未运行则执行启动命令
使用方法:

创建定时任务

* * * * * sh /data/shell/monitor_port.sh 4875 "cd  /data/www/sinopia  && nohup sh start.sh &"

脚本后面后面跟了两个参数,分别是要监控的端口号、启动的命令

脚本内容

#!/bin/bash
# 检查参数数量是否正确
if [ $# -ne 2 ]; then
  echo "Usage: $0 <port> <start-command or service-name>"
  exit 1
fi
# 获取端口号和启动命令
PORT=$1
START_COMMAND=$2
# 定义日志目录和文件名
LOGDIR="/data/shell/log"
LOGFILE="${LOGDIR}/monitor_port-`date '+%Y%m%d'`.log"
# 检查日志目录是否存在,如果不存在则创建该目录
if [ ! -d "$LOGDIR" ]; then
  mkdir -p "$LOGDIR"
fi
# 定义日志函数,加上时间戳并输出到日志文件
log() {
  echo "[`date '+%Y-%m-%d %H:%M:%S'`] $1" >> $LOGFILE
}
# 检查端口是否在运行
if netstat -ntlp | grep -q ":$PORT "; then
  log "Port $PORT is running"
else
  # 端口未运行,启动服务
  log "Port $PORT is not running, starting $START_COMMAND"
  eval "$START_COMMAND"
fi
# 清理7天前的日志
find "$LOGDIR" -type f -name "monitor_port-*" -mtime +7 -exec rm -f {} \;

磁盘挂载

1. 查看磁盘情况:lsblk

可以看到sdb这个是个未挂载的新磁盘。且没有分区
file

2. 给磁盘分区

fdisk /dev/sdb

输入m可以获取帮助。通常输入n新建分区,输入p建立分区,其余默认。输入w保存
再次输入 lsblk 查看,可以看到sdb下面已经新建了sdb1分区。
file

3. 格式化分区:

mkfs.ext4 /dev/sdb1

4. 挂载分区

选择要挂载的目录(我这里用的data)

mount /dev/sdb1 /data (卸载分区umount /data)

5. 设置开机自启动

要设置挂载开机自启动,否则重启后需要手动挂载

vim /etc/fstab

file

ssh互信

前言

在日常的一些使用中,偶尔有不输入密码,直接通过ssh访问目标机器的需求。比如linux之间的rsync同步。本篇文章中具体阐述了linux服务器之间的ssh信任的配置。

实验目标

A服务器通过ssh访问B服务器,可无需输入密码,直接登陆。

配置步骤

在A服务器生成公钥

# 生成公私钥
ssh-keygen -t rsa

所有需要输入的地方直接按回车。所以公私钥文件都是在默认位置保存,且没有密码。存储公私钥的文件夹位置默认为~/.ssh/,文件名默认是id_rsa和id_rsa.pub

将公钥复制到B服务器

把id_rsa.pub里的内容复制到B机器的~/.ssh/authorized_keys(如果没有这个文件,新建一个)
注意:上面是一行字符,不能为多行。(可以用cat查看复制)

这样就建立了服务器B对服务器A的信任关系,即在服务器A用任何ssh相关的工具不需要输入登录密码就可以访问服务器B了。

案例演示

实现免密从A服务器访问B服务器的rsync用户

# 以下为在B服务器的执行操作
# root用户执行:
useradd -m rsync
# 切换到rsync用户
su - rsync
# 修改权限
mkdir ~/.ssh
chown rsync:rsync ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chown rsync:rsync ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 将A服务器的id_rsa.pub内容写入B服务器rsync用户下的authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys

这样就可以在A服务器ssh或者scp到B服务器了

# 免密ssh连接
ssh rsync@192.168.1.100
# 免密scp
scp /data/file.txt rsync@192.168.1.100:/data/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。