溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

EpiiServer是什么

發(fā)布時(shí)間:2020-11-03 13:40:59 來源:億速云 閱讀:131 作者:小新 欄目:編程語言

小編給大家分享一下EpiiServer是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

EpiiServer是什么

更快捷更方便的php+nginx多應(yīng)用部署環(huán)境。

github倉庫首頁

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

gitee倉庫

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

特性:

  1. 多應(yīng)用快速部署,域名自動(dòng)生成。
  2. 每個(gè)應(yīng)用可設(shè)置自己php的版本。
  3. 每個(gè)應(yīng)用可設(shè)置自己的環(huán)境變量。
  4. 域名與目錄自動(dòng)綁定,支持5級域名自動(dòng)綁定目錄。
  5. 與wamp等集成環(huán)境相比,更加側(cè)重定制化配置,而非環(huán)境的安裝。

解決了什么問題?

先不說怎么安裝,先看看你是否需要本應(yīng)用。

1、本地多個(gè)網(wǎng)站,域名自動(dòng)生成。


也許你會(huì)說直接用 http://localhost/app1http://localhost/app2 來訪問兩個(gè)網(wǎng)站不就行了。
確實(shí)可以。但如果各自設(shè)定自己的域名呢?比如 http://app1.loc.comhttp://app2.loc.com ,如果你有這個(gè)想法,本軟件很輕松可幫你實(shí)現(xiàn)。

如下目錄

web -- App集合目錄
    app3
        index.php --入口文件
    app4
        application
        public
            index.php --入口文件
    app5
        dir1
        dir2
            dir3
                index.php --入口文件

域名自動(dòng)為

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

你需要做的事情(唯一要做的)僅僅是在host文件中讓app3.loc.compublic.app4.loc.com,dir3.dir2.app5.loc.com 指向你的ip

EpiiServer根目錄下的web目錄為app的項(xiàng)目集合目錄,只要你把你的app放進(jìn)這個(gè)目錄,自動(dòng)會(huì)生成上述的域名。
疑問1

上面中域名loc.com 是什么?
他是你所有app的根域名。任何一個(gè)app將子對轉(zhuǎn)化為域名 {appname}.loc.com,目錄訪問自動(dòng)為 dir3.dir2.dir1.{appname}.loc.com。

如果想設(shè)置自己的根域名只需在config.ini(下載后請復(fù)制config.ini.exampleconfig.ini)在[server]下設(shè)置

[server]
domain_this=you.domain.com
  • 如果你用dns服務(wù)器來實(shí)現(xiàn)域名的泛解析那么您將不需要在hosts文件中設(shè)置域名指向。
  • 任何app均以根域名為基礎(chǔ)產(chǎn)生的多級域名。其它格式的域名不支持。
  • 如果某個(gè)app有另一個(gè)域名如www.web.com 那么您可以在dns服務(wù)商使用cname的方式解析到本app的本地域名。

    疑問2

也許你會(huì)問,我的項(xiàng)目都在另個(gè)目錄下面,是不是必須復(fù)制到EpiiServer根目錄下的web目錄下才行呢?當(dāng)然不是。

只需在config.ini[server]下設(shè)置

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

www_dir為絕對路徑,一定不要包含中文

疑問3

按照上述方法設(shè)置了我的app集合目錄,但仍有個(gè)別app(或很多)分布在其它目錄,是不是需要復(fù)制到app集合目錄下?當(dāng)然不是。

比如我的 app6 放在了另一個(gè)目錄 "c:\workplace\app6",只需在config.ini[app_dir]下設(shè)置

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

目錄為絕對路徑,不包含中文。

這種情況下域名 app6.loc.com ,app7.loc.com 將指向你設(shè)置的路徑。同樣支持子目錄轉(zhuǎn)化為域名 ,
app6 的入口文件為 c:\workplace\app6\public\index.php,則訪問

http://public.app6.loc.com

其實(shí)上述設(shè)置是不科學(xué)的,直接把a(bǔ)pp6的目錄指向public更好

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

這樣你的域名將簡化為app6.loc.com

技巧
在上面web下app5中,為了訪問入口文件 我們需要 訪問 
`http://dir3.dir2.app5.loc.com` 這個(gè)域名才可以,如果想簡化為 `http://app5.loc.com`,
只需把 dir3的絕對路徑設(shè)置為`app5`的路徑即可。app5=/path/to/app5/dir2/dir3
疑問4

直接訪問ip會(huì)怎么樣?

直接訪問ip和其它繼承環(huán)境一樣了。

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

能不能當(dāng)我訪問ip的時(shí)候,默認(rèn)指定一個(gè)app呢。比如訪問ip直接訪問 app1
只需在config.ini[server]下設(shè)置

[server]
default_app=app1

設(shè)置完后,當(dāng)訪問 http://127.0.0.1/ 時(shí)候?qū)⒅苯又赶蛄?code>app1。

ip 訪問的作用在于別人對你電腦的訪問。當(dāng)然別人也可以在他hosts文件中綁定 app1.loc.com 到你的ip,直接訪問域名也可以

2、多個(gè)php版本共存。


多年的php工作者,對著php技術(shù)更新,及php版本的更新。你的項(xiàng)目分別設(shè)置了不同的php的最低版本。

例如

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

如果這些應(yīng)用共存,您有什么解決方法。

解決方法很簡單。首先下載多個(gè)版本的php。然后在config.ini[php]模塊設(shè)置。

window 使用的是php-cgi.exe,所以只需要指定每一個(gè)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的區(qū)別,大家自己查)

[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 里設(shè)置了端口。上面設(shè)置的端口一定要和各個(gè)版本的 php-fpm.conf中的端口一致。而php-cgi 只需設(shè)置端口即可。

通過上述設(shè)置php多版本后,默認(rèn)的所有應(yīng)用都設(shè)置為第一個(gè)php版本,即php_cgi[0]的設(shè)置。

為了實(shí)現(xiàn)

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

需在在config.ini[app_php_select]模塊設(shè)置各自的php版本id

[app_php_select]
app9=1
app0=2

app8無需設(shè)置,因?yàn)樗械膽?yīng)用默認(rèn)都使用第一個(gè)php版本

3、環(huán)境變量設(shè)置。

大家肯定會(huì)遇到這些問題

  • app的開發(fā)和部署使用的數(shù)據(jù)庫參數(shù)不一樣。如何有效分離。
  • 很多人在使用git作為團(tuán)隊(duì)合作方式。如何讓重要的賬號和密碼不受版本控制。

上述問題,有很多解決方案,但更方便更科學(xué)的方式為通過環(huán)境變量設(shè)置賬號和密碼,使得程序和重要賬號完全分離。

在不同的環(huán)境下(window,linux,iis,apache,nginx)設(shè)置php環(huán)境變量的方式不一樣,

在php獲取環(huán)境變量的方式是一樣的

這樣使得我們的應(yīng)用程序代碼無需任何修改,只需在環(huán)境中設(shè)置了環(huán)境變量即可。

php中通過 $_EVN,或者 getenv() 來獲取指定的環(huán)境變量值。

現(xiàn)有的方式設(shè)置的環(huán)境變量,往往是針對所有app都生效的。這意味著如果我有多個(gè)項(xiàng)目,每一個(gè)項(xiàng)目都是共享這些環(huán)境變量,這樣的結(jié)果為:

  • 不方便。app11app12 的數(shù)據(jù)庫名稱,我們必須設(shè)置兩個(gè)環(huán)境變量,如 DBNAMA_APP11, DBNAMA_APP12。然后分別獲取。
  • 不安全。在app11中仍然可以獲取到app12 的環(huán)境變量。
使用 EpiiServer 這些問題將變得很容易解決。

我們的需求是:

1、app11 需要把數(shù)據(jù)庫信息設(shè)置為環(huán)境變量 分別為

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

2、app12 需要把數(shù)據(jù)庫信息設(shè)置為環(huán)境變量 分別為

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

我們只需在config.ini[php_env]模塊設(shè)置各自的環(huán)境變量

[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'] 即可獲取到相應(yīng)的 DB_HOST

阿里云和微軟云等云平臺都有設(shè)置環(huán)境變量的方法。

如何安裝

EpiiServer 側(cè)重的是nginx php 安裝后的靈活配置,而非 nginx php本身的安裝。

所以在安裝EpiiServer之前你需要(必須)

1、根據(jù)自己的系統(tǒng)下載nginx,并且明白安裝路徑及配置文件路徑。

2、根據(jù)自己的需要下載安裝php,可下載多個(gè)版本。

3、window 用戶須知道安裝的各個(gè)php版本路徑及php-cgi的位置,并且每個(gè)版本可以成功運(yùn)行

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

4、linux,unix 用戶須知道安裝的各個(gè)php版本路徑及php-fpm的位置和php-fpm.conf的路徑,分別修改php-fpm.conf文件 ,并成功運(yùn)行

/path/to/php-fpm

EpiiServer 倉庫首頁

gitee倉庫
https://gitee.com/epii/epii-server
github倉庫首頁
https://github.com/epaii/epii-server

下載或clone到本地后,

1、請復(fù)制config.ini.exampleconfig.ini,按照配置文件的提示配置自己的項(xiàng)目。

2、請運(yùn)行項(xiàng)目下install/install.php 文件進(jìn)行安裝

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

安裝只需一次,安裝后,會(huì)自動(dòng)生成啟動(dòng),停止運(yùn)行文件。

window自動(dòng)生成的文件為:

  • start.bat 啟動(dòng)服務(wù)
  • stop.bat 停止服務(wù)

linux unix 自動(dòng)生成的文件為:

  • start.sh 啟動(dòng)服務(wù)
  • stop.sh 停止服務(wù)

配置文件修改后記得 先關(guān)閉服務(wù),再啟動(dòng)。

配置文件

[server]
;本機(jī)ip地址和端口
this_ip = 192.169.0.169
this_port = 6688
;本機(jī)域名前綴
domain_this = this.jt
;web項(xiàng)目路徑,此路徑下每一個(gè)文件夾會(huì)當(dāng)做一個(gè)應(yīng)用,如果某一個(gè)項(xiàng)目不想放在此目錄下,可以再app_dir中單獨(dú)設(shè)置

;www_dir 為網(wǎng)站根目錄,默認(rèn)為web目錄,如果設(shè)置請?jiān)O(shè)置絕對路徑
;www_dir = /Users/mrren/Documents/phpworkspace/EpiiWeb/web

;default_app = web1
;本程序以php為腳本安裝和啟動(dòng)服務(wù),指定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,設(shè)置的端口將被啟用。如果是php-fpm 請確保此端口和php-fpm.conf中一致(php-fpm.conf 需手動(dòng)修改,多個(gè)php版本一定要設(shè)置不同的端口)
port[0] = 9000
php_cgi[1] = php-fpm
port[1] = 9001
[app_dir]
;如果你的應(yīng)用不在www_dir下,請指定項(xiàng)目路徑(必須為絕對路徑)
;app1 = /Users/mrren/Documents/phpworkspace/jianguan
;epiiadmin=/Users/mrren/Documents/phpworkspace/EpiiWeb/web/epiiadmin/public


[app_php_select]
;默認(rèn)所有的php版本自動(dòng)為php_cgi[0] 的版本,如果有特殊需求請?jiān)谶@里設(shè)置
epiiadmin = 1

[php_env]
epiiadmin[db_hostname] = zhengxin

大部分參數(shù)在上述教程已經(jīng)涉及到。重點(diǎn)介紹

[server] 下的 php_cmd

[server]
php_cmd=php

EpiiServer本身是基于php的(并非你的網(wǎng)站),如果你的php在環(huán)境變量PATH下,則直接為默認(rèn)配置即可。 如果不是。linux,unix 用戶 為path/to/php,window用戶為paht/to/php.exe

以上是EpiiServer是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI