宝塔面板PHP7.2安装Oracle扩展,TP5连接Oracle数据库

第一部分 宝塔面板PHP7.2安装Oracle扩展

1.安装InstantClient

下载打包好的文件,或者到官网下载。(注意要下载basic和devel,用来编译oci和pdo_oci。我这里下载的是rpm,方便安装。我这里下载的是18.3)

将下载的文件放在/usr/lib/oracle/,然后运行命令安装.
rpm -ivh /usr/lib/oracle/oracle-instantclient18.3-*

然后打开 /etc/profile
vi /etc/profile

在文件底部增加(注意版本和文件路径)

export ORACLE_HOME=/usr/lib/oracle/18.3/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/18.3/client64/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/include/oracle/18.3/client64
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

添加后的样子

保存后在终端运行  source /etc/profile,让环境变量立即生效。

2.安装OCI8

这里要注意先将php7.1的配置项【禁用函数】中删除popen、readlink两个函数。然后终端中运行

pecl channel-update pecl.php.net

/www/server/php/72/bin/pecl install oci8-2.2.0 --with-php-config=/www/server/php/72/bin/php-config

# 执行过程中可能让输入,输入下
shared,instantclient,/usr/lib/oracle/18.3/client64/lib --with-php-config=/www/server/php/72/bin/php-config

3.安装PDO_OCI

因为版本问题不能使用pecl安装pdo_oci,所以自己编译。

下载php源码。将源码包中的压缩包中的ext/pdo_oci文件夹上传到/www/server/php/72/include/php/ext/。

然后将php.ini配置文件中[oci8]下面的oci8.privileged_connect,前面分号去掉,Off修改为On,后面的配置项自己依据实际情况去配置。然后保存重启或重载php服务。

然后终端运行

cd /www/server/php/72/include/php/ext/pdo_oci
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/18.3/client64/lib
make && make install

4.PHP-FPM配置

编辑/www/server/php/72/etc/php-fpm.conf,将下面两行代码加进去。

env[LD_LIBRARY_PATH] = /usr/lib/oracle/18.3/client64/lib
env[ORACLE_HOME] = /usr/lib/oracle/18.3/client64/lib

运行成功后,再到php.ini文件中检查是否有两个so,没有的话要记得添加。

#/www/server/php/72/etc/php.ini
extension="oci8.so"
extension="pdo_oci.so"

第二部分 TP5连接oracle(本来需要装东西,但是这里突然直接好使了??不管了)

database局部配置

	// 数据库类型
    'type'            => 'oracle',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'ORCL',
    // 用户名
    'username'        => 'TEST',
    // 密码
    'password'        => 'test',
    // 端口
    'hostport'        => '1521',

原文链接:https://blog.csdn.net/pmlptf/article/details/126668688

Angular学习记录

// 安装脚手架
npm install -g angular-cli
// 新建Angualr项目
ng new angualrDemo --skip-install
注:如果按照官网的教程只用输入 ng new 项目名 即可,但是这种情况下它会默认使用npm帮我们创建项目并且安装各种依赖,非常耗时间,所以我们后面加上-- skip-install跳过安装依赖的过程.
启动项目
ng serve 默认启动在端口4200
ng serve – open,启动并打开浏览器
ng serve --port 端口
// 终结

Linux中jdk的安装与卸载,及多版本jdk配置(宝塔面板)

一、卸载

1、获取当前已安装版本
rpm -qa | grep jdk
2、卸载不需要的版本(jdk名字得是上边查出来的全称,复制粘贴就行)
rpm -e --nodeps jdk1.8.0_121

二、单版本安装

1、官网下载tar.gz后缀的安装包 https://www.oracle.com/java/technologies/downloads/#java11

2、新建一个jdk文件夹,用宝塔面板把安装包上传到这个文件夹里,并且解压

3、执行命令进入配置文件:

vim /etc/profile

执行后如下图,输入E进入编辑模式,

复制如下代码到文件末尾,把JAVA_HOME的路径改成自己的jdk文件夹路径,java名字也改了

export JAVA_HOME=/www/jdk/jdk-11.0.18
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

插入后这样

4、保存并退出编辑,重新加载系统配置文件,这样可以使配置立即生效,不用重启

source /etc/profile

5、检查新安装的jdk

java -version

6、将jdk地址添加进宝塔JDK管理

原文链接:https://blog.csdn.net/cs_zhao18/article/details/126473295

服务器宝塔安装Jenkins

一、Jenkins包下载

大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。
但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站(https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/),大家可以根据自己的需要下载对应版本的war包

二、新建java项目 运行war包

1.不要太任意的位置新建jenkins文件夹,将下载的jenkins.war文件上传

2.这里两个坑,一个是宝塔默认生成的启动命令后是server.port=7377 ,要改成 –httpPort=7377

3.第二个项目用户要调成root,否则后面执行脚本会权限不足(这个耽误了很久,尝试给springboot权限失败了,这里只能选root避免权限不足)

这里要安装jdk11,需要安装参考另一个教程

/usr/local/btjdk/jdk-17.0.4.1/bin/java -jar -Xmx1024M -Xms256M  /www/wwwroot/jks/jenkins.war --httpPort=7377

启动命令讲解
/usr/local/btjdk/jdk-17.0.4.1/bin/java JDK 的路径
-Xmx1024M -Xms256M 限制最大内存为1024M 最小内存256M
--server.port=8656(jenkins 不支持server.port改用httpPort) 启动的端口

三 、运行Jenkins,启动后到日志查看解锁密码下一步会用到

四、输入ip:端口进行访问,访问不通记得查看宝塔是否放行端口

设置全跳过了,直接开始使用

原文链接:https://blog.csdn.net/yzding1225/article/details/127548016

Jenkins中文设置https://blog.csdn.net/zh__quan/article/details/106230100

jenkins配置Git源码管理https://blog.csdn.net/weixin_43507959/article/details/102689513

五创建一个新项目

如果没有maven选项,先安装插件,参考:https://www.likecs.com/show-203813628.html

记得去全局工具里安装maven版本否则下面运行会报错

输入项目名字,选择maven项目

Git项目输入git地址 https的

这里参考https://blog.csdn.net/weixin_43507959/article/details/102689513

参考https://gitee.com/help/articles/4181#article-header0

运行,要么就是maven报错,上面有解决办法,要么就是java报错,解决办法:https://blog.csdn.net/qq_35663625/article/details/123180907

1、根据报错去jenkins机器查看目录(/data/jenkins/workspace/test-zhanjian-super-web)是否存在,上去看该目录存在,原因一可排除

2、通过百度有博客说是jenkins机器的java没有配置环境变量
上jenkins机器查看java环境变量也配置了
最后网上建议做一个软链接,jenkins会自动去bin目录下查找java可执行文件,最终问题解决(具体原因还不知道)
# ln -s /www/jdk/jdk-11.0.18/bin/java /usr/local/bin/java 

顺利的话这里将会下载文件了

添加后执行的脚本文件

java -version
cd ../
# maven 项目名字 
# demo-0.0.1-SNAPSHOT.jar 项目打包后的jar包名字
sh start.sh maven demo-0.0.1-SNAPSHOT.jar

并且将 start.sh脚本放在 jenkins目录 .jenkins/workspace 下

#!/bin/bash

pathName=$1 # 项目名(项目目录名)
project=$2 # jar包名字(target下的jar包名字)

if [ "$pathName" = "" ];
then
    echo -e "\033[0;31m 未输入项目名 \033[0m"
    exit 1
fi
if [ "$project" = "" ];
then
    echo -e "\033[0;31m 未输入jar包名字 \033[0m  \033[0;34m target下的jar包名字 \033[0m"
    exit 1
fi

# 创建java项目目录
mkdir -p /www/javaroot/$pathName
# chmod 777 /www/javaroot/$pathName

# 删除文件
rm -rf /www/javaroot/$pathName/$project
echo "拷贝文件"
cp  ./$pathName/target/$project /www/javaroot/$pathName/
echo "切换路径"
cd /www/javaroot/$pathName/
# 解决jenkins自动杀掉衍生进程
BUILD_ID=dontKillMe

# 查询是否有已经存在的进程 
#grep -v start.sh 是排除这个sh进程,否则会同时把本进程杀死  start.sh是进程名
pid=`ps -ef | grep demo-0.0.1-SNAPSHOT.jar | grep -v grep | grep -v start.sh | awk '{print $2}'`
echo "已存在的进程pid"+$pid
if [ -n "$pid" ]
then
   kill -9 $pid
   echo "杀死存在进程"
fi

echo "启动项目"
nohup java -jar $project --spring.profiles.active=dev >/dev/null 2>&1 &
date #打印时间
echo "启动成功!"

出现这个界面说明已经运行成功

宝塔面板使用WebHook配合gogs搭建钩子 Git push上传自动推送到服务器

第一步宝塔软件商店安装webhook

第二步 点击webhook设置添加脚本

脚本内容

#!/bin/bash

echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "开始"
#判断宝塔WebHook参数是否存在
if [ ! -n "china" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"

#git 网址
gitHttp="git@gitee.com:tyaa/test-hook.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp .
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End1"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End2"
exit
fi 

文件夹最好是空的

git命令操作

// 更新到远程仓库
$ git add .    //指定更新内容    . 表示全部更新,test.txt 表示更新指定文件
$ git commit -m "一些注释说明"     //添加更新说明
$ git push origin master            //执行更新操作

// 从远程仓库同步最新版本到本地
$ git pull origin master

// 克隆
$ git clone https://gitee.com/yourname/repository

// 本地初始化
$ git init //初始化本地项目
$ git remote add origin <远程仓库地址> //绑定远程仓库
#注:地址形式为 https://gitee.com/yourname/test.git 或 git@gitee.com:yourname/test.git

//查看所在目录的分支
git branch -a
//输入命令切换分支
适用于第一次创建并切换分支
$ git checkout -b develop origin/develop
// 其中远程分支为origin/develop,本地分支为zhanghanlun
如果已经有本地分支,直接输入命令
$git checkout develop

// 强制推送,注意会强制删除原有仓库中的某些代码
$git push -u origin master -f
// 如果本地版本与远程版本有差异,但又要强制推送,使用 --force 参数:
git push --force origin master

git 本地改动了,不保留,直接拉取线上最新代码
git fetch --all  
git reset --hard origin/master