ホームページ php教程 php手册 配置文件在正式服务器上的部署

配置文件在正式服务器上的部署

Jun 06, 2016 pm 07:37 PM
サーバ フォーマル 展開する 設定ファイル

配置文件在正式服务器上的部署。 从文件服务器下载配置文件,备份并替换本地的配置文件,将配置文件压缩成zip格式 无 ?phpheader("Content-Type:text/html;charset=utf-8");include 'tz.php';/** * 执行配置文件的压缩 * Created by PhpStorm. * User: saint

配置文件在正式服务器上的部署。
从文件服务器下载配置文件,备份并替换本地的配置文件,将配置文件压缩成zip格式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

<?php

header("Content-Type:text/html;charset=utf-8");

include 'tz.php';

/**

 * 执行配置文件的压缩

 * Created by PhpStorm.

 * User: saint

 * Date: 2015/3/18

 * Time: 14:25

 */

if(!defined("SYSTEM_PATH"))     define("SYSTEM_PATH",   '/data/wwwroot/static/webroot');

 

class Compress

{

    /**

     * @var array 这里是需要处理的配置文件

     */

    public $cfg_files = array(

        'DEMO1Config.json', #

    );

 

    /**

     * @var string 文件服务器地址

     */

    public $file_server = '';

 

    public $cfg_path = '';

 

    public $temp_path = '';

 

    public $zip_file = '';

 

    /**

     * 环境初始化

     */

    public function _InitEnv()

    {

        $this->cfg_path = SYSTEM_PATH . '/metafile';

        if(false == (is_dir( $this->cfg_path) && is_writable($this->cfg_path))) {

            throw new Exception('配置目录不存在或者不可写');

        }

 

        $this->temp_path = SYSTEM_PATH . '/tmp';

        if(false == (is_dir($this->temp_path) && is_writable($this->temp_path))) {

            throw new Exception('临时配置目录不存在或者不可写');

        }

 

        if(function_exists('file_get_contents') == false) {

            throw new Exception('file_get_contents函数已禁用');

        }

 

        if(function_exists('file_put_contents') == false) {

            throw new Exception('file_put_contents函数已禁用');

        }

 

        if(class_exists('ZipArchive') == false) {

            throw new Exception('找不到ZipArchive');

        }

 

    }

 

    public function downloadFiles()

    {

        $start = microtime(true);

        try {

            $this->_InitEnv();

        } catch (Exception $e) {

            echo $e->getMessage();

            exit;

        }

 

        $file_array = array();

 

        // 依次从服务器上下载配置文件

        foreach($this->cfg_files as $filename) {

            $tmp_file = $this->temp_path . '/' . $filename;

            $remote_file = $this->file_server . '/' . $filename;

 

            // 检查本地是否存在临时文件,如果有,则检查这个文件本地文件是否一致

            $is_download = true;

            if(is_file($tmp_file)) {

                if(hash_file('sha256', $tmp_file) == hash_file('sha256', $remote_file)) {

                    $is_download = false;

                }

            }

 

            if($is_download) {

                $contents = file_get_contents($remote_file);

                file_put_contents($tmp_file, $contents);

            }

 

            $file_array[] = $tmp_file;

        }

 

        // 对配置文件进行压缩

        try {

            $this->compressFiles();

        } catch (Exception $e) {

            echo $e->getMessage();

            exit;

        }

 

        $limit = microtime(true) - $start;

 

        echo '<p>生成压缩文件成功,本次耗时:' . $limit . 's</p>';

        echo '<p>开始替换原来的配置文件</p>';

 

        $this->replaceFiles();

 

        // 插入数据库

 

 

        echo '<p>替换完毕</p>';

 

    }

 

    // 替换原来的文件

    public function replaceFiles()

    {

        // 打开配置目录,创建备份目录

        chdir($this->cfg_path);

        $backup_dir = 'cfg_bak_' . date('Ymd');

        if(is_dir($backup_dir)) {

            rmdir($backup_dir);

        }

        mkdir($backup_dir, 0777);

        array_push($this->cfg_files, $this->zip_file);

        foreach($this->cfg_files as $file_name) {

            $dst_file = $backup_dir . '/' . $file_name;

            if(is_file($file_name)) {

                copy($file_name, $dst_file);

            }

            $new_file = $this->temp_path . '/' . $file_name;

            copy($new_file, $file_name);

        }

    }

 

    /**

     * 执行压缩文件

     * @param $file_array

     * @throws Exception

     */

    public function compressFiles()

    {

        chdir($this->temp_path);

        $this->zip_file = 'cfg_' . date(('Ymd')) . '.zip';

        $zipClass = new ZipArchive();

        $fp = $zipClass->open($this->zip_file, ZipArchive::CREATE);

        if($fp === true) {

            foreach($this->cfg_files as $file_name) {

                $zipClass->addFile($file_name);

            }

        } else {

            throw new Exception('压缩失败:' . $fp);

        }

        $zipClass->close();

    }

}

 

$obj = new Compress();

$obj->downloadFiles();

ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dnsmasq を DHCP リレー サーバーとして構成する方法 Dnsmasq を DHCP リレー サーバーとして構成する方法 Mar 21, 2024 am 08:50 AM

DHCP リレーの役割は、2 つのサーバーが異なるサブネット上にある場合でも、受信した DHCP パケットをネットワーク上の別の DHCP サーバーに転送することです。 DHCP リレーを使用すると、ネットワーク センターに集中 DHCP サーバーを展開し、それを使用してすべてのネットワーク サブネット/VLAN に IP アドレスを動的に割り当てることができます。 Dnsmasq は、一般的に使用される DNS および DHCP プロトコル サーバーであり、ネットワーク内の動的ホスト構成の管理を支援する DHCP リレー サーバーとして構成できます。この記事では、dnsmasq を DHCP リレー サーバーとして構成する方法を説明します。コンテンツ トピック: ネットワーク トポロジ DHCP リレー上の静的 IP アドレスの構成 集中型 DHCP サーバー上の DHCP リレー D

PHP を使用して IP プロキシ サーバーを構築するためのベスト プラクティス ガイド PHP を使用して IP プロキシ サーバーを構築するためのベスト プラクティス ガイド Mar 11, 2024 am 08:36 AM

ネットワーク データ転送において、IP プロキシ サーバーは重要な役割を果たし、ユーザーが実際の IP アドレスを隠し、プライバシーを保護し、アクセス速度を向上させるのに役立ちます。この記事では、PHP を使用して IP プロキシ サーバーを構築する方法に関するベスト プラクティス ガイドを紹介し、具体的なコード例を示します。 IPプロキシサーバーとは何ですか? IP プロキシ サーバーは、ユーザーとターゲット サーバーの間にある中間サーバーであり、ユーザーとターゲット サーバー間の転送ステーションとして機能し、ユーザーのリクエストと応答を転送します。 IPプロキシサーバーを使用する場合

Epic サーバーがオフラインのときにゲームに参加できない場合はどうすればよいですか? Epic がオフラインでゲームに参加できない理由の解決策 Epic サーバーがオフラインのときにゲームに参加できない場合はどうすればよいですか? Epic がオフラインでゲームに参加できない理由の解決策 Mar 13, 2024 pm 04:40 PM

Epic サーバーがオフラインのときにゲームに参加できない場合はどうすればよいですか?この問題は多くの友人が経験しているはずです。このプロンプトが表示されると、正規のゲームが起動できなくなります。この問題は通常、ネットワークやセキュリティ ソフトウェアからの干渉によって引き起こされます。では、どのように解決すればよいでしょうか?今回の編集者が説明します。解決策を皆さんと共有したいと思います。今日のソフトウェア チュートリアルが問題の解決に役立つことを願っています。オフライン時に epic サーバーがゲームに参加できない場合の対処方法: 1. セキュリティ ソフトウェアによって妨害されている可能性があります。ゲーム プラットフォームとセキュリティ ソフトウェアを閉じて、再起動します。 2. 2 つ目は、ネットワークの変動が大きすぎることです。ルーターを再起動して機能するかどうかを確認してください。状態に問題がない場合は、5G モバイル ネットワークを使用して動作を試みることができます。 3. それならもっとあるかもしれない

Win10 のユーザー プロファイルはどこにありますか? Win10 でユーザー プロファイルを設定する方法は? Win10 のユーザー プロファイルはどこにありますか? Win10 でユーザー プロファイルを設定する方法は? Jun 25, 2024 pm 05:55 PM

最近、多くの Win10 システム ユーザーがユーザー プロファイルを変更したいと思っていますが、その方法がわかりません。この記事では、Win10 システムでユーザー プロファイルを設定する方法を説明します。 Win10 でユーザー プロファイルを設定する方法 1. まず、「Win+I」キーを押して設定インターフェイスを開き、クリックして「システム」設定に入ります。 2. 次に、開いたインターフェースで、左側の「バージョン情報」をクリックし、「システムの詳細設定」を見つけてクリックします。 3. 次に、ポップアップ ウィンドウで「」オプション バーに切り替え、下の「ユーザー構成」をクリックします。

Yolov10: 詳細な説明、展開、アプリケーションがすべて 1 か所にまとめられています。 Yolov10: 詳細な説明、展開、アプリケーションがすべて 1 か所にまとめられています。 Jun 07, 2024 pm 12:05 PM

1. はじめに ここ数年、YOLO は、計算コストと検出パフォーマンスの効果的なバランスにより、リアルタイム物体検出の分野で主流のパラダイムとなっています。研究者たちは、YOLO のアーキテクチャ設計、最適化目標、データ拡張戦略などを調査し、大きな進歩を遂げました。同時に、後処理に非最大抑制 (NMS) に依存すると、YOLO のエンドツーエンドの展開が妨げられ、推論レイテンシに悪影響を及ぼします。 YOLO では、さまざまなコンポーネントの設計に包括的かつ徹底的な検査が欠けており、その結果、大幅な計算冗長性が生じ、モデルの機能が制限されます。効率は最適ではありませんが、パフォーマンス向上の可能性は比較的大きくなります。この作業の目標は、後処理とモデル アーキテクチャの両方から YOLO のパフォーマンス効率の境界をさらに改善することです。この目的を達成するために

Ubuntu に Helm をインストールする Ubuntu に Helm をインストールする Mar 20, 2024 pm 06:41 PM

Helm は Kubernetes の重要なコンポーネントであり、構成ファイルを HelmChart というパッケージにバンドルすることで Kubernetes アプリケーションのデプロイを簡素化します。このアプローチにより、複数のファイルを変更するよりも単一の構成ファイルを更新する方が便利になります。 Helm を使用すると、ユーザーは Kubernetes アプリケーションを簡単にデプロイできるため、デプロイメント プロセス全体が簡素化され、効率が向上します。このガイドでは、Ubuntu に Helm を実装するさまざまな方法について説明します。注: 次のガイドのコマンドは、Ubuntu 22.04、すべての Ubuntu バージョン、および Debian ベースのディストリビューションに適用されます。これらのコマンドはテストされており、システム上で正しく動作するはずです。 Uで

PHP FFmpeg 拡張機能をサーバーにインストールするにはどうすればよいですか? PHP FFmpeg 拡張機能をサーバーにインストールするにはどうすればよいですか? Mar 28, 2024 pm 02:39 PM

PHPFFmpeg拡張機能をサーバーにインストールするにはどうすればよいですか? PHPFFmpeg 拡張機能をサーバーにインストールすると、PHP プロジェクトでオーディオ ファイルとビデオ ファイルを処理し、オーディオ ファイルとビデオ ファイルのエンコード、デコード、編集、処理などの機能を実装できます。この記事では、PHPFFmpeg 拡張機能をサーバーにインストールする方法と、具体的なコード例を紹介します。まず、PHP と FFmpeg がサーバーにインストールされていることを確認する必要があります。 FFmpeg がインストールされていない場合は、以下の手順に従って FFmpe をインストールできます。

PHP を使用して Web サイトを展開および維持する方法 PHP を使用して Web サイトを展開および維持する方法 May 03, 2024 am 08:54 AM

PHP Web サイトを正常に展開して維持するには、次の手順を実行する必要があります。 Web サーバー (Apache や Nginx など) を選択する PHP をインストールする データベースを作成して PHP に接続する コードをサーバーにアップロードする ドメイン名と DNS を設定する Web サイトのメンテナンスを監視する手順には、PHP および Web サーバーの更新、Web サイトのバックアップ、エラー ログの監視、コンテンツの更新が含まれます。

See all articles