PHP网站自动化配置的实现

一直都在用yii2做项目,有在用自动化配置,但是没有自己去配置过。中午没事去看了下yii的初始化代码,发现都是php而已!

yii2初始化项目代码

所以,我们做项目肯定是可以用php做的,于是我新建了个文件夹,名为autoConfig,里面创建了个init,里面写了如下代码:

if(!file_exists(‘./uploads/‘)){
  if(!mkdir(‘./uploads/‘)){
    echo ‘fail to make ./uploads/ file!‘;
  }else{
    echo ‘make ./uploads/ success!‘;
  }

}

也就是一个非常简单的自动创建uploads文件夹的代码,当uploads文件夹不存在时候,自动创建uploads文件夹。 我们在终端执行下:

自动创建配置

打开同级目录,发现uploads文件夹已经被创建。所以,如果我们要创建配置信息,可以直接采用php代码来配置,并没有什么很高深的东西。

我再写个demo2:

目标:

1.在网站根目录创建uploads目录

2.从common目录复制config.php模板到admin目录里面

3.在根目录生成一个install.lock文件

4.如果网站初始化后,必须删除根目录的install.lock,否则无法重复初始化

好了,我们看下我们现在的目录结构:

把init的代码改为如下:

<?php
//设置长连接,以便可视化看到每个步骤执行情况
header("Connection: Keep-Alive");
header("Proxy-Connection: Keep-Alive");
set_time_limit(0);
/*判断是否重复初始化*/
if(file_exists(‘./install.lock‘)){
  echo ‘系统已经初始化过了,如果要重新初始化,请删除install.lock‘."<br>";
}
/*创建uploads文件夹*/
if(!file_exists(‘./uploads/‘)){
  if(!mkdir(‘./uploads/‘)){
    echo ‘无法在根目录创建uploads文件夹‘."\n";
  }else{
    echo ‘uploads文件夹创建成功‘."\n";
  }
  /*创建/admin/config.php文件*/
if(!file_exists(‘./admin/config.php‘)){
  if(copy(‘./common/config.php‘,‘./admin/config.php‘)){
    echo ‘admin/config.php创建成功!‘."\n";
  }else{
    echo ‘admin/config.php创建失败!‘."\n";
  }
}
  /*生成安装锁install.lock*/
  touch(‘install.lock‘);
echo ‘配置结束,如果有配置失败的,请手工执行‘."\n";
  clearstatcache();
}
?>

在终端执行:

效果:

很显然,admin/config.php已经被创建,uploads目录也创建了,install.lock也有了。PHP实现自动化配置就是这么简单!

本人博客原文:PHP网站自动化配置的实现http://www.wangtuizhijia.com/archives/217

时间: 2024-10-12 21:46:46

PHP网站自动化配置的实现的相关文章

Spring Boot 探索系列 - 自动化配置篇

26. Logging Prev  Part IV. Spring Boot features  Next 26. Logging Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging,Log4J, Log4J2 an

网站服务器硬件配置 外行您也行

网站服务器硬件配置 外行您也行 你是否对服务器硬件配置兼容性一窍不通?是否觉得服务器租用满足不了自己的需求?是否BOSS为难您让去配置服务器? 一窍不通也木事,景安租用定制帮您排忧解难. 租用定制优势: 1,全新硬件:所有租用定制服务器均送产权,不存在库存问题等,所有硬件都是全新硬件 2,三年质保:现有页面的租用产品是33个月质保. 3,快速部署:当日下单,次日交付使用 4,节省投入:租用定制的价格,据调查低于同行同等配置的价格 5,7X24小时:享受无忧服务政策 6,顶级网络:目前,郑州多线机

Esxi自动化配置脚本

记录一下ESXi自动化配置脚本,脚本功能及脚本如下: 创建站点名称: 配置IP和vmotion IP及子网掩码 配置Vlan 删除默认端口组 增加vSwitch 设置NTP ##################################################################################################################### ##  $FileName: esx_conf.ps1 ##  $Version: 1.2

Let&#39;sencrypt认证的网站Https配置

推荐使用这个脚本,具体说明里面都有 https://github.com/xdtianyu/scripts/tree/master/le-dns 它是通过调用dns服务商的api更新txt记录实现,无需指定网站目录及dns解析,支持dnspod和cloudxns两大服务商 弄完之后看这篇文章配apache https://www.cloudxns.net/Support/detail/id/906.html ============ 我是分割线 ============= 先弄个文件夹放东西mk

AEAI Portal网站门户配置手册

1.概要 AEAI Portal门户平台专门为前端界面层集成而设计,具有开放.敏捷的特性,能够快速配置多异构系统(如:OA.ERP.MIS.CRM等)统一用户认证.单点登录.菜单集成.页面集成.页面剪切.资源适配,信息展现等,默认预置知识门户.综合门户.信息门户.移动门户等样例,本文主要介绍公司官方网站的配置方法. 2.预期读者 数通畅联内部技术人员 数通畅联合作伙伴技术人员 外部IT爱好者 3.名词介绍 主题:portal预置了一些主题,我们可以快速创建一个门户网站原型 装饰器:通过装饰器配置

Ansible自动化配置实战

Ansible自动化配置实战 1.Ansible基本概述 ? Ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行. 2. Ansible能做什么 ? ? ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作. ? 比如:同时在100台服务器上安装nginx服务,并在安装后启动服务. ? 比如:将某个文件一次性拷贝到100台服务器上. ? 比如:每当有新服务器加入工作环境时,你都要为新服

Ubuntu 16.04 163网易源设置(自动化配置脚本)

1.简介 1.1 介绍 ????很多时候,为了方便 操作,条件允许的情况下,直接 联网 进行安装,但是 系统 所配置的 apt源 配置的 url 地址 并非 国内的,获取资源很慢,所以 需要 配置成 国内的 源,本人 喜欢 163网易源,根据个人喜好 自行选择???? 1.2 操作系统 ## 本文操作系统 Ubuntu 16.04 amd64 ## 发行版本号 xenial # lsb_release -a ???? 2.apt 源 2.1 源备份 ## 备份原有的源配置文件 # cd /etc

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx 一.首先安装一些需要的软件包 首先更新CentOS上的软件包: yum –y update 安装一些需要的库: yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel fr

ASP.NET Core搭建多层网站架构【5.1-WebCore网站核心配置】

2020/01/29, ASP.NET Core 3.1, VS2019 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构[5.1-WebCore网站核心配置] 统一封装网站核心配置,注册跨域策略,实例化雪花算法,后期可扩展添加多语言支持 文章目录 此分支项目代码 本章节介绍了统一封装网站核心配置,注册跨域策略,实例化雪花算法,后期可扩展添加多语言支持 添加网站配置及跨域配置 在MS.WebApi应用程序appsettings.json中添加以下节点: "SiteSe