PHP中調用SVN命令更新網站方法

PC教程網】關于PHP中調用SVN命令更新網站方法_該命令不能透明調用介紹:想說寫一個通過網頁就可以執行 SVN 升級的程序,結果并不是我想得那樣簡單,有一些眉角需要注意的說。 先以 Apache 的用戶帳號執行 SVN checkout,這樣 Apache 才有 SVN 的鏈結權力,才可以,下面小編為您針對PHP中調用SVN命令更新網站方法進行分享:

想說寫一個通過網頁就可以執行 SVN 升級的程序,結果并不是我想得那樣簡單,有一些眉角需要注意的說。
先以 Apache 的用戶帳號執行 SVN checkout,這樣 Apache 才有 SVN 的鏈結權力,才可以通過網頁執行 SVN update

教程實例 代碼如下:

su -s /bin/bash www-data   
cd /var/www   
svn checkout http://www.xxx.com/svn/my_site 

在用 PHP 執行 shell 指令前要加上 export LANG=C.UTF-8 的環境聲明,不然 SVN update 時遇到中文會出現 error,Ubuntu 的 Apache 默認是 LANG=C
接著要為 SVN 補上 --accept theirs-full 的參數,這是當沖突發生時,都以 SVN Server 的文件版本為主
最后再加上 2>&1,讓 PHP 可以取得包含錯誤的所有信息
教程實例 代碼如下:

<?php   
putenv('LANG=C.UTF-8');   
$result = shell_exec('svn update --accept theirs-full /var/www/my_site 2>&1');   
echo nl2br($result);   

相關教程

在RedHat系的Linux中使用nmcli命令管理網絡的教程

在RedHat系的Linux中使用nmcli命令管理網絡的教程

Red Hat Enterprise Linux 7 與 CentOS 7 中默認的網絡服務由 NetworkManager 提供,這是動態控制及配置網絡的守護進程,它用于保持當前網絡設備及連接處于工作狀態,同時也支持傳統的 ifcfg 類型 …

Node.js項目中調用JavaScript的EJS模板庫的方法

作為外部模塊,調用的方法和mysql模塊是相同的,不再贅述。 ejs的render函數有兩個參數 第一個是字符串,第二個是可選的對象,和其他javascript模版一樣需要渲染的數據也是包含在opti …

解析在PHP中使用全局變量的幾種方法

簡介 即使開發一個新的大型PHP程序,你也不可避免的要使用到全局數據,因為有些數據是需要用到你的代碼的不同部分的。一些常見的全局數據有:程序設定類、數據庫連接類、用戶資 …

在ASP中調用存儲過程的幾種方法

1這也是最簡單的方法,兩個輸入參數,無返回值: setconnection=server.createobject("adodb.connection") connection.opensomeDSN Connection.Execute"procnamevarvalue1,varvalue2" '將所有對象清為nothing,釋放資源 conne …

Windows系統中Java調用cmd命令及執行exe程序的方法

Java調用cmd命令,并輸出顯示信息: package com.anxin.cmd.test; import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime( …

vbscript下調用 Dir 命令的方法

vbscript下調用 Dir 命令的方法

問: 嗨,Scripting Guy!我想做一些看上去非常簡單的事情:在腳本中調用 dir 命令。但是好像不起作用。怎樣實現我的想法呢? -- CR, 墨西哥城,墨西哥 答: 你好, CR.從你的郵件來看,你 …

Linux下使用python調用top命令獲得CPU利用率

本文定位:想通過python調用top命令獲取cpu使用率但暫時沒有思路的情況。 如果單純為了獲得cpu的利用率,通過top命令重定向可以輕松實現,命令如下: 教程實例 代碼如下: top -bi cpuHi …

python調用cmd命令行制作刷博器

教程實例 代碼如下: import webbrowser as web import time import os count=0 while count10: count=count+1 #你要刷的博客 web.open_new_tab("這里是博客地址") time.sleep(1) else: os.system('taskkill /F /IM 360se.exe') 這里主要 …

Perl調用shell命令方法小結

一、system perl也可以用system調用shell的命令,它和awk的system一樣,返回值也是它調用的命令的退出狀態. 教程實例 代碼如下: [[email protected] ~]# cat aa.pl #! /usr/bin/perl -w $file = "wt.pl"; system("ls -l wt.p …

内蒙古十一选五任五推荐号