您好,登錄后才能下訂單哦!
小編給大家分享一下EpiiServer是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
更快捷更方便的php+nginx多應用部署環境。
https://github.com/epaii/epii-server
https://gitee.com/epii/epii-server
先不說怎么安裝,先看看你是否需要本應用。
也許你會說直接用 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.com
,dir3.dir2.app5.loc.com
指向你的ip
web
目錄為app的項目集合目錄,只要你把你的app放進這個目錄,自動會生成上述的域名。上面中域名loc.com
是什么?
他是你所有app
的根域名。任何一個app將子對轉化為域名 {appname}.loc.com
,目錄訪問自動為 dir3.dir2.dir1.{appname}.loc.com
。
如果想設置自己的根域名只需在config.ini
(下載后請復制config.ini.example
為 config.ini
)在[server]
下設置
[server] domain_this=you.domain.com
hosts
文件中設置域名指向。app
均以根域名
為基礎產生的多級域名。其它格式的域名不支持。如果某個app有另一個域名如www.web.com
那么您可以在dns服務商使用cname的方式解析到本app的本地域名。
也許你會問,我的項目都在另個目錄下面,是不是必須復制到EpiiServer根目錄下的web
目錄下才行呢?當然不是。
只需在config.ini
的[server]
下設置
[server] www_dir=/path/to/your/www
www_dir為絕對路徑,一定不要包含中文
按照上述方法設置了我的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
直接訪問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的最低版本。
例如
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版本
大家肯定會遇到這些問題
git
作為團隊合作方式。如何讓重要的賬號和密碼不受版本控制。上述問題,有很多解決方案,但更方便更科學的方式為通過環境變量
設置賬號和密碼,使得程序和重要賬號完全分離
。
在不同的環境下(window,linux,iis,apache,nginx)設置php環境變量
的方式不一樣,
但
這樣使得我們的應用程序代碼無需任何修改,只需在環境中設置了環境變量即可。
php中通過 $_EVN,或者 getenv() 來獲取指定的環境變量值。
現有的方式設置的環境變量,往往是針對所有app都生效的。這意味著如果我有多個項目,每一個項目都是共享這些環境變量,這樣的結果為:
app11
,app12
的數據庫名稱,我們必須設置兩個環境變量,如 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
倉庫首頁
https://gitee.com/epii/epii-server
https://github.com/epaii/epii-server
下載或clone到本地后,
1、請復制config.ini.example
為 config.ini
,按照配置文件的提示配置自己的項目。
2、請運行項目下install/install.php
文件進行安裝
path/to/php ./install/install.php
安裝只需一次,安裝后,會自動生成啟動,停止運行文件。
window自動生成的文件為:
linux unix 自動生成的文件為:
配置文件修改后記得 先關閉服務,再啟動。
[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是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。