类别:PHP教程 / 日期:2019-12-01 / 浏览:246 / 评论: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等集成环境比拟,越发着重定制化设置,而非环境的装置。

处理了什么题目?

先不说怎样装置,先看看你是不是须要本运用。

1、当地多个网站,域名自动生成。

或许你会说直接用 http://localhost/app1http://localhost/app2 来接见两个网站不就行了。
确切能够。但假如各自设定自身的域名呢?比方 http://app1.loc.comhttp://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.compublic.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,直接接见域名也能够

2、多个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版本

3、环境变量设置。

人人肯定会碰到这些题目

  • app的开辟和布置运用的数据库参数不一样。怎样有用星散。
  • 许多人在运用git作为团队协作体式格局。怎样让主要的账号和暗码不受版本掌握。

上述题目,有许多处理计划,但更轻易更科学的体式格局为经由过程环境变量设置账号和暗码,使得顺序和主要账号完整星散

在差别的环境下(window,linux,iis,apache,nginx)设置php环境变量的体式格局不一样,

在php猎取环境变量的体式格局是一样的

如许使得我们的运用顺序代码无需任何修正,只需在环境中设置了环境变量即可。

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

现有的体式格局设置的环境变量,往往是针对一切app都见效的。这意味着假如我有多个项目,每一个项目都是同享这些环境变量,如许的效果为:

  • 不轻易。app11app12 的数据库称号,我们必需设置两个环境变量,如 DBNAMA_APP11, DBNAMA_APP12。然后离别猎取。
  • 不安全。在app11中依然能够猎取到app12 的环境变量。

运用 EpiiServer 这些题目将变得很轻易处理。

我们的需求是:

1、app11 须要把数据库信息设置为环境变量 离别为

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

2、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之前你须要(必需)

1、依据自身的体系下载nginx,而且邃晓装置途径及设置文件途径。

2、依据自身的须要下载装置php,可下载多个版本。

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

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

4、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到当地后,

1、请复制config.ini.exampleconfig.ini,依据设置文件的提醒设置自身的项目。

2、请运转项面前目今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环境定制化计划的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章