间接都在用yii2做项目,有在用自动化配置,然则从未和睦去陈设过。深夜空闲去看了下yii的初阶化代码,开掘都以php而已!
在centos部署yii2 advanced框架
手头闲置了一个阿里云的云服务器,干脆拿来布署五个yii2 advance框架,之后也能够在上边搭建自身的民用博客。话没多少说,撸起袖子开干。
这一次计划要求高达的靶子:
a、可访问的网址专门的工作景况端口10080(因域名还未有策动,就先用ip地址 端口访问卡塔 尔(阿拉伯语:قطر。
b、可访谈的网址测量试验情况端口10081。
c、可通过Git举行版本处理与迭代。git推入到远端时,代码即时更新至测验情形。
PHP运市价况提前备好,安装apache、php、MySQL,composer、git等, 此类的教程相当多能够尽情百度,保障php能健康在网页中实践,就足以起来安装yii2了,开工!
1、首先从yii2官方网址获取yii2_advanced的框架文件,解压至特定文件夹:
解压后的目录如上图。
2、创立空的git旅馆,为承袭框架内容做思量。
a、步向到希图寄放git的库房:cd /mnt/git
b、初始化git仓库:git init --bare yzz.git
c、建设构造能够选拔git的顾客:useradd gituser ; passwd gituser
d、之后授予git顾客访谈git仓库的权杖:chown -景逸SUV gituser:gituseryzz.git/
3、创制测验景况:
a、走入测量检验碰着的目录:cd /mnt/test
b、clone刚刚创立的空git仓库:git clone /mnt/git/yzz.git
c、将标准意况目录下的文本拷贝至测验处境目录:cp -a /www/project/. project/ #在乎这里的/www/project/后有二个点号,代表连同隐瞒文件一并复制,-a则能够会同文件权限属性大器晚成并复制。
4、以上即填充好了测验情形的数额,但当时git酒馆如故空的,大家将测验目录下的公文提交至git。
a、进入测量试验境况的目录:cd /mnt/test
PHP网站自动化配置的达成,php信任管理工具。b、提交当前有着文件:
git add .
git commit -m "first init"
git push
c、等提交成功今后用git log看看日志,已经付诸成功:
d、此外,为了让地面推入到长途的代码能活动同步至测验服,这里将test/project目录改进为git顾客全体,以让git的hooks脚本能够改正此目录下的文书,施行:chown -大切诺基 gituser:gituser /mnt/test/project
4、以上即成功了正规遭遇数据、测量检验蒙受数据及git意况的最初化。今后尝试在本土检出代码。在Windows的G:/xmapp/htdocs/施行git命令:
git clone gituser:xxx.xxx.xxx.xx:/mntgit/project.git project/
等待clone完结,本地的公文即联合完结。
5、今后享有的根基数据都筹算好了。离目的还会有三件事:1、让标准服和测量检验服目录能够由此浏览器访谈。2、正式性格很顽强在荆棘满途或巨大压力面前不屈或测量试验服的yii框架初阶化。3、当本地转移代码并经过git 达成push之后,代码需求活动同步至测量检验服。先来让正式服和测量检验服可访谈:
a、改革服务器apache的http.conf,扩展对10080及10081端口的监听。近些日子只要求yii2的前台部分可访谈,将网址根目录定至frontend/web。如下为测验际遇的apache配置,具体境况根据个体服务器情形开展布局:
b、同时改善fpm的布置,在php_admin_value[open_basedir前边加上正式遭遇及测验意况的目录。
c、实现以上中国人民解放军海军工程高校业作,重启apache和fpm,理论上就足以经过外界访问正式服和测量检验性格很顽强在艰难险阻或巨大压力面前不屈。那时候访问xxx.xxx.xxx.xx:10080就足以见见yii2输出的网页了,但因为yii框架并不曾初步化,这个时候会唤醒错误。
6、初叶化正式性格很顽强在荆棘载途或巨大压力面前不屈和测验服的数目。如有必要,本地也能够开始化,方法没什么分化,特别轻便,此处以开头化正式服为例。步入标准性格很顽强在艰难险阻或巨大压力面前不屈的project目录,试行:php init ,之后选拔1(测量检验蒙受可选拔0,便于开拓进度中定位难点卡塔尔,叁次确认“yes”,之后输入“all”,开头化即达成。当时访谈正式意况的10080端口,就足以见到符合规律的yii2框架了:
测量检验处境或本地的开始化也是同样,1个“php init”命令解决开头化。
最后多个职责,git自动提交。当本地提交并push代码后,要能够在测验服马上见效:
a、在/mnt/git/project.git/hooks中,新建post-receive文件:实践“cp -a post-update.sample post-receive“,张开post-receive,删除已部分拥有内容,并写入以下3行命令:
git --work-tree=/mnt/test/project checkout -f
cd /mnt/test/project
composer dump-autoload
保留后退出文件就ok了。之后只需在该地改正文件,用git推入远端就可以在测验服看见功能,待测量试验服牢固,再揭橥至正式服。
接轨须要选取数据库,则还要在project/common/config/main-local.php里填写数据库相关音信,可参照他事他说加以侦察yii2的法定文书档案实行。
如上,作为这次操作的笔录,希望对大家有着扶持
advanced框架 手头闲置了一个Ali云的云服务器,干脆拿来配置一个yii2 advance框架,之后也足以在地点搭建本身的私家博客。...
yii2初步化项目代码
于是,我们做项目必然是能够用php做的,于是自身新建了个文本夹,名称为autoConfig,里面成立了个init,里面写了如下代码:
#composer是什么
if(!file_exists('./uploads/')){ if(!mkdir('./uploads/')){ echo 'fail to make ./uploads/ file!'; }else{ echo 'make ./uploads/ success!'; }
}
Composer 是 PHP 的三个依赖管理工科具。它同意你发明项目所借助的代码库,它会在你的品类中为您安装他们。
也便是二个特别轻巧的自发性创造uploads文件夹的代码,当uploads文件夹官样文章时候,自动创立uploads文件夹。 大家在顶峰实施下:
composer出现此前大家php项目依赖管理半数以上都是手动管理,(当然也只怕会用到pear,pear是全局安装的卡塔尔。
自动创立布局
开垦同级目录,开采uploads文件夹已经被创制。所以,假诺大家要开创布局音讯,能够从来利用php代码来布局,并从未什么样很深邃的事物。
#Composer 消释了这个难点
自家再写个demo2:
a) 你有一个品类信任于若干个库。
目标:
b) 当中部分库正视于任何库。
1.在网址根目录创制uploads目录
PHP网站自动化配置的达成,php信任管理工具。c) 你阐明你所信任的东西。
2.从common目录复制config.php模板到admin目录里面
d) Composer 会寻觅哪位版本的包需求设置,并设置它们(将它们下载到你的花色中卡塔 尔(英语:State of Qatar)。
3.在根目录生成五个install.lock文件
4.要是网址起首化后,必得删除根目录的install.lock,不然不能再一次开首化
好了,大家看下大家前几天的目录结构:
#系统必要
把init的代码改为如下:
windows,linux,osx
<?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(); } ?>
php5.3.2
在终极试行:
git,svn,hg (决计于正视包用的版本调整卡塔 尔(英语:State of Qatar)
效果:
#安装
windows:
很通晓,admin/config.php已经被成立,uploads目录也创立了,install.lock也许有了。PHP完结自动化配置正是那般简单!
下载安装;
自己博客原来的作品:PHP网址自动化配置的得以达成
设置情形变量,任何目录下可平昔用 composer 命令;
*inux
curl -sS | php -- --install-dir=bin
mv composer.phar /usr/local/bin/composer
( composer.phar 是composer的二进制履行顺序,是叁个phar包 )
MAC
推荐brew安装
brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
设置到位之后,-v选项查看实际情况
#使用
composer重视管理通过 composer.json 文件配置依赖关系。
json结构,最关键的key是 require 定义重视关系;
{ "require": { "monolog/monolog": "1.0.*" }}
结构是 包名 :版本
包名格式:中间商/包名 这种布局的益处是运营多少人支出相仿的包名,通过经销商名称区分
版本:
~1.2 了然 >= 1.2, <2.0 最终二个点后边的能够变 ~1.2.3 >=1.2.3, < 1.3
依附关系安排好未来: composer install 会安装包到 vendor/包名 目录下 vendor目录推荐放在版本调控外(.gitignore卡塔 尔(英语:State of Qatar) 如下:
再正是会写一个 composer.lock 文件,里面详细记录安装的版本新闻,composer.lock 和 composer.json那八个文本必得步向版本调控中,那样别人最早化项目标时候就能够读取lock文件安装钦赐的本子,固然信赖包有新本子发表,减少了布置危机。(install程序首先检查有未有lock文件卡塔 尔(英语:State of Qatar)
composer install 运转进度:
是因为有墙,那2个站访谈不是很稳固,就算能访问到速度也异常的慢,刚强推荐 composer中中原人民共和国全量镜像 项目composer.json中加入如下配置:
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" }
}
详细参谋官方网站:
履新注重包:
php composer.phar update
只跟新贰个包
php composer.phar update monolog/monolog [...]
#机关加载
composer为大家做好了机动加载的操作,项目中我们只供给引入就可以:
require 'vendor/autoload.php';
也得以定义本人的autoload:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
}
}
注册叁个psr-4的autoload到App的命名空间,App命名空间映射到目录app 和vendor同级,校正autoload后必需重国民党的新生活运动行
composer install 以便重新生成autoload.php
psr-4:
composer dumpautoload
# 包
只要一个文书夹里含有 composer.json 它就是三个包,要是定义了多个require那是四个依赖于其他包的包。
项目自个儿便是叁个包 只是没闻明字 通过 composer.json 中的 name 来定义
{ "name": "acme/hello-world", "require": { "monolog/monolog": "1.0.*" }
}
#平台软件包
不是由composer安装的包视为平台软件包,如php本身 通过上面发号布令查看
出口结果中冒出的节制都得以用于定义信赖
# 使用composer管理项目
背景:团队里有自身的框架,库。将来内需做二个新类型。那个时候能够行使composer管理
步骤一
把公共的框架和库做成三个composer包, push到git上(svn也行卡塔尔国能访谈到就行
步骤二
在大家新类型的composer.json中,定义信任
澳门新浦京娱乐场网站,步骤三
推行 composer install 当时项目注重就能够自行安装。
末段目录结构如下:
万生龙活虎希图开源有些公共库,能够揭穿到 composer的packageist 地址: 提交项目就可以;
# yii2 分析
脚下主流php框架新本子都从头composer,如 yii2,laravel等;
{
"name": "yiisoft/yii2-app-basic", // 包名称 供应商/项目名 必须
"description": "Yii 2 Basic Project Template", // 包描述 最长意气风发行
对于要颁发的包是必须字段
"keywords": ["yii2", "framework", "basic", "project template"], //该包相关的关键词的数组。这几个可用于搜索和过滤
可选
"homepage": "",
// 该类型网址的 U福特ExplorerL 地址 可选
"type": "project",
// 包的装置类型,默以为 library 简单复制到vendor中。 project这象征近些日子包是一个连串,并不是一个库
"license": "BSD-3-Clause", // 许可协议
"support": { // 获取项目支撑的向有关音讯指标
"issues": "",
"forum": "",
"wiki": "",
"irc": "irc://irc.freenode.net/yii",
"source": ""
},
"minimum-stability": "stable", // 那定义了经过和睦过滤包的暗中同意行为
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.5",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*"
},
"require-dev": { // 这一个列表是为支付或测量检验等目标,额外列出的依据
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": { // 仅用于项目
"process-timeout": 1800 // 管理进度甘休时间
},
"scripts": { // Composer 允许你在安装进度中的种种阶段挂接脚本
"post-create-project-cmd": [
"yii\composer\Installer::postCreateProject"
]
},
"extra": { // 自便的,供 scripts 使用的额外数据
"yii\composer\Installer::postCreateProject": {
"setPermission": [
{
"runtime": "0777",
"web/assets": "0777",
"yii": "0755"
}
],
"generateCookieValidationKey": [
"config/web.php"
]
},
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
#常用命令
composer init 以相互的主意开创 composer.json
composer install 管理信赖关系,安装到vendor下
composer update 获取最新版本,并更新lock文件
composer search 寻觅信任
composer validate 有效性检查
越来越多音信参谋官方手册。
本文由澳门新浦京娱乐场网站发布于www.146.net,转载请注明出处:PHP网站自动化配置的达成,php信任管理工具