• 每天进步一点点!

文章分类

推荐网站

常用手册

关于php 5.5 CURLFile上传的问题【原创】

今天用多贝云的API上传课件时,报了如下的错误,这个是是在PHP5.5中出现的问题,原来是PHP5.5废弃了’@’这种模式。
The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead
PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。

传统上,PHP的cURL支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,供cURL读取上传。这与命令行直接调用cURL程序的语法是一致的:

curl_setopt(ch, CURLOPT_POSTFIELDS, array(
    'file' => '@'.realpath('image.png'), 
)); 
equals
$ curl -F "file=@/absolute/path/to/image.png" 

 

PHP 5.5另外引入了CURL_SAFE_UPLOAD选项,可以强制PHP的cURL模块拒绝旧的@语法,仅接受CURLFile式的文件。5.5的默认值为false,5.6的默认值为true。

 

解决方法:

对上传文件调用curl_file_create()创建CURLFile,代码如下:

	public function uploadDocument($filename) {
		$params = $this->prepareParameters(array());
		#$params["slidesFile"] = "@" . $filename;
		$params['slidesFile'] = curl_file_create($filename);//使用这种方式
		
		$path = "/api/v3/documents/upload";
		$result = $this->post($path, $params);
		return $result;
	}

 

 

 

类别:PHP | 浏览(125) | 评论(0) | 阅读全文>>

Redis的主从复制【原创】

在Redis中使用复制功能非常容易,只需要在从数据库的配置文件中加入“slaveof 主数据库IP 主数据库端口”即可,如果主数据库需要授权密码,还需要在从数据库的配置文件中加入主数据库的授权密码"masterauth 主数据库密码",主数据库无需进行任何配置。

 

原理


当一个从数据库启动后,会向主数据库发送SYNC命令,主数据库接收到SYNC命令后会开始在后台保存快照(即RDB持久化的过程),并将保存期间接收到的命令缓存起来。当快照完成后,Redis会将快照文件和所有缓存的命令发送给从数据库。从数据库收到后,会载入快照文件并执行收到的缓存的命令。当主从数据库断开重连后会重新执行上述操作,不支持断点续传。

 

拓扑图

 

  • 主数据库A:192.168.1.110:6379 
  • 从数据库B:192.168.1.112:6379 
  • 从数据库C:192.168.1.113:6379 

 

  1. 启动主数据库A
/usr/local/redis-stable/bin/redis-server /usr/local/redis-stable/etc/redis.conf  &

 

  1. 进入主数据库A,为了方便测试,这里用flushall命令清除所有数据。

 

类别:NoSQL | 浏览(135) | 评论(0) | 阅读全文>>

Redis的持久化【转载】

 Redis的强劲性能很大程度上是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中以某种形式同步到硬盘中,这一过程就是持久化。
   

Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。

 

RDB方式

 

RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上。进行快照的条件可以由用户在配置文件中自定义,由两个参数构成:时间和改动的键的个数。当在指定的时间内被更改的键的个数大于指定的数值时就会进行快照。RDB是Redis默认采用的持久化方式,在配置文件中已经预置了3个条件:

 

save 900 1
save 300 10
save 60 10000

 

save参数指定了快照条件,可以存在多个条件,条件之间是“或”的关系。如上所说,save 900 1的意思是在15分钟(900秒钟)内有至少一个键被更改则进行快照。如果想要禁用自动快照,只需要将所有的save参数删除即可。

 

Redis默认会将快照文件存储在当前目录的dump.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。

类别:NoSQL | 浏览(448) | 评论(0) | 阅读全文>>

Redis的安装和访问授权配置【原创】

  • 安装redis
wget http://download.redis.io/releases/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz -C /usr/local/
cd /usr/local/redis-stable/
make && make install

 

  • 为了方便管理,我们新建两个目录bin和etc,分别用于存放redis的可执行命令文件和配置文件
mkdir /usr/local/redis-stable/bin
mkdir /usr/local/redis-stable/etc
cd /usr/local/redis-stable/src/
mv redis-server redis-cli redis-sentinel redis-check-dump redis-benchmark redis-check-aof mkreleasehdr.sh ../bin
cd ..
mv redis.conf etc/

 

  • 启动redis
/usr/local/redis-stable/bin/redis-server /usr/local/redis-stable/etc/redis.conf &

 

  • 查看redis是否启动成功
netstat -tnl

如果看到下面的显示说明,redis启动成功了,redis的默认端口为6379

tcp    0    0 0.0.0.0:6379        0.0.0.0:*    LISTEN 

 

  • 进入redis终端
/usr/local/redis-stable/bin/redis-cli

 

  • 停止redis
/usr/local/redis-stable/bin/redis-cli shutdown
#或
pkill redis-server
#或
killall redis-server

 

类别:NoSQL | 浏览(194) | 评论(0) | 阅读全文>>

CentOS下配置SVN服务器【原创】

  • 安装subversion
yum -y install subversion

 

  • 创建两个项目目录
mkdir -p /svnrepos/Project1
mkdir -p /svnrepos/Project2

 

  • 用svnadmin命令创建两个svn资源项目
svnadmin create /svnrepos/Project1
svnadmin create /svnrepos/Project2

 

  • 为了使两个项目用同一套配置文件,我们将配置文件放到/svnrepos/目录下
cp -r /svnrepos/Project1/conf /svnrepos/conf

 

  • 配置passwd,添加用户名和密码,用户名密码用等号分开
cd /svnrepos/conf
vim passwd

 

[users]
# harry = harryssecret
# sally = sallyssecret

lixia = lixia
yushushu = yushushu
chenlei = chenlei
zouxinru = zouxinru
caoxiaoying = caoxiaoying
chenbaoyu = chenbaoyu
liuyuchen = liuyuchen
liaoxiaoxue = liaoxiaoxue
wangtianyu = wangtianyu
huangzhonghua = huangzhonghua

 

  • 配置授权文件

 

vim authz 

 

 

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe


admin = lixia,yushushu
dev = yushushu,chenlei,zouxinru,wangtianyu
test = caoxiaoying,chenbaoyu
res = huangzhonghu

类别:Linux | 浏览(131) | 评论(0) | 阅读全文>>