鹰击长空yuetao.org

11月 21
1. 首先下载安装vs2008

2. 然后打开
http://windows.php.net/downloads/php-sdk/

根据VC版本下载对应的 deps  

VS2008 可以下 VC9的


3. 然后就是下载 phpsdk,选择较新的版本下载

http://windows.php.net/downloads/php-sdk/


4. 将下载的phpsdk解压到d盘,新建一个目录 phpsdk存放



5. 开始-》 运行 -》cmd   然后 cd d:/phpsdk

6. 用cmd命令 运行 "C:/Program Files/Microsoft Visual Studio 9.0/VC/vcvarsall.bat" 来设置编译环境(我是安装在C盘默认目录的)
注意两边要有双引号的

7. 继续在窗口中运行命令,

设置sdk编译环境变量,如果未运行该命令,则会报出缺少bison.exe
bin\phpsdk_setvars.bat

创建目录树,该命令只有在创建目录的时候有用,已有目录树的可以忽略掉
bin\phpsdk_buildtree.bat phpdev2

将生成一个phpdev2目录

8. 接着继续将deps解压到

d:\phpsdk\phpdev2\vc9\x86\
目录下。原来这个目录下的deps目录下的所有子目录均是空目录,解压后,应该复制进很多必要的模块/扩展所需的库文件。


9. 下载 php 5.4.35 的源码包解压到d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src,然后 cd d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src

10. 运行命令buildconf, 然后就可以先试着编译php了。最开始,一般编译尽可能少的模块,先让核心能正常编译出来:

11. 运行命令 configure --disable-all --enable-cli
这一步的主要目的是生成main/config.w32.h文件,如果需要生成PHP,可以继续执行

12. 运行命令 nmake clean; nmake

php5.4最核心部分及一个命令行工具就编译出来了。nmake clean是为了避免遗留编译中间结果文件带来干扰。

编译完成以后 d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src\Release_TS 会生成编译好的php win32的应用程序

13. 安装cygwin
生成php扩展模块骨架代码是ext_skel脚本
ext_skel是创建扩展的shell,在windows上无法运行,所以就必须要有Cygwin。

如果你的cygwin没有安装在c:\cygwin,进入php源码包\ext目录下,修改ext_skel_win32.php : 
  $cygwin_path = 'c:\cygwin\bin'; 
修改为你的cygwin目录 
  $cygwin_path = 'd:\cygwin\bin'; 


14. 准备创建 php windows 扩展, 进入 d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src\ext 目录,

运行 d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src\Release_TS\php.exe d:\phpsdk\phpdev2\vc9\x86\php-5.4.35\src\ext\ext_skel_win32.php --extname=xsguard

这会在 ext 目录创建一个扩展骨架代码

15. 调整发布属性为 release 打开自动生成的 ext/xsguard/xsguard.dsp ,在左边 解决方案资源管理器中,选中xsguard 右键点击属性,

在属性页中点击 【配置管理器】,在活动解决方案配置下面,选择 【Release_TS】 

16. 按 f7 保存解决方案,同时开始编译。

编译成功后 文件会生成到 d:/phpsdk/phpdev2/vc9/x86/php-5.4.35/src/Release_TS 目录



Tags:
11月 4


svn add xxxx  //这句没问题
svn commit xxx --message auto  //这句总是会报出权限不足,

经查询发现是 root 帐号下面的 

.subversion/auth/svn.simple/xxxx 保存的帐号权限不足导致的


于是果断删除 xxx 文件 重新运行 svn commit xxx 的命令 ,问题解决
Tags:
10月 15
sh 不像 bash 和 ksh 那样可以非常方便的定义和使用数组,但是可以通过其它方式来模拟数组。

--------------------------------------------------

【方法1】通过 set 命令和位置参数来模拟数组

点击(此处)折叠或打开
# 定义数组
set 'word 1' word2 word3

# 输出数组的第一个元素
echo $1

# 输出数组的第二个元素
echo $2

# 输出数组的第三个元素
echo $3

# 输出数组的所有元素
echo $*
echo $@

# 向数组中增加一个元素
set -- "$@" word4
echo $4

# 查看数组元素的个数
echo $#

# 遍历数组元素
for i in do "$@"; do
    echo "$i"
done

# 从数组中删除一个元素
shift
echo $@

# 删除数组的所有元素
set x; shift

--------------------------------------------------

【方法2】使用 eval 命令模拟数组

定义数组并遍历数组元素:

点击(此处)折叠或打开
#!/bin/sh
eval a1=word1
eval a2=word2
eval a3=word3
for i in 1 2 3; do
    eval echo "The $i element of array is: \$a$i"
done

根据用户输入的一句话来定义数组并遍历数组元素:

点击(此处)折叠或打开
#!/bin/sh
echo "Enter the sentence:"
read str
n=0
for word in $str; do
    n=`expr $n + 1`
    eval a$n="$word"
    eval echo "The $n element of array is: \$a$n"
done
Tags: ,
9月 27

svnUpdate.sh

 
线上服务器使用的版本更新的工具
 
主要功能有:
 
1. 更新之前会记录当前版本和更新之后的版本,万一更新错了,可以查日志还原。
2. 每次更新都会产生详细的日志存放到/home/svnlogs/下面,每天一个独立文件
 
 
用法:
 
svnUpdate.sh 要更新的路径 [使用哪个版本]
 
默认是更新到最新版本,如果指定了版本就更新哪个版本的
 
更新的路径是相对于网站的根路径开始算的
 
代码开始
----------------------------------------------------------------------------------------
 
if [ "$1" == "" ]; then
       echo "Error: You must input dir."
       exit 1
fi
if [ "$1" == "/" ]; then
       echo "Error: You can not input /."
       exit 1
fi
 
logfile=`date +"%Y%m%d"`
logpath="/home/svnlogs/${logfile}.log"
tfile=`echo $1 | awk -F'www/' '{print $2}'`
 
if [ ! -f "$logpath" ]; then
        touch $logpath
fi
 
 
 
#echo $1
logcontent1=`date -d "today" +"%Y%m%d %H:%M:%S svn update /home/wwwroot/www/${tfile};"`
version1=`svn status -v "/home/wwwroot/www/${tfile}" | awk '{print $1,$3}'`
logcontent2="before version:${version1};"
r_version=""
if [ "$2" != "" ]; then
        r_version="-r $2"
fi
sudo -u www svn $r_version update "/home/wwwroot/www/${tfile}"
version2=`svn status -v "/home/wwwroot/www/${tfile}" | awk '{print $1,$3}'`
logcontent3="after version: ${version2}"
 
-------------------------------------------------------------------------------------
代码结束
Tags:
7月 5
1. 下载repo文件
    下载地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo

2. 备份并替换系统的repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost ~]# mv /root/CentOS6-Base-163.repo CentOS-Base.repo

3. 执行yum源更新
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum update

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-10/72750.htm
Tags: ,
分页: 8/61 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]