echo shell_exec(/usr/bin/ffmpeg 2>&1);
文件名最好带上相对或者绝对目录,这样可以避免文件名错误
比如文件名不能以 “-” 开头
ffmpeg 出现 /opt/lampp/lib/libstdc++.so.6mv /opt/lampp/lib/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6.orig
ffmpeg 出现 /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Get_Var_Design_Coordi
mv /opt/lampp/lib/libfreetype.so.6 /opt/lampp/lib/libfreetype.so.6.bakmv /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.bakapt install libcairo2-dev -yapt install libgirepository1.0-dev -y
给脚本增加 sudo 权限visudo
www-data ALL=(ALL) NOPASSWD: /path/to/shell.sh
我在安装Manjaro后无法连接罗技的鼠标。显示全部
自问自答。 目前中文网络上都是推荐使用 Solaar。然而我安装之后仍然无法连接鼠标(包括重启、输入命令刷新配置等操作),如果有人遇到了和我一样的问题,请参考 StackExchange 中的内容。我简单的转述如下:
如果你手边有Windows系统,那么在其中安装Logitech Unifying Software 和 Logitech Mouse software两个软件,在Windows中配对鼠标和优联接收器。然后将这个优联接收器接入Linux系统就可以直接使用。
我采用了这个办法,不需要额外安装软件,成功的使用Unifying接收器连接了罗技的无线鼠标。
发布于 2020-10-10 14:22
下载地址:https://github.com/MicrosoftArchive/redis/releases 这个太慢了
https://github.com/ServiceStack/redis-windows 安装过程:
临时服务安装:也就是网上说的 不能关闭窗口,再另打开一个窗口 1.打开cmd窗口,使用 cd 命令切换目录到 当前解压的redis文件路径运行,(如果想方便的话,可以设置环境变量,就不用切换目录了)
2.启动临时服务:redis-server.exe redis.windows.conf,如果出现一个方形图标,安装临时服务成功。可以只写redis-server
3.因为是临时服务,所以不要关闭窗口。此窗口关闭,临时服务会自动关闭
4.启动客户端:另启一个 cmd 窗口,切换到 redis 目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379 可以只写redis-cli
或者:打开文件夹下redis-cli.exe执行文件,进入客户端Dos窗口
默认不能正常显示中文
运行:redis-cli --raw 启动客户端,且可以正常显示中文
默认服务安装: 1.打开一个 cmd 窗口 使用 cd 命令切换目录到 redis所在路径下 运行:
2.敲入命令注册服务:redis-server.exe --service-install redis.windows.conf 注意:一定要把临时服务关闭(就是把窗口关掉),否则安装不上
3.卸载服务:redis-server --service-uninstall 开启服务:redis-server --service-start 停止服务:redis-server --service-stop
--基本查询语句select * from Studentselect * from SCselect * from Course--建立索引--为学生-课程数据库中的Student,Course,SC三个表建立索引.Student表按学号升序建立唯一索引,Course表按课程号升序建立为一索引--升序是默认的可以不加 降序得添加DescCreate Unique index Stusno ON Student(Sno);Create Unique Index Coucno ON Course(Cno);Create Unique Index SCno ON SC(Sno ASC, Cno Desc);--查看已经建立的索引exec sp_help Studentexec sp_help Courseexec sp_help SC--删除SC表上的SCno索引Drop index SC.SCno--表名称.索引名--数据语句--只要是查询都是Select关键字开头--查询全体学生的学号与姓名Select Sno, Sname From Student;--查询全体学生的姓名、学号、所在系Select Sname, Sno, Sdept From Student;--查询学生表中的所有的列Select * from student--查询全体学生的姓名及其出生年份Select Sname, 2022-Sage AS '出生年份' from Student --出生年份可以不用引号--查询全体学生的姓名、出生年份和所在院系,要求用小写字母表示系名Select Sname, '出生年份', 2022-Sage, Lower(Sdept) From Student--Lower 变为小写 Uper 变为大写--如何使用获取年份的函数来计算学生的出生年份,完善上述的查询语句Select Sname, year(getdate())-Sage 书生年份 From Student--获取当前年份的函数year(getdate())--计算1到10的累加和并表示出来Select 1+2+3+4+5+6+7+8+9+10 As [1到10的累加和]--查询选修了课程的学生学号Select Sno From SC--去掉重复结果Select Distinct SnoFrom SC;--查询计算机系全体学生名单Select Sname From Student Where Sdeot = '计算机系'--'='等于比较运算符--查询所有年龄在20岁以下的学生姓名及其年龄Select Sname, Sage From Student Where Sage <20--查询考试成绩有不及格的学生的学号Select Sno From SC Where grade < 60 --查询年龄在20~30岁(包括20、30)之间的学生的姓名性别和年龄Select Sname, Sdept, Sage From StudentWhere Sage Between 20 and 30;--查询年龄在20~30岁(包括(20.
Select * from studentSelect Sname from studentSelect * From student where ssex = '男'select * from sc where grade is not null order by grade descselect count(*) from courseselect max(grade) from scselect ssex, count(*) 人数 from student group by ssex--连接查询:涉及两个以上的表的查询--等值连接:连接运算符为=Select Student.*,SC.* From Student,SC Where Student.Sno = SC.Sno--发现Sno列是重复的--将上述连接改为自然链接完成Select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade From Student,SC Where Student.Sno = SC.Sno--如果有相同列的话一定要指定相同列是属于哪一列--一条Sql语句可以同时完成选择和连接查询,这是Where子句有连接谓词和选择谓词组成的复合条件--查询选修C02课程好且成绩在75分以上的所有学生的学号和姓名Select Student.Sno, Sname From Student,SC Where Student.Sno = Sc.Sno and Cno = 'c02' and Sc.Grade > 75;--由于课程号和成绩都是Course表中的所以上句中的Cno和grade不需要添加所属--自身连接/*查询每一门课*/Select * From CourseSelect * From CourseSelect first.
/*注意数据库是不是本数据库!!!!!!!!*/--查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄Select Sname, Sage From Student Where Sage < any (Select Sage From Student Where Sdept = '计算机系')and Sdept <>'计算机系'Select * From StudentSelect Sname, Sage From Student Where Sage <(Select max(Sage) From Student Where Sdept = '计算机系')and Sdept <>'计算机系'--查询非计算机系中比计算机系所有学生年龄都晓得学生姓名及年龄Select Sname, Sage From Student Where Sage < all(Select Sage From Student Where Sdept = '计算机系')and sdept<>'计算机系'Select * From Student--查询所有选修了c01号课程的学生姓名--本次查询涉及两个表Select Sname From Student Where Exists(Select *From SC Where Sno = Student.Sno and Cno = 'C01');--查询没有选修1号课程的学生姓名Select Sname From Student Where Not Exists(Select * From SC Where Sno = Student.
简介 swoole的进程模型简单理解就是当启动一个服务时swoole是怎么处理的,怎么做到数据的收发处理
案例 从网上找了一段非常常见的代码
<?php class Server { private $serv; public function __construct() { $this->serv = new swoole_server(0.0.0.0, 9502); $this->serv->set([ 'worker_num' => 3, 'task_worker_num' => 3, ]); $this->serv->on('Start', function ($serv) { echo SWOOLE:.SWOOLE_VERSION . 服务已启动.PHP_EOL; echo SWOOLE_CPU_NUM:.swoole_cpu_num().PHP_EOL; }); $this->serv->on('Receive', function ($serv, $fd, $from_id, $data) { }); $this->serv->on('Task', function ($serv, $task) { }); $this->serv->on('Finish', function ($serv, $task_id, $data) {}); $this->serv->start(); } } $server = new Server(); 环境说明 OS: Mac PHP:73 运行cli命令启动服务 启动完毕之后,查看启动的进程数据
1. 哨兵的作用与原理 1.1 哨兵的作用 1.2 服务状态监控 1.3 选举新的master 1.4 实现故障转移 1.5 小结 Sentinel的三个作用是什么? 监控 故障转移 通知 Sentinel如何判断一个redis实例是否健康? 每隔1秒发送一次ping命令,如果超过一定时间没有相向则认为是主观下线 如果大多数sentinel都认为实例主观下线,则判定服务下线 故障转移步骤有哪些? 首先选定一个slave作为新的master,执行slaveof no one 然后让所有节点都执行slaveof 新master 修改故障节点配置,添加slaveof 新master 2. 搭建哨兵集群 2.1 集群结构 这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。如图: 三个sentinel实例信息如下:
节点 IP PORT s1 10.193.193.141 27001 s2 10.193.193.141 27002 s3 10.
必须输入特定字符才可解除关机计划
将以下代码保存为.vbs文件双击即可执行
on error resume next dim WSHshellA set WSHshellA = wscript.createobject(wscript.shell) WSHshellA.run cmd.exe /c shutdown -r -t 180 -c 叫我大哥,快!不叫就让你电脑关机!不信你试试... ,0 ,true dim a do while(a <> 大哥) a = inputbox (叫我大哥,就不关机,快说吧 大哥 ,说不说,,8000,7000) msgbox chr(13) + chr(13) + chr(13) + a,0,MsgBox loop msgbox chr(13) + chr(13) + chr(13) + 早说就行了嘛 dim WSHshell set WSHshell = wscript.createobject(wscript.shell) WSHshell.run cmd.exe /c shutdown -a,0 ,true msgbox chr(13) + chr(13) + chr(13) + 哈哈哈哈,好乖
一、安装openssl
官网:https://www.openssl.org/source/
安装路径:
cd /usr/wubin
mkdir -p php8.0/openssl3.0
mkdir -p php8.0/php
解压:
tar zxvf openssl-3.0.2.tar.gz
cd openssl-3.0.2
./config --prefix=/usr/wubin/php8.0/openssl3.0 shared zlib-dynamic
编译:
make;
安装:
make install;
验证:
openssl version
显示版本,即安装成功;
二、安装php
官网:https://www.php.net/downloads.php
安装路径:
cd /usr/wubin/php8.0
解压:
tar zxvf php-8.0.18.tar.gz
cd php-8.0.18
安装依赖包:
sudo apt-get install pkg-configsudo apt install libxml2-devsudo apt-get install libsqlite3-dev
编译:
./configure --prefix=/usr/wubin/php8.0/php --with-config-file-path=/usr/wubin/php8.0/php/php/etc --enable-debug --enable-fpm --with-fpm-user=root --with-fpm-group=root--with-iconv-dir --with-freetype-dir=/usr/wubin/php8.0/php/freetype --with-mcrypt --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-opcache --with-xsl