提效技巧 | PHP程式執行Linux下的SVN命令
阿新 • • 發佈:2019-02-14
在專案開發中,因為是內網伺服器(本文操作操作環境:Centos 6.5+PHP 7),每次更新都需要連上VPN才能svn up
更新程式碼。周而復始的操作浪費了大量的開發時間,故決定用PHP實現通過訪問url的方式來更新服務端的程式碼版本。
網上也看到了很多寫法,參考了很多資料,故決定寫一篇部落格備忘,希望對廣大的PHP開發者有所幫助。
第1步:將下列指令碼複製到你的站點目錄下,命名為:svnup.php
<?php
error_reporting(E_ALL);
$handle = popen('svn up --username SVN使用者名稱 --password SVN密碼 /var/www/html/cmisPHP/ 2>&1' ,'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
- 不要去掉上面的報錯設定,這樣也是為了方便除錯,因為會有很多許可權問題,等著你去更改。
第2步:設定站點使用者組和使用者主
- 寫一個指令碼,這個指令碼的使用者組和使用者主必須都是nginx或者apache的使用者組和使用者主。
- 例如我們在服務端執行php相關的操作都是在
apache:apache
下進行的,請執行命令chown apache:apache -R /var/www/html
到這裡你的配置還沒有結束,但是會發現出現報錯資訊,不要擔心,這說明你成功一半了。
如果你的SVN版本是1.6以上(一般都是),接著修改svn的伺服器配置:
我的svn的配置目錄為/home/www/.subversion/
修改下面的servers
檔案:
[global]
store-passwords = yes
store-plaintext-passwords = no
### 不知道SVN配置檔案在哪裡?
如果不知道svn servers配置檔案在哪裡,可以通過查詢的辦法進行,執行命令locate .subversion/servers
/var/www/.subversion/
下,再進行修改上述第3步的配置。
到這裡你的PHP程式成功執行Linux下的SVN命令,更新程式碼成功。
SVN的其他命令,請自行嘗試。
參考資料:
聯絡作者
如果你覺得不錯的話,不妨打賞一下,這樣我就有更大的動力去完善它,優化它。