鼠标可以正常连接上电脑,且可以移动点击,但是不能滚动。此时我们需要先安装windows的MagicMouse2的驱动程序了。

下载地址如下:

http://semantic.gs/applewirelessmouse_driver_v2_download

或百度云:

链接:https://pan.baidu.com/s/1ugcPuGekYbgU2DM-iH0ksg 密码:77od

安装完上述驱动即可正常使用。

另附解决鼠标滚动访问问题,习惯了mac滚动方向的同学可能需要

1.打开控制面板的设备和打印机

2.选择你的鼠标右键属性

3.选中如图选项,获得注册列表的实际路径

4.打开注册列表并展开如下路径

win+r,输入regedit

Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID\{00001124-0000-1000-8000-00805f9b34fb}_VID&0001004c_PID&0269\8&25e50674&0&0000\Device Parameters

红色段即第3步中获得的设备实际路径

5.调整如图两值即可

1.编写脚本

#nginx  日志切割 
#autor  John Liu 
#create 2016-02-04 
#!/bin/bash 
#日志路径
log_path="/usr/local/nginx/logs/"
#nginx pid
pid_path="/usr/local/nginx/logs/nginx.pid"
#执行命令
mv ${log_path}access.log ${log_path}access_$(date --date='1 day ago' +%Y%m%d).log 
#发出信号,让nginx重新打开日志
kill -USR1 `cat ${pid_path}`

保存为:/crontab/nginx_log.h

  1. 建立定时任务 Crontab 即可
    crontab -e
    0 0 * * * /crontab/nginx_log.h

完成操作了,定时任务会在每天晚上的0点0分的时候执行该脚本,

一、下载Coreseek源码包且解压

    :~$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
    :~$ tar zxf coreseek-3.2.14.tar.gz

二、编译和问题解决

    :~$ cd coreseek-3.2.14
    :~$ sudo apt-get install make gcc g++ automake libtool mysql-client libmysqlclient-dev   libxml2-dev
    :~$ cd mmseg-3.2.14/
    :~$ ./bootstrap
    :~$ ./configure --prefix=/opt/mmseg
    :~$ make
    :~$ make install
    ---以上是安装mmseg的步骤,下面安装Coreseek---
    :~$ cd ../csft-3.2.14/
    :~$ ./configure --prefix=/opt/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/opt/mmseg/include/mmseg/ --with-mmseg-libs=/opt/mmseg/lib/ --with-mysql --with-mysql-includes=/usr/include/mysql
    :~$ make
    ---如果在make命令中提示多个 “error: ‘ExprEval’ was not declared”,解决方法见“链接1”---
    :~$ make install

链接1:http://blog.csdn.net/u013815844/article/details/50832279 解决ExprEval was not declared 问题

链接2: http://www.phperz.com/article/14/0925/25654.html Coreseek常见问题

本文使用系统Ubuntu 15 , 安装Coreseek时出现ExprEval变量不存在的问题。寻找很久的解决办法,最后通过打补丁的方法来解决,现在跟大家分享一下。

命令详情:

:~$ unzip sphinxexpr.cpp_.patch_.zip
    //Archive:  sphinxexpr.cpp_.patch_.zip
     //inflating: sphinxexpr.cpp-csft-3.2.13.patch   ## 这个针对 coreseek-3.2.13/3.2.14
     //inflating: sphinxexpr.cpp-csft-4.1-beta.patch ## 这个针对 coreseek-4.1
:~$ mv sphinxexpr.cpp-csft-3.2.13.patch /home/download/coreseek/src/
:~$ patch -p1 < sphinxexpr.cpp-csft-3.2.13.patch
    #提示 File to patch: 输入你需要打补丁的文件的全路径 如:/home/download/coreseek/src/sphinxexpr.cpp

完成以上步骤后执行:make cleanmakemake install

Coreseek 补丁文件:
链接: http://pan.baidu.com/s/1eRieRsQ 密码: zjmb

指定两个字符串,通过程序的判断两个字符串是否互为变型词。

    $str = 'abcd';
    $compare_str = 'cdab';
    compare_func($str,$compare_str); //此时返回true
    //或
    $str = '123a';
    $str = '123';
    compare_func($str,$compare_str); //此时返回false

解题思路:

  • 如果两个字串是互为变型词,那么字串长度是一致的。
  • 遍历第一个字串的每个字符获取其Ascii做下标,统计出现次数,存入Ascii数组。再遍历第二个字串中每个字符的Ascii做下标,直接从Ascii数组中减去出现次数即可。
function compare_func($str,$compare_str)
{
    $strl = strlen($str);
    $compare_strl = strlen($compare_str);
    // 若两个字串的长度等于零或不一致返回false
    if ($strl + $compare_strl === 0 || $strl !== $compare_strl)
        return false;
    // 存储出现过的字符
    $ascii = [];
    for ($i = 0;$i < $strl;$i++) {
        // 以每个字符的Ascii码作为下标
        $ascii[ord($str[$i])] ++;
    }
    for ($i = 0;$i < $strl;$i++) {
        // 这里如果已经等于零了,再自减必然为负数,那么直接返回false
        if ( $ascii[ord($compare_str[$i])] -- == 0 ){
            return false;
        }
    }
    return true;
}

一、安装Redis和简单配置

1. 下载Redis安装包

  • 地址:http://redis.io/download , 本文选择Stable(3.0)版本
wget http://download.redis.io/releases/redis-3.0.5.tar.gz

2. 安装Redis

tar xzf redis-3.0.5.tar.gz
cd redis-3.0.5
make

3. 启动Redis

./src/redis-server &

附加内容 :

  • Redis默认不是后台启动,不加 “&” 时会一直停留在命令界面
  • 最好搭配配置文件一起启动例如:
./src/redis-server ./redis.conf
  • redis.conf中设置 “daemonize no” 为 “daemonize yes” 也代表redis以后台的方式启动,前提时redis-server启动时带上redis.conf

二、安装phpredis扩展

1. 下载phpredis扩展安装包

wget http://pecl.php.net/get/redis-2.2.7.tgz , 本文选择2.2.7版本

2. 安装phpredis

tar zxvf redis-2.2.7.tgz
cd redis-2.2.7
/opt/server/php-5.5.7/bin/phpize
./configure
make
make install
  • 以上步骤完成后需要在php.ini中添加如下代码:
extension=/opt/server/php-5.5.7/lib/php/extensions/no-debug-non-zts-20121212/redis.so

3.重启web组件(本文使用Nginx + php5-fpm)

/opt/server/nginx/sbin/nginx -s reload
kill -USR2 `cat /opt/server/php-5.5.7/var/run/php-fpm.pid`

三、配置Yii2的redis扩展(本文使用Yii2 basic 版)

  • 官方提供的文档地址:https://github.com/yiisoft/yii2-redis/blob/master/docs/guide/README.md

1. 安装Yii2的redis扩展

cd /www/html/basic
php composer.phar require --prefer-dist yiisoft/yii2-redis

2. 配置basic/config/web.php

在components数组中添加如下内容:

'redis' => [
    'class' => 'yii\redis\Connection',
    'hostname' => 'localhost',
    'port' => 6379,
    'database' => 0,
],

3. 使用

$redis = Yii::$app->redis;
$redis->get('key');
$redis->set('k','v');

附加(一些报错解决)

basic/vendor/yiisoft/yii2-redis/Connection.php文件的源码中265行开始(因实际而定)

  • 变量 errorNumber 、errorDescription ,没提前定义Yii2 一直报undefined
  • “@”把报错屏蔽了,一直查不到原因,删掉”@”才发现stream_socket_client、stream_socket_server()这两个函数禁用了

更改前

$this->_socket = @stream_socket_client( 
            $this->unixSocket ? 'unix://' . $this->unixSocket : 'tcp://' . $this->hostname . ':' . $this->port,
            $errorNumber,      
            $errorDescription,
            $this->connectionTimeout ? $this->connectionTimeout : ini_get("default_socket_timeout")
);

更改后

//也可以不定义这两个变量,通常项目都会忽略notice报错,视实际情况而定
$errorNumber = '';
$errorDescription = '';
//----如果报错:Warning:stream_socket_server() has been disabled for security reasons... 请看下面解决方法
//----这里"@" ↓↓↓ 把报错屏蔽了,需要删除"@"才能看见上面的报错,
$this->_socket = stream_socket_client( 
            $this->unixSocket ? 'unix://' . $this->unixSocket : 'tcp://' . $this->hostname . ':' . $this->port,
            $errorNumber,      //----这两个变量没有提前定义一直报undefined
            $errorDescription, //----这两个变量没有提前定义一值报undefined
            $this->connectionTimeout ? $this->connectionTimeout : ini_get("default_socket_timeout")
);

解决方法:编辑php.ini把disable_functions=…中找到stream_socket_server()、stream_socket_client删除并保存,重启web组件即可

FireFox的步骤如下:

1.首先下载Flashplayer

    a.从这里获取最新的安装包:https://get.adobe.com/cn/flashplayer/

    b.在选择要下载的版本的下拉列表中,选择 “.tar.gz,适用于其它 Linux” 选项,点击立即下载即可

2.解压下载后的安装包

   a.例如:tar -zxvf install_flash_player_11_linux.x86_64.tar.gz   ,解压后,当前目录会产生:LGPL(文件夹)/ libflashplayer.so /readme.txt/ usr

3.安装FlashPlayer

   a.查看官方文档readme.txt(培养看文档的习惯),里面有安装方法,直接跳过前面看30行左右:Installation instructions开始

      b.根据官方文档安装说明, 把 libflashplayer.so 添加到浏览器插件目录 并且把 usr文件 复制到系统的/usr 中

         (1). 例如:sudo cp libflashplayer.so /usr/lib/firefox/browser/plugins/  目标目录按实际情况而定,本文使用的Firefox浏览器

         (2). 例如:sudo cp -r usr/* /usr

4. 重启Firefox浏览器上视频站看看效果



chromium-browser的步骤如下

1.sudo apt-get install pepperflashplugin-nonfree

2.sudo update-pepperflashplugin-nonfree –install

3.重启chromeium看看效果

@[toc]

使用php-java-brigde与JAVA通信

前些天因为要开发有关网银的应用,签名一定要用java的API,花了点时间研究。

环境

  • Centos 6.5

实施过程:

运行java需要安装JDK,这个步骤本文省略,请自行安装

1.下载php-java-brigde应用包

  • 地址:http://osdn.jp/projects/sfnet_php-java-bridge/releases/
  • 本文应用版本:php-java-bridge_6.2.1_documentation.zip

2.解压php-java-brigde

  1. 解压出 documentationJavaBridge.war 两个文件(夹)
    • 命令:unzip php-java-bridge_6.2.1_documentation.zip
  2. 根据文档:documentation/README 中的描述执行以下命令
    • 命令:java -classpath JavaBridge.war TestInstallation
      • 经上面命令后,从javabridge.war中得出以下文件:
        php-java
        ├── documentation
        ├── ext
        ├── java
        ├── JavaBridge.war
        ├── RESULT.html
        └── test.php

3.启动JavaBridge.jar

  1. 如何启动javaBridge.jar呢?:
    • 使用: java -jar ext/JavaBridge.jar –h 查看帮助,得知启动方式
    • Example 1: java -jar JavaBridge.jar
    • Example 2: java -jar JavaBridge.jar HTTP_LOCAL:8080 3 JavaBridge.log
    • Example 3: java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=YOURPASSWD -jar JavaBridge.jar HTTPS:8443 3 JavaBridge.log
  2. 本文参考Example 2 来启动:
    • **java -jar ext/JavaBridge.jar SERVLET_LOCAL:8080 3 /var/log/JavaBridge.log **
    • 如需后台运行请在命令后加 “&”:
    • java -jar ext/JavaBridge.jar SERVLET_LOCAL:8080 3 /var/log/JavaBridge.log &

4.准备完毕,测试是否成功

vim test.php

require_once './java/Java.inc';
$javaObj = new Java('java.lang.System');
var_dump($javaObj);

只要正常打印出对象就说明已经链接成功了!

5.调用自定义的jar包

创建一个java文件Demo.java

/*一个简单的测试*/
class Demo
{
        // 返回两数和
        public int test(int num1,int num2)
        {
                return num1+num2;
        }
}

编译Demo.java和打包成jar

  • 编译:
    • javac Demo.java
    • 生成 Demo.class
  • 打包成jar
    • jar -cvf /usr/java/packages/lib/ext/Demo.jar Demo.class
    • jar -cvf [目标] [源]
  • 为什么上面的目标位置是/usr/java/packages/lib/ext/? 在启动JavaBridge.jar时会显示如下信息:
    • 标黑的那一行会告诉你,自定义的jar包该放在哪个位置

l@y:/home/www/html/php-java$ java -jar ext/JavaBridge.jar SERVLET_LOCAL:8080 3 /var/log/JavaBridge.log
java.io.FileNotFoundException: /var/log/JavaBridge.log (权限不够)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(FileOutputStream.java:221)
at java.io.FileOutputStream.(FileOutputStream.java:110)
at php.java.bridge.Util.redirectJavaOutput(Util.java:1320)
at php.java.bridge.Util.redirectOutput(Util.java:1314)
at php.java.bridge.JavaBridge.initLog(JavaBridge.java:264)
at php.java.bridge.Standalone.checkServlet(Standalone.java:206)
at php.java.bridge.Standalone.init(Standalone.java:172)
at php.java.bridge.Standalone.main(Standalone.java:302)
Aug 20 02:34:22 JavaBridge INFO : VM : 1.7.0_79@http://java.oracle.com/
Aug 20 02:34:22 JavaBridge INFO : JavaBridge version : 6.2.1
Aug 20 02:34:22 JavaBridge INFO : logFile : /var/log/JavaBridge.log
Aug 20 02:34:22 JavaBridge INFO : default logLevel : 3
Aug 20 02:34:22 JavaBridge INFO : socket : SERVLET_LOCAL:8080
Aug 20 02:34:22 JavaBridge INFO : java.ext.dirs : /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext
Aug 20 02:34:22 JavaBridge INFO : php.java.bridge.base: /home/l
Aug 20 02:34:22 JavaBridge INFO : thread pool size : 20
Aug 20 02:34:22 JavaBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8080

调用刚刚写好的方法
——注:当新增自定义jar包到扩展目录时,请重新启动JavaBridge
vim test.php

require_once './java/Java.inc';
$javaObj = new Java('Demo');    //创建Demo实例
echo $javaObj->test(3,5);    //求两数之和

结果输出:8

这样我们就完成了一次PHP JAVA的简单通信,深入研究请看documentaction/README 或查阅更多资料