Yii2使用composer安装redis和mongodb扩展

环境windows7,首先按安装composer这里就不多说了,然后cmd进入项目目录

prefer-dist参数前面是两个半角英文-

redis执行:

composer require –prefer-dist  yiisoft/yii2-redis “^2.0”

php composer.phar require –prefer-dist yiisoft/yii2-redis “^2.0”

 

mongodb执行:

composer require –prefer-dist  yiisoft/yii2-mongodb “^2.0”

php composer.phar require –prefer-dist yiisoft/yii2-mongodb “^2.0”

mongodb 2.1需要php7才支持

执行完成后它会改写composer.json文件和在\vendor\yiisoft下有对应的目录生成

发表在 开源代码 | 标签为 | 留下评论

Linux下which、whereis、locate、find命令的区别

  • which

which是通过 PATH环境变量 到该路径内查找可执行文件

  • whereis

whereis.c的源码,在缺省的情况下,会找当前和以下的路径

static char *bindirs[] = {
“/bin”,
“/usr/bin”,
“/sbin”,
“/usr/sbin”,
“/etc”,
“/usr/etc”,
“/lib”,
“/usr/lib”,
“/lib64”,
“/usr/lib64”,
“/usr/games”,
“/usr/games/bin”,
“/usr/games/lib”,
“/usr/emacs/etc”,
“/usr/lib/emacs/*/etc”,
“/usr/TeX/bin”,
“/usr/tex/bin”,
“/usr/interviews/bin/LINUX”,

“/usr/X11R6/bin”,
“/usr/X386/bin”,
“/usr/bin/X11”,
“/usr/X11/bin”,
“/usr/X11R5/bin”,

“/usr/local/bin”,
“/usr/local/sbin”,
“/usr/local/etc”,
“/usr/local/lib”,
“/usr/local/games”,
“/usr/local/games/bin”,
“/usr/local/emacs/etc”,
“/usr/local/TeX/bin”,
“/usr/local/tex/bin”,
“/usr/local/bin/X11”,

“/usr/contrib”,
“/usr/hosts”,
“/usr/include”,

“/usr/g++-include”,

“/usr/ucb”,
“/usr/old”,
“/usr/new”,
“/usr/local”,
“/usr/libexec”,
“/usr/share”,

“/opt/*/bin”,

0
};

static char *mandirs[] = {
“/usr/man/*”,
“/usr/share/man/*”,
“/usr/X386/man/*”,
“/usr/X11/man/*”,
“/usr/TeX/man/*”,
“/usr/interviews/man/mann”,
0
};

static char *srcdirs[]  = {
“/usr/src/*”,
“/usr/src/lib/libc/*”,
“/usr/src/lib/libc/net/*”,
“/usr/src/ucb/pascal”,
“/usr/src/ucb/pascal/utilities”,
“/usr/src/undoc”,
0
};

  • locate

使用自己的一个数据库,使用updatedb来更新文件系统,会有时效性问题。

  • find

搜寻实时硬盘文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

发表在 服务器 | 标签为 | 留下评论

ubuntu在虚拟机找不到网卡无法上网

今天在vmware上安装ubuntu看看,早上可以下午就发现ubuntu上不了网,沿着eth0的思路去寻找解决,最后发现新版的系统已经没有eth0了,取而代之的是ens33。可是依旧无法启动和找到网卡,无意间发现右上角显示网络已禁用,靠原来是有选项的,经过查找也可以通过命令来恢复的,如下执行即可:
1、sudo service network-manager stop
2、sudo rm /var/lib/NetworkManager/NetworkManager.state
3、sudo service network-manager start

下次记得别乱点,vmware找不到网卡不一定是没有网卡,是你禁用了!

发表在 软件 | 标签为 | 留下评论

局域网内SSH登录慢时间长

ssh -v 192.168.0.8

看到以下内容:

debug1: Authentications that can continue: publickey,password

===============解决方案==========================
vim /etc/ssh/sshd_config
UseDNS no
重启服务
service sshd restart

发表在 服务器 | 标签为 | 留下评论

CentOS下RPM安装ElasticSearch

今天安装ElasticSearch试试看。

一、下载JDK,配置JDK环境

yum list java*
yum install java-1.8.0-openjdk*

接着找它
rpm -qa | grep java
rpm -ql java-1.8.0-openjdk-1.8.0.101-3.b13.el6_8.x86_64
下面配置JAVA_HOME环境变量
vim /etc/profile
后面加入以下内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el6_8.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
:wq退出vim编辑器
然后source /etc/profile就行了

二、下载ElasticSearch

cd /data/software/
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.2/elasticsearch-2.3.2.rpm

三、安装ElasticSearch

rpm -ivh elasticsearch-2.3.2.rpm

四、设置开机自启动

/sbin/chkconfig --add elasticsearch
service elasticsearch start

启动之后,在浏览器输入http://ip:9200/如能输出下列信息,即表示安装成功

{
  "name" : "Shooting Star",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.2",
    "build_hash" : "b9e4a6acad4008027e4038f6abed7f7dba346f94",
    "build_timestamp" : "2016-04-21T16:03:47Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

五、安装elasticsearch-head插件

/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

安装完成之后,在浏览器输入:http://ip:9200/_plugin/head/ ,可以查看显示效果

修改配置到

默认路径:etc/elasticsearch/config/elasticsearch.yml

#集群名(同一个集群,名称必须相同)
cluster.name: my-application
#服务节点名(每个服务节点不一样)
node.name: node-1
#数据存储路径
path.data: /data/elasticsearch/data
#服务日志路径
path.logs: /data/elasticsearch/logs
#服务ip地址
network.host: 0.0.0.0
#服务端口
http.port: 9200

默认路径:/etc/sysconfig/elasticsearch
#设置为可用内存的50%
ES_HEAP_SIZE = 1g
#其余参数参考说明进行调优(JVM)
发表在 开源代码 | 标签为 | 留下评论

YII2.0的RESTFUL默认返回数据格式为JSON

默认yii2的RESTFUL接口返回的是xml格式,不用修改框架文件vender/yiisoft/yii2/rest/ActiveController.php 中的默认配置,只要在使用的控制器中unset下xml格式即可,剩下那个就是json,代码如下:

public function behaviors()
{
   $behaviors = parent::behaviors();
   unset($behaviors['contentNegotiator']['formats']['application/xml']);//去除xml格式就按剩下的json显示
   return $behaviors;
}
发表在 开源代码 | 标签为 | 留下评论

windows下php安装ssh2扩展的安装

安装步骤(以windows2007系统,IIS服务器为例)

1. 下载 php extension ssh2

下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

目前发现0.13版竟然是空的,php5.6在windows下没有ssh2.dll,谁有告诉声!

根据自己PHP的版本去下载,其中ts表示线程安全,nts表示不安全。(可以使用phpinfo()查看需要哪一个,Thread Safety项是enabled表示线程安全)

我使用的是线程不安全的,所以下载的是php_ssh2-0.12-5.5-nts-vc11-x64.zip

2. 解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。

3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。

4. 将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份

5. php.ini中加入 extension=php_ssh2.dll

6. 重启IIS,即可使用php执行ssh连接操作了。

查看phpinfo(),是否有显示php_ssh2扩展加载成功。

发表在 软件 | 标签为 , | 留下评论

phpstorm函数和代码注释

函数先写好,然后添加说明:先敲 /**然后回车

多行代码注释:ctrl+shift+/

单行代码注释:ctrl+/

发表在 软件 | 标签为 | 留下评论

Yii2实现RESTful接口api风格404

测试环境是yii2.0.9,这里主要讲遇到的问题。根据Yii 2.0 权威指南快速入门配置简单的RESTful接口api风格,然后怎么访问都是出现404错误。这里主要讲下配置问题:

'urlManager' => [
   'enablePrettyUrl' => true,//是否开启URL美化功能。
   'enableStrictParsing' => true,//是否开启严格解析。
   'showScriptName' => false,//是否在URL中显示入口脚本。
   'rules' => [
      [   'class' => 'yii\rest\UrlRule',
                  'controller' => 'factory',
                 // 'pluralize' => false,//的意思是不使用复数,这样可以不需要加s
              ],
   ],
]

问题出在factory这个单词上,我使用工厂单词创建了控制去和模型,结果它的默认访问复数不是factorys,而是factories,这坑啊!!!

一路追踪源码

/**
 * Converts a word to its plural form.
 * Note that this is for English only!
 * For example, 'apple' will become 'apples', and 'child' will become 'children'.
 * @param string $word the word to be pluralized
 * @return string the pluralized word
 */
public static function pluralize($word)

原来有说明,可惜是在源码上,网上和权威指南里面都没提到,我想问还权威吗?

发表在 开源代码 | 标签为 | 留下评论

CSS中!important的作用

用以下简单例子来说明css使用!important的不一样

<style>
#a{ color:#0C0;}
.b{color:red !important;}
</style>
<table border="1">
 <tr id='a' style="color:#6FF;">
 <td class="b">bbbbbbbbb</td>
 <td>aaaaaaaaaaa</td>
 <td style="color:#36F">ccccccccccc</td>
 <td class="b" style="color:#36F">dddddddd</td>
 
 </tr>
</table>

它可以覆盖无论id或class定义的样式,兼容在ie6及以上版本,Firefox和Chrome表现都是一致的。
但是ie6有bug,如果写成下面的样式,ie6是识别不出来的:

.b{
 color:red !important;
 color:yellow;
}

这样,在ie6下展示的时候会显示成黄色。

当然,也可以通过以下方式来让ie6识别:

.b{
  color:red !important;
}
.b{
  color:yellow;
}

注意书写方式一般可以避开的问题。

发表在 开源代码 | 标签为 | 留下评论