<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 目標 項目沒有使用Jenkins部署,使用的是Gitlab+ECS,要實現代碼的自動部署 # 想法 使用Gitlab的鉤子,當某個分支的代碼提交之后,訪問一個URL,實現代碼的自動部署。這里使用PHP的exec方法,執行“git pull”操作 Tips:這種方法不是百分百靠譜,萬一代碼沖突就...... # 實現 目的:訪問 http://xxx.com/index.php?project=hello,程序會自動在hello這個文件下,運行“git pull”命令 ## 1、前提條件:linux上安裝好git、php、nginx(或apache) ###1.1、git安裝并配置 ? ? ? ? ? ? 參考:[https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git](https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git) ### 1.2、php、nginx安裝 ? ? ? ? ? ? 參考:[https://help.aliyun.com/document\_detail/97251.html?spm=a2c4g.11186623.6.1107.70581014ZKSnS8](https://help.aliyun.com/document_detail/97251.html?spm=a2c4g.11186623.6.1107.70581014ZKSnS8) ###1.3、php、apache安裝 ? ? ? ? ? ? 參考:[https://help.aliyun.com/document\_detail/50774.html?spm=a2c4g.11186623.6.1123.816d14f8IRTWh0](https://help.aliyun.com/document_detail/50774.html?spm=a2c4g.11186623.6.1123.816d14f8IRTWh0) ## 2、啟動安裝好的php跟nginx(或apache)后 3、如果有改過nginx的端口的話,需要修改下iptables,編輯/etc/sysconfig/iptables,新增一個端口即可,修改后運行 service iptables restart(記得阿里云入網規則也要添加相應的端口) ## 4、相應的php代碼如下: ~~~ <?php #部署代碼用! $project = $_GET['project']; if (!empty($project)) { $shell = "cd /data0/www/{$project}/ && pwd && sudo git pull 2>&1"; exec($shell,$out); echo $project."<br/>"; print_r($out); }else{ echo "Well done."; } ?> ~~~ 說明: (1)sudo,如果沒有加這個的話,大概率會出現"permisson deny" (2)2>&1,這個主要是為了查看運行結果 (3)pwd,查看目錄 ## 5、如果上面的程序無法跑起來,提示“sudo: no tty present and no askpass program specified”這類錯誤,那么基本上就是訪問權限的問題,按照下面提示修改 ## 6、運行“ps -ef | grep php”查看php進程的用戶名,如果是nobody,你需要修改下php的配置文件 ~~~ ps -ef | grep php ~~~ ## 7、修改php配置文件 7.1、添加用戶組,/usr/sbin/groupadd 用戶組名 ~~~ /usr/sbin/groupadd 用戶組名 ~~~ 7.2、新增用戶,/usr/sbin/useradd -g 用戶組名 -s /bin/bash 用戶名 ~~~ /usr/sbin/useradd -g 用戶組名 -s /bin/bash 用戶名 ~~~ 7.3、修改php配置,我的是在/etc/php-fpm.d/www.conf,修改最上面的user跟group ~~~ vim /etc/php-fpm.d/www.conf ~~~ 7.4、重啟php,service php-fpm restart ~~~ service php-fpm restart ~~~ 7.5、運行“ps -ef | grep php”查看php進程的用戶名 ~~~ ps -ef | grep php ~~~ ## 8、修改sudoers 8.1、運行chmod u+w /etc/sudoers ~~~ chmod u+w /etc/sudoers ~~~ 8.2、vim /etc/sudoers ~~~ vim /etc/sudoers ~~~ 8.3、在"root? ? ALL=(ALL)? ? ? ?ALL"下面加上"用戶組 ALL=(ALL)? NOPASSWD: ALL" ~~~ root? ? ALL=(ALL)? ? ? ?ALL 用戶組 ALL=(ALL) NOPASSWD: ALL ~~~ ## 9、繼續執行上面的php文件,沒提示錯誤基本上可以了,可能出現sudo: unable to initialize policy plugin這類錯誤,按照提示改即可 ## 10、pkexec visudo可查看具體的錯誤信息 目的:訪問 http://xxx.com/index.php?project=hello,程序會自動在hello這個文件下,運行“git pull”命令由此配合gitlab鉤子實現代碼的自動部署
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看