分类

Linux

Linux 2019-05-31

一个基于QT的多媒体播放器

这个播放器是大学时候做的毕业设计,使用qt+phonon实现,支持音视频播放,支持同步显示歌词。是无意中在电脑里翻出了这个项目的源码,然后在ubuntu机器中安装了下环境编译之后竟然能够成功运行,看着这个界面和源码真是感慨良多,转眼已经毕业好几年了,真的是物是人非。。。
为了不让它在电脑继续里吃灰,还是分享出来,希望可以帮到可以用到的人吧,下面大体介绍下编译方式。

安装方式:

以ubuntu为例:

安装依赖

sudo apt update
#安装qt环境:
sudo apt install qt4* -y
sudo apt install qtcreator -y
#安装phonon
sudo apt install build-essential phonon phonon-backend-gstreamer  phonon4qt5 phonon4qt5-backend-gstreamer -y
#安装解码器
sudo apt install ubuntu-restricted-extras -y

编译

终端进入项目目录,执行:

#生成Makrfile文件
qmake Player.pro
#编译
make
#运行
./Player

至此,你就可以看到启动界面了。

主界面:

启动界面: 主界面如下图:

同步显示歌词:

说明

phonon

因为phononqt...

13971 12
Linux 2018-09-18

使用Docker部署Ngrok实现内网穿透

以前写过一篇文章, ubuntu安装ngrok并使用nginx代理,介绍了在ubuntu上安装ngrok,但是是需要在系统中安装gvm等依赖,而且过程还是挺麻烦的,正好今天有时间,于是试着使用Docker来部署下,下面介绍下如何部署。

准备工作

域名解析

首先,需要在你的域名提供商处增加两条A记录解析到你的服务器,比如我的是 ngrok.lylinux.net*.ngrok.lylinux.net。这样你可以使用subdomain的方式,来实现穿透。

配置

目录结构如下图所示, 目录结构

可以看到,有必须的Dockerfile文件,build.sh是编译ngrok的脚本,config.yml是客户端使用的配置文件,下面分别介绍下。

Dockerfile

FROM golang:1.7.1-alpine
ADD build.sh /
RUN apk add --no-cache git make openssl
RUN git clone https://github.com/inconshreveable/ngrok.git --depth=1 /ngrok
RUN sh /build.sh
EXPOSE 8081
VOLUME [ "/ngrok" ]
CMD [ "/ngrok/bin/ngrokd"]

可以看到,我们是基于golang:1.7.1-alpine...

Linux 2018-08-27

openssl使用rsa加解密

生成公钥私钥

使用命令生成私钥:

openssl genrsa -out rsa_private_key.pem 1024  

参数:genrsa 生成密钥 -out 输出到文件 rsa_private_key.pem 文件名 1024 长度

从私钥中提取公钥:

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

参数: rsa 提取公钥 -in 从文件中读入 rsa_private_key.pem 文件名 -pubout 输出 -out 到文件 rsa_public_key.pem 文件名

shell加解密

新建一个decrypt.txt 内容是lylinux 使用公钥加密:

openssl rsautl -encrypt -in decrypt.txt -inkey rsa_public_key.pem -pubin -out encrypt.data

参数: rsautl 加解密 -encrypt 加密 -in 从文件输入 decrypt.txt 文件名 -inkey 输入的密钥 rsa_public_key.pem 上一步生成的公钥 -pubin 表名输入是公钥文件 -out输出到文件 encrypt.data 输出文件名 使用私...

Linux 2018-07-29

php无法连接mysql解决办法

前段时间把我的阿里云机器上面跑的服务修改成了docker部署,但是在升级了mysql容器之后发现另一个wordpress的站一直无法打开,提示无法连接数据库,这个很奇怪,只是升级了下mysql容器,用户名密码等都没有修改,为什么会无法连接呢? 打开了下wordpressdebug模式,发现如下错误信息:

Warning: mysqli_real_connect(): Unexpected server respose while doing caching_sha2 auth: 109 in /wordpress/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): MySQL server has gone away in /wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2006): MySQL server has gone away in /wordpress/wp-includes/wp-db.php on line 1531

网上查找了下资料才发现在mysql 8以后会出现这样的情况:

MySQL 8

When running a PHP version before 7.1.1...

Linux 2018-04-30

tmux 简介

以前只是听说过tmux的大名,但是一直没有用过,今天试用了下发现简直是神器,再也不用傻傻的开窗口了,一个窗口就可以搞定了。

Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效。而窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看,功能有点类似于screen。其他的功能还有: - 窗口切换,每个窗口里还可以分割面板 - 配置方便,可以使用脚本 - 类似 vim 的双层操作逻辑 - 复制粘贴缓冲区

安装的话也很简单,在 mac 下直接 brew install tmux(前提需要安装 homebrew),ubuntu 下则直接 sudo apt-get install tmux 在终端中输入tmux就可以打开一个新的 tmux session,tmux 的所有操作必须先使用一个前缀键(默认是 ctrl + b)进入命令模式,或者说进入控制台,就像 vim 中的 esc。

下面列出了一些常用的基本操作:

信息查询

  • tmux list-ke...
8488 0
Linux 2018-01-22

mysql修改root密码或者host后无法登陆解决办法

今天在树莓派上安装了mysql之后,发现无论输入密码是否正确,都会报错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在网上找了好久的解决办法,终于成功了,过程如下:

首先将my.ini中在[mysqld]节点上加

skip-grant-tables //主要作用是:跳过表中的验证,可以无密码登陆。

保存并重启mysql 然后直接终端使用mysql命令登录之后查询plugin字段值:

mysql> use mysql;
mysql> select plugin from user where user = 'root';

执行结果plugin字段为空。

更新plugin字段为mysql默认值:

mysql> update user set plugin='mysql_native_password';

更新成功,继续执行更新密码操作:

mysql> update user set authentication_string=password('123456') where user='root' and host='localhost';

刷新权限:

mysql> flush privileges;

将my.ini中的

sk...
发现更多