EpiiServer 简易的php+nginx环境定制化方案-php教程

资源魔 35 0
本篇文章将以及各人一同意识一个软件名叫EpiiServer,他能够更快捷更不便的为php+nginx多使用部署环境,十分适宜开发者应用,感兴味的冤家能够理解一下。

EpiiServer是甚么

更快捷更不便的php+nginx多使用部署环境。

github仓库首页

https://github.com/epaii/epii-server

gitee仓库

https://gitee.com/epii/epii-server

特点:

  1. 多使用疾速部署,域名主动天生。
  2. 每一个使用可设置本人php的版本。
  3. 每一个使用可设置本人的环境变量。
  4. 域名与目次主动绑定,支持5级域名主动绑定目次。
  5. 与wamp等集成环境相比,愈加偏重定制化设置装备摆设,而非环境的装置。

处理了甚么成绩?

先没有说怎样装置,先看看你能否需求本使用。

一、内陆多个网站,域名主动天生。


兴许你会说间接用 http://localhost/app1 以及 http://localhost/app2 来拜访两个网站没有就好了。
的确能够。但若各自设定本人的域名呢?比方 http://app1.loc.com 以及 http://app2.loc.com ,假如你有这个设法主意,本软件很轻松可帮你完成。

以下目次

web -- App荟萃目次
    app3
        index.php --入口文件
    app4
        application
        public
            index.php --入口文件
    app5
        dir1
        dir2
            dir3
                index.php --入口文件

域名主动为

http://app3.loc.com
http://public.app4.loc.com
http://dir3.dir2.app5.loc.com

你需求做的事件(惟一要做的)仅仅是正在host文件中让app3.loc.com 以及 public.app4.loc.comdir3.dir2.app5.loc.com 指向你的ip

EpiiServer根目次下的web目次为app的名目荟萃目次,只需你把你的app放进这个目次,主动会天生上述的域名。

疑难1

下面中域名loc.com 是甚么?
他是你一切app的根域名。任何一个app将子对转化为域名 {appname}.loc.com,目次拜访主动为 dir3.dir2.dir1.{appname}.loc.com

假如想设置本人的根域名只要正在config.ini(下载后请复制config.ini.exampleconfig.ini)正在[server]下设置

[server]
domain_this=you.domain.com
  • 假如你用dns效劳器来完成域名的泛解析那末您将没有需求正在hosts文件中设置域名指向。
  • 任何app均以根域名为根底孕育发生的多级域名。其它格局的域名没有支持。
  • 假如某个app有另外一个域名如www.web.com 那末您能够正在dns效劳商应用cname的形式解析到本app的内陆域名。

    疑难2

兴许你会问,我的名目都正在另个目次上面,是否是必需复制到EpiiServer根目次下的web目次下才行呢?当然没有是。

只要正在config.ini[server]下设置

[server]
www_dir=/path/to/your/www

www_dir为相对门路,肯定没有要蕴含中文

疑难3

依照上述办法设置了我的app荟萃目次,但仍有个体app(或不少)散布正在其它目次,是否是需求复制到app荟萃目次下?当然没有是。

比方我的 app6 放正在了另外一个目次 "c:\workplace\app6",只要正在config.ini[app_dir]下设置

[app_dir]
app6=c:\workplace\app6
app7=/path/to/app7

目次为相对门路,没有蕴含中文。

这类状况下域名 app6.loc.com ,app7.loc.com 将指向你设置的门路。一样支持子目次转化为域名 ,
app6 的入口文件为 c:\workplace\app6\public\index.php,则拜访

http://public.app6.loc.com

其实上述设置是没有迷信的,间接把app6的目次指向public更好

[app_dir]
app6=c:\workplace\app6\public

这样你的域名将简化为app6.loc.com

技术

正在下面web下app5中,为了拜访入口文件 咱们需求 拜访 
`http://dir3.dir2.app5.loc.com` 这个域名才能够,假如想简化为 `http://app5.loc.com`,
只要把 dir3的相对门路设置为`app5`的门路便可。app5=/path/to/app5/dir2/dir3

疑难4

间接拜访ip会怎样样?

间接拜访ip以及其它承继环境同样了。

http://127.0.0.1/app1
http://127.0.0.1/app2/dir1/dir2/index.php

能不克不及当我拜访ip的时分,默许指定一个app呢。比方拜访ip间接拜访 app1
只要正在config.ini[server]下设置

[server]
default_app=app1

设置完后,当拜访 http://127.0.0.1/ 时分将间接指向了app1

ip 拜访的作用正在于他人对你电脑的拜访。当然他人也能够正在他hosts文件中绑定 app1.loc.com 到你的ip,间接拜访域名也能够

二、多个php版本共存。


多年的php工作者,对着php技巧更新,及php版本的更新。你的名目辨别设置了没有同的php的最低版本。

例如

  • app8支持版本为php5.6
  • app9支持版本为php7.1
  • app10支持版本为php7.2

假如这些使用共存,您有甚么处理办法。

处理办法很简略。起首下载多个版本的php。而后正在config.ini[php]模块设置。

window 应用的是php-cgi.exe,以是只要要指定每个php版本的php-cgi.exe门路,及端口便可。

[php]
php_cgi[0] = c:\path\to\php5.6\php-cgi.exe
port[0] = 9000

php_cgi[1] = c:\path\to\php7.1\php-cgi.exe
port[1] = 9001

php_cgi[2] = c:\path\to\php7.3\php-cgi.exe
port[2] = 9002

linux,unix下应用的是php-fpm(php-cgi,fastcgi,php-fpm的区分,各人本人查)

[php]
php_cgi[0] = /path/to/php5.6/sbin/php-fpm
port[0] = 9000

php_cgi[1] =/path/to/php7.1/sbin/php-fpm
port[1] = 9001

php_cgi[2] = /path/to/php7.2/sbin/php-fpm
port[2] = 9002

留意:php-fpm的设置装备摆设文件 php-fpm.conf 里设置了端口。下面设置的端口肯定要以及各个版本的 php-fpm.conf中的端口分歧。而php-cgi 只要设置端口便可。

经过上述设置php多版本后,默许的一切使用都设置为第一个php版本,即php_cgi[0]的设置。

为了完成

  • app8支持版本为php5.6
  • app9支持版本为php7.1
  • app10支持版本为php7.2

需正在正在config.ini[app_php_select]模块设置各自的php版本id

[app_php_select]
app9=1
app0=2

app8无需设置,由于一切的使用默许都应用第一个php版本

三、环境变量设置。

各人一定会遇到这些成绩

  • app的开发以及部署应用的数据库参数纷歧样。若何无效别离。
  • 不少人正在应用git作为团队协作形式。若何让首要的账号以及明码没有受版本管制。

上述成绩,有不少处理计划,但更不便更迷信的形式为经过环境变量设置账号以及明码,使患上顺序以及首要账号齐全别离

正在没有同的环境下(window,linux,iis,apache,nginx)设置php环境变量的形式纷歧样,

正在php猎取环境变量的形式是同样的

这样使患上咱们的使用顺序代码无需任何修正,只要正在环境中设置了环境变量便可。

php中经过 $_EVN,或许 getenv() 来猎取指定的环境变量值。

现有的形式设置的环境变量,往往是针对一切app都失效的。这象征着假如我有多个名目,每个名目都是同享这些环境变量,这样的后果为:

  • 没有不便。app11app12 的数据库称号,咱们必需设置两个环境变量,如 DBNAMA_APP11, DBNAMA_APP12。而后辨别猎取。
  • 没有平安。正在app11中依然能够猎取到app12 的环境变量。

应用 EpiiServer 这些成绩将变患上很容易处理。

咱们的需要是:

一、app11 需求把数据库信息设置为环境变量 辨别为

DB_HOST=192.168.1.100
DB_NAME=ceshi
DB_USER=username
DB_PWD=password

二、app12 需求把数据库信息设置为环境变量 辨别为

DB_HOST=192.168.1.102
DB_NAME=ceshi2
DB_USER=username2
DB_PWD=password2

咱们只要正在config.ini[php_env]模块设置各自的环境变量

[php_env]
app11[DB_HOST] = 192.168.1.100
app11[DB_NAME] = ceshi
app11[DB_USER] = username
app11[DB_PWD] = password

app12[DB_HOST] = 192.168.1.102
app12[DB_NAME] = ceshi2
app12[DB_USER] = username2
app12[DB_PWD] = password2

正在顺序中应用 $_ENV['DB_HOST'] 便可猎取到相应的 DB_HOST

阿里云以及微软云等云平台都有设置环境变量的办法。

若何装置

EpiiServer 偏重的是nginx php 装置后的灵敏设置装备摆设,而非 nginx php自身的装置。

以是正在装置EpiiServer以前你需求(必需)

一、依据本人的零碎下载nginx,而且明确装置门路及设置装备摆设文件门路。

二、依据本人的需求下载装置php,可下载多个版本。

三、window 用户须晓得装置的各个php版本门路及php-cgi的地位,而且每一个版本能够胜利运转

/path/to/php-cgi.exe -b 127.0.0.1:9000

四、linux,unix 用户须晓得装置的各个php版本门路及php-fpm的地位以及php-fpm.conf的门路,辨别修正php-fpm.conf文件 ,并胜利运转

/path/to/php-fpm

EpiiServer 仓库首页

gitee仓库

https://gitee.com/epii/epii-server

github仓库首页

https://github.com/epaii/epii-server

下载或clone到内陆后,

一、请复制config.ini.exampleconfig.ini,依照设置装备摆设文件的提醒设置装备摆设本人的名目。

二、请运转名目下install/install.php 文件进行装置

path/to/php ./install/install.php

装置只要一次,装置后,会主动天生启动,中止运转文件。

window主动天生的文件为:

  • start.bat 启动效劳
  • stop.bat 中止效劳

linux unix 主动天生的文件为:

  • start.sh 启动效劳
  • stop.sh 中止效劳

设置装备摆设文件修正跋文患上 先封闭效劳,再启动。

设置装备摆设文件

[server]
;本机ip地点以及端口
this_ip = 192.169.0.169
this_port = 6688
;本机域名前缀
domain_this = this.jt
;web名目门路,此门路下每个文件夹会当作一个使用,假如某一个名目没有想放正在此目次下,能够再app_dir中独自设置

;www_dir 为网站根目次,默许为web目次,假如设置请设置相对门路
;www_dir = /Users/mrren/Documents/phpworkspace/EpiiWeb/web

;default_app = web1
;本顺序以php为剧本装置以及启动效劳,指定php饬令地点,普通为php.exe的文件门路
php_cmd=php

[nginx]
;nginx 文件地点; linux or unix 请指定nginx文件地点便可
cmd = /usr/local/Cellar/nginx/1.15.0/bin/nginx
nginx_config_file = /usr/local/etc/nginx/nginx.conf
[php]
;window下 php-cgi.exe 的门路,linux 下 php-fpm 门路
php_cgi[0] = /usr/local/Cellar/php\@7.1/7.1.19/sbin/php-fpm
;假如应用php-cgi,设置的端口将被启用。假如是php-fpm 请确保此端口以及php-fpm.conf中分歧(php-fpm.conf 需手动修正,多个php版本肯定要设置没有同的端口)
port[0] = 9000
php_cgi[1] = php-fpm
port[1] = 9001
[app_dir]
;假如你的使用没有正在www_dir下,请指定名目门路(必需为相对门路)
;app1 = /Users/mrren/Documents/phpworkspace/jianguan
;epiiadmin=/Users/mrren/Documents/phpworkspace/EpiiWeb/web/epiiadmin/public


[app_php_select]
;默许一切的php版本主动为php_cgi[0] 的版本,假如有非凡需要请正在这里设置
epiiadmin = 1

[php_env]
epiiadmin[db_hostname] = zhengxin

年夜局部参数正在上述教程曾经触及到。重点引见

[server] 下的 php_cmd

[server]
php_cmd=php

EpiiServer自身是基于php的(并不是你的网站),假如你的php正在环境变量PATH下,则间接为默许设置装备摆设便可。 假如没有是。linux,unix 用户 为path/to/php,window用户为paht/to/php.exe

最初心愿EpiiServer能给您带来协助。让您更多的工夫去研发产物,而非环境搭建。

相干教程:PHP视频教程

以上就是EpiiServer 繁难的php+nginx环境定制化计划的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 nginx EpiiServer

抱歉,评论功能暂时关闭!