php编译安装oci8 pdo_oci扩展
系统环境:centos7.8 + php7.4 + thinkphp6 + oracle 11g
注意:使用独立下载的扩展容易引起部分错误信息,不建议使用。推荐使用对应php版本中的ext扩展直接编译安装。
【安装oracle客户端】
下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
系统环境:centos7.8 + php7.4 + thinkphp6 + oracle 11g
注意:使用独立下载的扩展容易引起部分错误信息,不建议使用。推荐使用对应php版本中的ext扩展直接编译安装。
【安装oracle客户端】
下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
项目中通过phpoffice(v0.17)生成word文件,插入word的图片默认带黑边框问题。
解决方式:
路径:vendor/phpoffice/phpword/src/PhpWord/TemplateProcess.php
位置:578行 stroked=""$imgTpl = '<w:pict><v:shape type="#_x0000_t75" style="width:{WIDTH};height:{HEIGHT};" stroked=""><v:imagedata r:id="{RID}" o:title=""/></v:shape></w:pict>';
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。
composer -v 查看版本
推荐使用阿里云全量镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如仅当前项目使用则可去除-g选项。
取消配置:composer config -g --unset repos.packagist
windows下备份mysql数据库脚本,可添加到计划任务中实现定时自动备份。默认存储位置为d:\backup(注:为避免中文乱码,请使用ANSI保存)
@echo off
:begin
rem 接收信息
set input=
set /p input=请输入数据库名称:
if "%input%" == "" (
goto begin
)
echo "正在备份 %input%"
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set date=%yyyy%%mm%%dd%
set time=%hh%%mn%%ss%
set filename=%date%_%time%
::设置备份目录
set label=d:\
set backDir=backup\
set pwd=123456
if exist %label%%backDir% (
::echo 目录%label%%backDir%已存在,无需创建
) else (
echo 创建%label%%backDir%
md %label%%backDir%
)
::主要为当前正在开发的数据备份,已上线系统优先依据线上系统数据库
"E:\wamp\bin\mysql\mysql5.7.31\bin\mysqldump">mysqldump --opt -P3306 -u root --password=%pwd% --databases %input% --single-transaction >%label%%backDir%%input%_%filename%.sql
:: more...
echo "完成备份 %input%"
goto begin
check_file_size.sh
#!/bin/bash
#---------------------------------------
# 检测文件大小
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
read -p "Tips! Enter fileName (like 'app/index/controller/Index.php') to continue : " input
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for f in ${sysDir}
do
/bin/ls -l ${dir}${f}/${input} | awk '{print $5}'
echo ${f}
done
check_mysql_field_exist.sh
#!/bin/bash
#---------------------------------------
# 检测数据库是否存在指定字段 变量1:表名 变量2:字段名
# 注:数据库名同文件夹名
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
if [ "$1" ] && [ "$2" ]; then
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#连接数据库
db_con="/usr/local/mysql/bin/mysql -uxxx -pxxx"
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for db in ${sysDir}
do
${db_con} -e "select count(*) from information_schema.columns where table_schema = '${db}' and table_name = '${1}' and column_name = '${2}';" >> /web/shell/check_mysql_field_exist.txt
echo ${db} " done" >> /web/shell/check_mysql_field_exist.txt
done
else
echo "Error: param is empty"
fi rewrite_file.sh
#!/bin/bash
#---------------------------------------
# 替换指定文件
# 注:参数1为新文件路径 参数2为原文件路径
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
if [ "$1" ] && [ "$2" ]; then
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for f in ${sysDir}
do
cp -rf ${1} ${dir}${f}/${2}
echo ${f} " done"
done
else
echo "Error: param is empty"
fi task.sh
#!/bin/bash
#---------------------------------------
# 批量启动、停止 task [考虑性能,此接口不再使用]
# author: SenSen 1050575278
# date: 2021/10/07
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#判断是否存在参数,不存在则取消
if [ "$1" == 'start' ] || [ "$1" == 'stop' ]; then
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
#排除目录
excluded=()
for f in ${sysDir}
do
#排除指定目录
if [[ ${excluded[@]/${f}/} != ${excluded[@]} ]]; then
continue
fi
#进入目录
cd ${dir}${f}
#执行对应操作
#/usr/bin/php think task $1
sleep 1
echo "${curtime} ${f} done"
done
else
echo "Error: param is empty"
fi