Table des matières
Qu'est-ce qu'EpiiServer
Page d'accueil de l'entrepôt github
entrepôt gitee
Caractéristiques :
Quel problème a été résolu ?
1. Plusieurs sites Web locaux, les noms de domaine sont automatiquement générés.
Le répertoire web sous le répertoire racine d'EpiiServer est le répertoire de collection de projets de l'application. votre application dans ce répertoire, le nom de domaine ci-dessus sera automatiquement généré.
Question 1
3、环境变量设置。
在php获取环境变量的方式是一样的
使用 EpiiServer 这些问题将变得很容易解决。
如何安装
gitee仓库
github仓库首页
配置文件
Maison développement back-end tutoriel php Solution simple de personnalisation de l'environnement php+nginx EpiiServer

Solution simple de personnalisation de l'environnement php+nginx EpiiServer

Apr 26, 2019 pm 02:40 PM
nginx php

Cet article vous présentera un logiciel appelé EpiiServer. Il peut déployer des environnements pour plusieurs applications php+nginx plus rapidement et plus facilement. Il convient très bien aux développeurs intéressés.

Qu'est-ce qu'EpiiServer

Un environnement de déploiement multi-applications php+nginx plus rapide et plus pratique.

Page d'accueil de l'entrepôt github

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

entrepôt gitee

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

Caractéristiques :

  1. Déploiement rapide de plusieurs applications, génération automatique de noms de domaine.
  2. Chaque application peut définir sa propre version de php.
  3. Chaque application peut définir ses propres variables d'environnement.
  4. Le nom de domaine et le répertoire sont automatiquement liés, prenant en charge la liaison automatique du nom de domaine à 5 niveaux au répertoire.
  5. Par rapport aux environnements intégrés tels que wamp, il se concentre davantage sur la configuration personnalisée plutôt que sur l'installation de l'environnement.

Quel problème a été résolu ?

Ne parlons pas de la façon de l'installer. Vérifions d'abord si vous avez besoin de cette application.

1. Plusieurs sites Web locaux, les noms de domaine sont automatiquement générés.


Peut-être direz-vous qu'il ne suffit pas d'utiliser directement http://localhost/app1 et http://localhost/app2 pour accéder aux deux sites Internet.
Oui, effectivement. Mais que se passe-t-il si chacun définit son propre nom de domaine ? Par exemple, http://app1.loc.com et http://app2.loc.com, si vous avez cette idée, ce logiciel peut facilement vous aider à la réaliser.

L'annuaire suivant

web -- App集合目录
    app3
        index.php --入口文件
    app4
        application
        public
            index.php --入口文件
    app5
        dir1
        dir2
            dir3
                index.php --入口文件
Copier après la connexion

Le nom de domaine est automatiquement

http://app3.loc.com
http://public.app4.loc.com
http://dir3.dir2.app5.loc.com
Copier après la connexion

Tout ce que vous avez à faire (la seule chose à faire) c'est juste de mettez app3.loc.com et public.app4.loc.com, dir3.dir2.app5.loc.com pointez vers votre adresse IP

Le répertoire web sous le répertoire racine d'EpiiServer est le répertoire de collection de projets de l'application. votre application dans ce répertoire, le nom de domaine ci-dessus sera automatiquement généré.

Question 1

Quel est le nom de domaine loc.com ci-dessus ?
C'est le nom de domaine racine de tous vos app. N'importe quelle application convertit la sous-paire en nom de domaine {appname}.loc.com, et l'accès au répertoire se fait automatiquement dir3.dir2.dir1.{appname}.loc.com.

Si vous souhaitez définir votre propre nom de domaine racine, définissez simplement config.iniconfig.ini.exampleconfig.ini[server] sous

(veuillez copier
[server]
domain_this=you.domain.com
Copier après la connexion
vers
    après le téléchargement) Si vous utilisez un serveur DNS pour implémenter la pan-résolution des noms de domaine, vous n'aurez pas besoin de définir le nom de domaine pointant dans le fichier
  • . hosts
  • Any
  • est un nom de domaine multi-niveaux généré sur la base de app. Les noms de domaine dans d'autres formats ne sont pas pris en charge. 根域名
  • Si une application a un autre nom de domaine tel que

    , vous pouvez utiliser cname auprès du fournisseur de services DNS pour résoudre le nom de domaine local de l'application. www.web.com

    Question 2

Peut-être vous demanderez-vous, mes projets sont tous dans un autre répertoire Doivent-ils être copiés dans le répertoire

dans le répertoire racine de. EpiiServer ? Est-ce suffisant ? Bien sûr que non. web

Définissez simplement

config.ini[server]

www_dir comme chemin absolu sous
[server]
www_dir=/path/to/your/www
Copier après la connexion
de
. Assurez-vous de ne pas inclure la question chinoise

. 3

J'ai configuré mon répertoire de collection d'applications selon la méthode ci-dessus, mais il existe encore des applications (ou plusieurs) distribuées dans d'autres répertoires. Dois-je les copier dans le répertoire de collection d'applications ? Bien sûr que non.

Par exemple, si mon

est placé dans un autre répertoire app6, il me suffit de définir le répertoire "c:workplaceapp6"config.ini[app_dir]

comme chemin absolu sous
[app_dir]
app6=c:\workplace\app6
app7=/path/to/app7
Copier après la connexion
en
, n'inclut pas le chinois.

Dans ce cas le nom de domaine

,app6.loc.com pointera vers le chemin que vous avez défini. Il prend également en charge la conversion des sous-répertoires en noms de domaine. app7.loc.com Par exemple, si le fichier d'entrée de
est app6, accédez à c:workplaceapp6publicindex.php

http://public.app6.loc.com
Copier après la connexion
. En fait, les paramètres ci-dessus ne sont pas directement scientifiques. pointez le répertoire de app6 vers

Mieuxpublic

[app_dir]
app6=c:\workplace\app6\public
Copier après la connexion
De cette façon, votre nom de domaine sera simplifié en

app6.loc.com

Conseils

在上面web下app5中,为了访问入口文件 我们需要 访问 
`http://dir3.dir2.app5.loc.com` 这个域名才可以,如果想简化为 `http://app5.loc.com`,
只需把 dir3的绝对路径设置为`app5`的路径即可。app5=/path/to/app5/dir2/dir3
Copier après la connexion
Question 4

Accès direct à l'IP will Et si ?

L'accès direct à l'IP est le même que pour les autres environnements d'héritage.

http://127.0.0.1/app1
http://127.0.0.1/app2/dir1/dir2/index.php
Copier après la connexion
Puis-je spécifier un

par défaut lorsque j'accède à l'adresse IP ? Par exemple, pour accéder directement à app, app1 n'a besoin que de définir
config.ini sous [server] dans

Après avoir défini
[server]
default_app=app1
Copier après la connexion
, lors de l'accès à

, il pointera directement vers <. 🎜> . http://127.0.0.1/app1

Le rôle de l’accès IP réside dans l’accès des autres à votre ordinateur. Bien entendu, d'autres peuvent également lier app1.loc.com à votre IP dans leur fichier
, ou accéder directement au nom de domaine

hosts

2. Plusieurs versions de php coexistent.

Travailleur PHP depuis de nombreuses années, j'ai travaillé sur les mises à jour de la technologie PHP et les mises à jour de versions PHP. Vos projets ont respectivement différentes versions minimales de 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
Copier après la connexion

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
Copier après la connexion

注意: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
Copier après la connexion

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
Copier après la connexion

2、app12 需要把数据库信息设置为环境变量 分别为

DB_HOST=192.168.1.102
DB_NAME=ceshi2
DB_USER=username2
DB_PWD=password2
Copier après la connexion

我们只需在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
Copier après la connexion

在程序中使用 $_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
Copier après la connexion

4、linux,unix 用户须知道安装的各个php版本路径及php-fpm的位置和php-fpm.conf的路径,分别修改php-fpm.conf文件 ,并成功运行

/path/to/php-fpm
Copier après la connexion

EpiiServer 仓库首页

gitee仓库

https://gitee.com/epii/epii-server
Copier après la connexion

github仓库首页

https://github.com/epaii/epii-server
Copier après la connexion

下载或clone到本地后,

1、请复制config.ini.exampleconfig.ini,按照配置文件的提示配置自己的项目。

2、请运行项目下install/install.php 文件进行安装

path/to/php ./install/install.php
Copier après la connexion

安装只需一次,安装后,会自动生成启动,停止运行文件。

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
Copier après la connexion

大部分参数在上述教程已经涉及到。重点介绍

[server] 下的 php_cmd

[server]
php_cmd=php
Copier après la connexion

EpiiServer本身是基于php的(并非你的网站),如果你的php在环境变量PATH下,则直接为默认配置即可。 如果不是。linux,unix 用户 为path/to/php,window用户为paht/to/php.exe

最后希望EpiiServer能给您带来帮助。让您更多的时间去研发产品,而非环境搭建。

相关教程:PHP视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre nginx403 Comment résoudre nginx403 Apr 14, 2025 am 10:33 AM

Comment corriger l'erreur interdite Nginx 403? Vérifier les autorisations de fichier ou de répertoire; 2. Vérifier le fichier .htaccess; 3. Vérifiez le fichier de configuration NGINX; 4. Redémarrer Nginx. D'autres causes possibles incluent les règles de pare-feu, les paramètres de Selinux ou les problèmes d'application.

Comment démarrer Nginx dans Linux Comment démarrer Nginx dans Linux Apr 14, 2025 pm 12:51 PM

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Comment résoudre l'erreur Nginx403 Comment résoudre l'erreur Nginx403 Apr 14, 2025 pm 12:54 PM

Le serveur n'a pas l'autorisation d'accéder à la ressource demandée, ce qui donne une erreur NGINX 403. Les solutions incluent: vérifier les autorisations de fichiers. Vérifiez la configuration .htaccess. Vérifiez la configuration de Nginx. Configurez les autorisations Selinux. Vérifiez les règles du pare-feu. Dépanner d'autres causes telles que les problèmes de navigateur, les défaillances du serveur ou d'autres erreurs possibles.

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Comment résoudre le problème du domaine croisé nginx Comment résoudre le problème du domaine croisé nginx Apr 14, 2025 am 10:15 AM

Il existe deux façons de résoudre le problème du domaine transversal NGINX: modifiez les en-têtes de réponse transversale: ajoutez des directives pour autoriser les demandes de domaine croisé, spécifier des méthodes et des en-têtes autorisés et définir le temps du cache. Utilisez le module CORS: Activez les modules et configurez les règles CORS pour permettre des demandes, des méthodes, des en-têtes et du temps de cache.

Comment résoudre l'erreur Nginx304 Comment résoudre l'erreur Nginx304 Apr 14, 2025 pm 12:45 PM

Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.

Comment vérifier si Nginx est démarré? Comment vérifier si Nginx est démarré? Apr 14, 2025 pm 12:48 PM

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

See all articles