llber,编译php出错liblber-2.4.so.2: error adding symbols: DSO missing from command line

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol ‘ber_strdup@@OPENLDAP_2.4_2’
/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1

解决办法:

遇到这种类似的情况,说明「./configure 」沒抓好一些环境变数值。解决方法,来自老外的一篇文章:
在PHP源码目录下 vi Makefile 找到 EXTRA_LIBS 行,在行末添加 ‘ -llber ‘ 保存退出再次make即可。

驼峰命名

驼峰命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始;第二个单字的首字母大写或每一个单字的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

ubuntu16.04 任务栏不显示,桌面菜单右键无反应,无响应

linux系统的包依赖导致的副作用就是无意卸载一些小软件,这里是常用的gnmoe的软件

这次搜狗输入法出问题,折腾的过程中卸载了一些gnome的一些包,导致任务栏不显示,桌面右键菜单无法显示,总结如下
1、任务栏不显示,metacity gnome的窗口管理器
apt install metacity
metacity –replace #运行一下就OK
没窗口管理器:
开个程序
第一,在左上角
第二,没有边框
第三,不可挪动
第四,不可变形
第五,盖而无返
第六,……
2、gnome-tweak-tool Gnome Tweak Tool 是 Gnome 出品的配置工具,方便用户对 Gnome Shell 进行一些调整。
主要功能有:
安装,更改 Gnome-shell 主题
继续阅读

ubuntu搜狗拼音输入法升级后忽然不能用了,解决

其实很多都是配置文件导致的,一般都是~/.config/xxxx目录,xxx是应用名字,有可能大小写,搜索时注意

出错现象就是无法输入中文,有浮窗,出不来汉字,右上角输入法图标有时候也不能用,动不动不能启动。
日志中有:
viMar 16 14:26:11 yanjin-Lenovo-G500 kernel: [ 922.570008] sogou-qimpanel[4689]: segfault at 361500 ip 00000000004fbedb sp 00007ffde42edc70 error 4 in sogou-qimpanel[400000+1c5000]
Mar 16 14:26:15 yanjin-Lenovo-G500 kernel: [ 927.290693] sogou-qimpanel[4910]: segfault at 3613c0 ip 00000000004fbedb sp 00007ffdb6b09510 error 4 in sogou-qimpanel[400000+1c5000]
Mar 16 14:26:23 yanjin-Lenovo-G500 kernel: [ 935.102633] sogou-qimpanel[5015]: segfault at 36c9b0 ip 00000000004fbedb sp 00007ffdd57b3e40 error 4 in sogou-qimpanel[400000+1c5000]

解决Ubuntu 16.04 搜狗输入法 只有悬浮窗中文不能自动联想的问题
一直用得好好的,不知道下载了什么更新导致搜狗输入法,在输入中文的时候,只显示一个悬浮窗。打字的时候什么反应都没有。中文也联想不出来。
找了半天,重新安装fcitx/搜狗输入法N次无果,在网上论坛找到了答案,修复了这个问题,记录一下。
直接删除其配置文件:
rm -rf ~/.config/SogouPY* ~/.config/sogou*
然后直接在右上角点fcitx图标,下拉列表里面重启fcitx输入法

转:http://fiture.me/share/linux-ubuntu/1246.html

thinkphp5的crud基本操作理解

thinkphp的参数绑定:
Db::execute(‘insert into think_data (id, name ,status) values (?, ?, ?)’, [8, ‘thinkphp’, 1]);

thinkphp的占位符绑定:
Db::execute(‘insert into think_data (id, name , status) values (:id, :name, :status)’, [‘id’ => 10, ‘name’ => ‘thinkphp’, ‘status’ => 1]);

$result = Db::query(‘select * from think_data where id=:id’, [‘id’ => 10]);
dump($result);

thinkphp的查询构造器:
Db::table()和Db::name(),一个是完整的表名,一个是表前缀
$list = Db::name(‘data’)->where(‘id’,5)->select();

db助手函数默认会每次重新连接数据库,因此应当尽量避免多次调用。
$db = db(‘data’);
$db->insert([‘id’ => 3, ‘name’ => ‘thinkphp’]);
$list = $db->where(‘id’,20)->select();

链式操作做复杂查询:
$list = Db::name(‘data’)->where(‘status’,1)->field(‘id,name’)->order(‘id’,’desc’)->limit(10)->select();
dump($list);

全新途胜carlife的音乐格式

不想使用mp3,音质差
不支持其他无损格式,只能用wav

网上下载了一些ape格式的无损音乐文件,需要转化为wav,使用ffmpeg即可
ffmpeg -i music.ape music.wav

有些wav文件无法播放,全是电流声,但是用别的播放器是可以的,查看可能是声道问题,重新使用ffmpeg混音就可以
/usr/bin/ffmpeg -i /home/yanjin/music/wav/music.wav -af “pan=stereo|c0

搞定.

cacti,当udp不能用时,使用tcp的snmp监控服务器

国内网络环境复杂,udp往往不能用,可代用tcp,注意如下

添加设备的地方:
hostname tcp:ip 不是写ip,这里写tcp:192.168.0.xxx

snmp协议,通过修改/etc/sysconfig/snmpd文件,加入监听tcp端口
如:
# snmpd command line options
OPTIONS="tcp:1161 -LS0-6d -Lf /dev/null -p /var/run/snmpd.pid"

就可以了

thinkphp5中的pathinfo解析,nginx说明

nginx用正则拆分uri,官方的说明,很清楚!!!
thinkphp5必备!!!

Syntax: fastcgi_split_path_info regex;
Default: —
Context: location
Defines a regular expression that captures a value for the $fastcgi_path_info variable. The regular expression should have two captures: the first becomes a value of the $fastcgi_script_name variable, the second becomes a value of the $fastcgi_path_info variable. For example, with these settings

location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;

and the “/show.php/article/0001” request, the SCRIPT_FILENAME parameter will be equal to “/path/to/php/show.php”, and the PATH_INFO parameter will be equal to “/article/0001”.

模板文件中用的多,如page.tpl.php

流程控制的替代语法

(PHP 4, PHP 5, PHP 7)

PHP 提供了一些流程控制的替代语法,包括 ifwhileforforeachswitch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;endwhile;endfor;endforeach; 以及 endswitch;

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

在上面的例子中,HTML 内容“A is equal to 5”用替代语法嵌套在 if 语句中。该 HTML 的内容仅在 $a 等于 5 时显示。

__METHOD__,__FUNCTION__

本文实例讲述了PHP中魔术变量__METHOD__与__FUNCTION__的区别,分享给大家供大家参考。具体分析如下:
__METHOD__类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__FUNCTION__函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
文档解释都是说返回函数(方法)的名字。区别在于:
__FUNCTION__只是返回方法的名字;

__METHOD__返回类的名字和方法的名字。

<?php
      class Test{
        public function doit(){
          echo __FUNCTION__;
        }
        public function doitAgain(){
          echo __METHOD__;
        }
      }
      $obj = new Test();
      $obj->doit();
      echo '<br>';
      $obj->doitAgain();
?>

输出结果为:
doit
Test::doitAgain