服务器运维

使用phantomjs给网页生成图片快照

获取网页快照,我们用 phantomjs 来实现:

我的环境是CentOS,安装时直接下载 tarball 然后解压即可。

# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-i686.tar.bz2
# tar -jxvf phantomjs-1.9.8-linux-i686.tar.bz2
# cp phantomjs-1.9.8-linux-i686/bin/phantomjs /bin/phantomjs

第二步中解压后bin目录下的 phantomjs 二进制文件即是可调用命令。

第三步是为了在以后调用命令时不必输入命令全路径。

» 阅读全文

关键词: 图片快照 , phantomjs

侦探 Nginx常用Rewrite(伪静态规则)WordPress/PHPCMS/ECSHOP/ShopEX/SaBlog/Discuz/DiscuzX/PHPWind/Typecho/DEDECMS

<p>
    目前已收集Wordpress、Wordpress二级目录、PHPCMS、ECSHOP、ShopEX、SaBlog、Discuz、Discuz X、PHPWind、Typecho、DEDECMS伪静态
</p>
<p>
    <p>
        <strong>WordPress:</strong>
    </p>
    <p>
        location / {<br />
index index.html index.php;<br />
if (-f $request_filename/index.html){<br />
rewrite (.*) $1/index.html break;<br />
}<br />
if (-f $request_filename/index.php){<br />
rewrite (.*) $1/index.php;<br />
}<br />
if (!-f $request_filename){<br />
rewrite (.*) /index.php;<br />
}<br />
}<span id="more-432"></span>
    </p>

» 阅读全文

关键词: 伪静态

ImageMagick之图片裁剪功能教程及ImageMagick裁剪图片logo水印

imagemagick的convert命令通过crop参数,可以把一幅大图片分成若干块大小一样的图片,同时也可以在大图上截取一块图片来。命令格式为:

convert 原始图片 -crop widthxheight+x+y 目标图片

其中widthxheight是目标图片的尺寸,+x+y是原始图片的坐标点,这两组值至少要出现一组,也可以同时存在。另外该命令也可使用gravity来重新定义坐标系统。

在原始图片上剪裁一张指定尺寸的小图

convert src.jpg -crop 100x80+50+30 dest.jpg
在原始图片的上距离上部30像素左部50为起点的位置,分别向左向下截取一块大小为100x80的图片。
如果x相对于坐标,宽度不够100,那就取实际值。

» 阅读全文

关键词: imagemagick

imagemagick的composite批量给图片添加水印附Shell脚本

imagemagick的composite批量给图片添加水印附Shell脚本,其实很简单,直接附上脚本了。

#!/bin/bash

for each in `find upload/userimg/  -name '*.gif' -o -name '*.jpg' -o -name '*.png'  `
do
    /usr/local/imagemagick/bin/composite -gravity southeast logo.jpg $each $each
    echo "$each: done!"
done
exit 0

关键词: composite

Linux下简单详细搭建SVN服务器进行版本控制

1          安装SVN

官网下载:http://subversion.apache.org/packages.html

SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html

# yum install subversion

1.       新建一个目录用于存储SVN所有文件

# mkdir /svn

2.       新建一个资源仓库

# svnadmin create /svn/project

# ls /svn/project/

conf  db  format  hooks  locks  README.txt

目录用途说明:

» 阅读全文

关键词: 版本控制 , svn服务器

SVN利用POST-COMMIT钩子自动部署代码到生产环境中

svn利用post-commit钩子自动部署 流程

首先创建svn版本库/data/svn/jincon.com,然后在svn库中创建svn钩子,在开发电脑上检出最初版本,并且将自己的代码 提交到svn上,此时svn钩子将会把代码实时检出/更新到/data/site/www.jincon.com站点目录中。最后访问浏览器测试。

1、先创建版本库:

svnadmin create /data/svn/jincon.com

2、编辑post-commit文件

# vim /data/svn/jincon.com/hooks/post-commit
3、post-commit代码:
#!/bin/bash
# DateTime:2015-01-01
# AuthorName: Jincon
# description:用于实时检出的钩子

» 阅读全文

关键词: svn , post-commit钩子

Can't open file '/home/www/.subversion/servers':Permission denied的解决方法

在apache环境下用php执行服务器上的svn co命令,总有Can't open file '/home/www/.subversion/servers':Permission denied 。

解决办法:

svn命令加入--config-dir /home/www/.subversion

例如:

svn co svn://192.168.45.128/miui --username jincon --password jincon 
--config-dir /home/www/.subversion

其实前面已经说过了,这里单独说下。

然后,svn的配置目录就变为/home/www/.subversion/

修改下面的servers文件:

[global]

store-passwords = yes

store-plaintext-passwords = no

否则会出现这样的提示。


更多SVN的wiki地址,详见:http://www.tomtalk.net/wiki/SVN  不错可以一下。


至于SVN搭建方法:

Linux(centos)利用Subversion搭建独立的SVN服务器详细教程


利用php进行svn更新的php代码及php执行svn更新注意事项

SVN除了手动去执行命令外,其实php也可以进行svn更新

写一个php,这个脚本的用户组和用户主必须都是nginx或者apache的用户组和用户主。

脚本代码如下,其实比较简单,可以自己去完善,代码我也是随便在网上找的。


<?php
error_reporting(E_ALL);
$handle = popen('svn up --username jincon --password jincon /home/wwwroot/default/ 2>&1','r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);


» 阅读全文

关键词: svn更新