配置文件在正式服務(wù)器上的部署
Jun 06, 2016 pm 07:37 PM配置文件在正式服務(wù)器上的部署。 從文件服務(wù)器下載配置文件,備份并替換本地的配置文件,將配置文件壓縮成zip格式 無 ?phpheader("Content-Type:text/html;charset=utf-8");include 'tz.php';/** * 執(zhí)行配置文件的壓縮 * Created by PhpStorm. * User: saint
配置文件在正式服務(wù)器上的部署。
從文件服務(wù)器下載配置文件,備份并替換本地的配置文件,將配置文件壓縮成zip格式
<?php header("Content-Type:text/html;charset=utf-8"); include 'tz.php'; /** * 執(zhí)行配置文件的壓縮 * 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 文件服務(wù)器地址 */ public $file_server = ''; public $cfg_path = ''; public $temp_path = ''; public $zip_file = ''; /** * 環(huán)境初始化 */ 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('臨時(shí)配置目錄不存在或者不可寫'); } if(function_exists('file_get_contents') == false) { throw new Exception('file_get_contents函數(shù)已禁用'); } if(function_exists('file_put_contents') == false) { throw new Exception('file_put_contents函數(shù)已禁用'); } 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(); // 依次從服務(wù)器上下載配置文件 foreach($this->cfg_files as $filename) { $tmp_file = $this->temp_path . '/' . $filename; $remote_file = $this->file_server . '/' . $filename; // 檢查本地是否存在臨時(shí)文件,如果有,則檢查這個(gè)文件本地文件是否一致 $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; } // 對(duì)配置文件進(jìn)行壓縮 try { $this->compressFiles(); } catch (Exception $e) { echo $e->getMessage(); exit; } $limit = microtime(true) - $start; echo '<p>生成壓縮文件成功,本次耗時(shí):' . $limit . 's</p>'; echo '<p>開始替換原來的配置文件</p>'; $this->replaceFiles(); // 插入數(shù)據(jù)庫 echo '<p>替換完畢</p>'; } // 替換原來的文件 public function replaceFiles() { // 打開配置目錄,創(chuàng)建備份目錄 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); } } /** * 執(zhí)行壓縮文件 * @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();

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le r?le d'un relais DHCP est de transmettre les paquets DHCP re?us vers un autre serveur DHCP du réseau, même si les deux serveurs se trouvent sur des sous-réseaux différents. En utilisant un relais DHCP, vous pouvez déployer un serveur DHCP centralisé dans le centre réseau et l'utiliser pour attribuer dynamiquement des adresses IP à tous les sous-réseaux/VLAN du réseau. Dnsmasq est un serveur de protocole DNS et DHCP couramment utilisé qui peut être configuré en tant que serveur relais DHCP pour faciliter la gestion des configurations d'h?tes dynamiques sur le réseau. Dans cet article, nous allons vous montrer comment configurer Dnsmasq comme serveur relais DHCP. Sujets de contenu?: Topologie du réseau Configuration d'adresses IP statiques sur un relais DHCP D sur un serveur DHCP centralisé

Dans la transmission de données sur réseau, les serveurs proxy IP jouent un r?le important, aidant les utilisateurs à masquer leurs véritables adresses IP, à protéger la confidentialité et à améliorer la vitesse d'accès. Dans cet article, nous présenterons le guide des meilleures pratiques sur la fa?on de créer un serveur proxy IP avec PHP et fournirons des exemples de code spécifiques. Qu'est-ce qu'un serveur proxy IP ? Un serveur proxy IP est un serveur intermédiaire situé entre l'utilisateur et le serveur cible. Il agit comme une station de transfert entre l'utilisateur et le serveur cible, transmettant les demandes et les réponses de l'utilisateur. En utilisant un serveur proxy IP

1. Introduction Au cours des dernières années, les YOLO sont devenus le paradigme dominant dans le domaine de la détection d'objets en temps réel en raison de leur équilibre efficace entre le co?t de calcul et les performances de détection. Les chercheurs ont exploré la conception architecturale de YOLO, les objectifs d'optimisation, les stratégies d'expansion des données, etc., et ont réalisé des progrès significatifs. Dans le même temps, le recours à la suppression non maximale (NMS) pour le post-traitement entrave le déploiement de bout en bout de YOLO et affecte négativement la latence d'inférence. Dans les YOLO, la conception de divers composants manque d’une inspection complète et approfondie, ce qui entra?ne une redondance informatique importante et limite les capacités du modèle. Il offre une efficacité sous-optimale et un potentiel d’amélioration des performances relativement important. Dans ce travail, l'objectif est d'améliorer encore les limites d'efficacité des performances de YOLO à la fois en post-traitement et en architecture de modèle. à cette fin

Récemment, de nombreux utilisateurs du système Win10 souhaitent modifier le profil utilisateur, mais ils ne savent pas comment le faire. Cet article vous montrera comment définir le profil utilisateur dans le système Win10?! Comment configurer un profil utilisateur dans Win10 1. Tout d'abord, appuyez sur les touches ? Win+I ? pour ouvrir l'interface des paramètres, puis cliquez pour accéder aux paramètres ? Système ?. 2. Ensuite, dans l'interface ouverte, cliquez sur ? à propos ? sur la gauche, puis recherchez et cliquez sur ? Paramètres système avancés ?. 3. Ensuite, dans la fenêtre contextuelle, passez à la barre d'options "" et cliquez sur "Configuration utilisateur" ci-dessous.

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne?? Ce problème a d? être rencontré par de nombreux amis. Lorsque cette invite appara?t, le jeu authentique ne peut pas être démarré. Ce problème est généralement d? à des interférences du réseau et du logiciel de sécurité. Alors, comment doit-il être résolu ? J'aimerais partager la solution avec vous, j'espère que le didacticiel logiciel d'aujourd'hui pourra vous aider à résoudre le problème. Que faire si le serveur Epic ne peut pas accéder au jeu lorsqu'il est hors ligne?: 1. Il peut être interféré par un logiciel de sécurité. Fermez la plateforme de jeu et le logiciel de sécurité, puis redémarrez. 2. La seconde est que le réseau fluctue trop. Essayez de redémarrer le routeur pour voir s'il fonctionne. Si les conditions sont correctes, vous pouvez essayer d'utiliser le réseau mobile 5g pour fonctionner. 3. Alors il y en aura peut-être plus

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

Helm est un composant important de Kubernetes qui simplifie le déploiement des applications Kubernetes en regroupant les fichiers de configuration dans un package appelé HelmChart. Cette approche rend la mise à jour d'un seul fichier de configuration plus pratique que la modification de plusieurs fichiers. Avec Helm, les utilisateurs peuvent facilement déployer des applications Kubernetes, simplifiant ainsi l'ensemble du processus de déploiement et améliorant l'efficacité. Dans ce guide, j'aborderai différentes manières d'implémenter Helm sur Ubuntu. Remarque?: les commandes du guide suivant s'appliquent à Ubuntu 22.04 ainsi qu'à toutes les versions d'Ubuntu et aux distributions basées sur Debian. Ces commandes sont testées et devraient fonctionner correctement sur votre système. en U

Selon des informations publiées sur ce site Web le 23 juillet, ASUS a lancé une variété de produits au niveau serveur et station de travail alimentés par des processeurs AMD EPYC série 4004. Note de ce site?: AMD a lancé en mai la plate-forme AM5 et les processeurs de la série EPYC 4004 à architecture Zen4, offrant jusqu'à 16 spécifications de cache 3DV c?urs. Serveur ASUSProER100AB6 ASUSProER100AB6 est un produit de serveur rack 1U équipé d'un processeur EPYC Xiaolong série 4004, adapté aux besoins d'IDC et des petites et moyennes entreprises. La station de travail ASUSExpertCenterProET500AB6 ASUSExpertCenterProET500AB6 est une
