【bf88必发唯一官网】更飞速更有益于的php

by admin on 2019年2月2日

EpiiServer是什么

更急迅更有益的php+nginx多利用安插环境。

1、简介

Laravel是一套简洁,优雅的PHP WEB开发框架(PHP Web Framework)。

laravel是当下一个比较主流的框架,现在广大互连网的商号主旨都在采纳该框架。该框架是根据symfony【海外一款相当流行的框架:由于国内手册不是很齐全,没有稍微商家采取】的一个海外的MVC框架。诞生于二〇一一年一月11日。

官网:https://laravel.com/

华语官网:http://www.golaravel.com/

普通话社区:https://laravel-china.org/

Laravel框架的广告语:

为 WEB 美学家创制的 PHP 框架

安装Gogs之前先安装好mysql,nginx

Debian部署python3+flask+uwsgi+Nginx+Supervisor

github仓库首页

2、laravel有何优势

(1)语法更有着表现力

(2)高品质的文档

 例如社区:

 使用参考文档

(3)足够的恢宏包(功效包)

Laravel的壮大包由世界各州的开发者进献,而且还在时时刻刻充实中

(4)开源、托管在GITHUB上

【bf88必发唯一官网】更飞速更有益于的php。Laravel是完全开源的。所有代码都足以从Github上赢得,并且欢迎您进献出团结的能力

本身的电脑-》右击-》接纳高档系统设置-》环境变量

 

 

 

 

创建git用户

gogs默许以git用户运行

  1. 新建git用户
    adduser git

  2. 以git用户登录
    su git

  3. cd 到git用户主目录 /home/git 新建.ssh文件夹 权限设置为0755

一、安装编译用的包

  • 若果在root下就绝不输入 sudo。在子用户下就在命令前增进 sudo。
  1. $ sudo apt-get install build-essential
  2. $ sudo apt-get install libncurses5-dev libncursesw5-dev
    libreadline6-dev
  3. $ sudo apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev
    libssl-dev
  4. $ sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev
    zlib1g-dev

gitee仓库

composer介绍

安装Go语言运行环境

Gogs由Go语言编写,运行时索要设置Golang运行条件
假定系统中任何程序并不须要运行Go语言程序,能够只为上文创造的git用户配置运行环境,也得以选用安插全系统具有用户的Go语言运行环境

  1. 安排环境变量,切换到用户git,并只为该用户配置Go运行环境

su git
cd ~
  1. 写入环境变量

export GOROOT=$HOME/go
export GOARCH=386   #系统位数,386表示32位系统,amd64表示64位系统。
export GOOS=linux   #系统类型
export PATH=$PATH:$GOROOT/bin
  1. 使环境变量生效
    source ~/.bashrc

二、下载安装 python3

  1. 下载python3包

     $ wget --no-check-certificate https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
    

    ‘下载可能会油可是生证书无效难点,只要安装个ca-certificates或行使–no-check-certificate下载就可以幸免上面的不当’

  2. 进去下载目录

     $ cd 下载的目录下/
    
  3. 解压包

     $ tar -zxf Python-3.6.3.tgz
    
  4. 进入python3

     $ cd Python-3.6.3
    

特性:

  1. 多使用快捷布署,域名自动生成。
  2. 每个应用可设置自己php的版本。
  3. 种种应用可安装自己的环境变量。
  4. 域名与目录自动绑定,协助5级域名自动绑定目录。
  5. 【bf88必发唯一官网】更飞速更有益于的php。与wamp等集成环境相比,更加侧重定制化配置,而非环境的安装。

(1)什么是composer

composer英文单词意思:音乐指挥者

composer是PHP中用来治本依赖(dependency)关系的工具,你可以在友好的连串中注解所依靠的外表工具库(libraries),composer会帮您安装这几个信赖的库文件。

一句话,composer是一个工具,是为php项目准备的软件管家。

行事规律:

 composer可以去packagist应用市场
里边下载软件,可是该市场只给再次来到软件的地址,那或多或少与一般拔取市场(360/appstore)不一致,一般采纳市场里面直接存放软件本身还要也得以回去该软件供下载应用,packagist应用市场
存储的是软件的下载地址,对应的软件都是在github里边存储的,最后下载的软件是从github再次来到的。

官方网站:)

下载地址:

 

安装Go

  1. Go语言官网 可以取得最新的二进制安装包

wget https://storage.googleapis.com/golang/go1.5.2.linux-386.tar.gz
tar xzvf go1.5.2.linux-386.tar.gz
mv go $GOROOT

Go语言运行环境就设置到位了

  1. 测试Golang是或不是安装成功
    go env

三、编译安装

  1. 缓解PIP包管理器所需依靠包

     $ vim Modules/Setup.dist
    
  2. 将上边1行撤除注释,大致在文书的361行左右.改动后esc:wq保存并脱离

     zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
    

化解了怎么样难点?

先不说怎么设置,先看看您是或不是必要本利用。

(2)composer安装使用(composer.phar)

第一步:下载composer.phar

其次步:配置php的环境变量

桌面上‘我的计算机’单击右键接纳属性

其三步:复制下载的composer.phar文件到PHP环境中的php.exe文件所在目录

第四步:在php.exe目录执行如下命令:

以cmd格局进入到php.exe文件所在的目录,执行如下命令。

echo @php “%~dp0composer.phar” %*>composer.bat

实施完成后,生成一个composer.bat的批处理公事。

双重打开命令行,执行composer命令,安装成功。

安装 Gogs

  1. 下载预编译的二进制安装包
    安装包各版本地址:https://gogs.io/docs/installation/install\_from\_binary

su git
cd ~
wget -c http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.8.10_linux_386.tar.gz
tar zxf gogs_v0.8.10_linux_386.tar.gz
  1. 建立数据库
    /home/git/gogs/scripts/mysql.sql是数据库起头化文件
    提醒:数据库必须协理InnoDB引擎

cd gogs
mysql -u root -p < scripts/mysql.sql #(需输入密码)即可初始化好数据库
  1. 报到 MySQL 创设一个新用户 gogs,并将数据库 gogs
    的兼具权限都给以该用户

mysql -u root -p
create user 'gogs'@'localhost' identified by '密码';
grant all privileges on gogs.* to 'gogs'@'localhost';
flush privileges;
exit;
  1. 编辑 gogs/scripts/supervisor/gogs 修改如下

directory=/home/git/gogs/
command=/home/git/gogs/gogs web

大家修改时按照实际路径

四、自定义安装目录

  1. 始建安装目录

     $ mkdir -p /usr/local/python3.6.3
    
  2. 进入python3目录

     $ cd Python-3.6.3
    
  3. 点名到安装目录

     $ ./configure --prefix=/usr/local/python3.6.3
     $ ./configure --enable-optimizations
    
  4. 此处编译使用的是make all没有一向动用make,all参数会编译所有子模块。

     $ make all
     $ make install
    

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


也许你会说一直用 http://localhost/app1http://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

(3)使用composer格局陈设laravel项目

第一步:切换镜像为国内镜像

镜像官网:

经过composer可以去packagist.org市场 和 github代码库 下载功用代码

可是packagist和github对应的服务器都配备在国外,每回访问的时候速度自然处于逆风局。

此刻“镜像”应运而生,其是把囤积在packagist和github等国外服务器上的全体内容定期(更新相比较及时,几分钟的延期)同步到国内服务器里边,使得周边开发者可以不用绕远到海外,相反在和谐国家就可以把软件更新到自己的类型中,方便了composer的行使。

给composer配置镜像:

修改 composer 的大局配置文件(推荐方法)

composer  config -g repo.packagist composer

第二步:composer部署laravel项目。

以cmd格局,进入到项目所在的目录,

诸如成立一个名为laravel的laravel项目

composer  create-project  laravel/laravel  –prefer-dist

下载的公文如下;

比如创制一个名为shop的laravel项目

composer  create-project  laravel/laravel  shop  –prefer-dist

注意,即使要下载其余版本,比如5.3本子,可以应用这些命令

composer create-project laravel/laravel shop 5.3.* –prefer-dist

nginx 反向代理

  1. http

server {
    server_name 域名或IP;
    listen 80;
    location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
        proxy_pass http://127.0.0.1:3000/;
    }
}
  1. https

server {
    listen 443 ssl;
    server_name 域名或IP;
    ssl_certificate /path/to/gogs.io.unified.crt;
    ssl_certificate_key /path/to/gogs.io-decrypted.key;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:3000 $request_uri;
    }
}

五、把 python3 添加到PATH里

  1. 打开~/.bashrc 文件
  2. 拉长施行路径

     $ sudo vim ~/.bashrc
     export PATH=$PATH:/usr/local/python3.6.3/bin
    

    添加新的别名音信来修改默许使用的Python版本

     alias python='/usr/bin/python3.6.3'
    
  3. 生效配置文件

     $ source .bashrc
    
  4. 翻看版本:
    因为地点已经添加了默许使用python3.6.3,所以一直输入$ python -V
    会出现 (-bash: /usr/bin/python3.6.3: No such file or
    directory)报错。

     查看python版本输入以下:
     $ python2 -V :显示为系统自带的python2.7.3
     $ python3 -V :显示为系统自带的python3.6.3
    

EpiiServer根目录下的web目录为app的品种会聚目录,只要您把您的app放进这一个目录,自动会扭转上述的域名。

6、直接下载格局安插laravel

动用手工安装,须求团结下载Laravel框架的源码

下载地址:

找到相应的本子,举行下载即可。

注意:近日lavarel的本子最新的相应是5.4。不过商家应用更加多的仍旧5.1【官方长时间支撑】。

运行gogs

  1. 手动开启gogs

su git
cd ~/gogs
./gogs web
  1. 护理进度开启
    nohup ./gogs web &

  2. 投入服务运行
    将 /home/git/gogs/scripts/init/centos/gogs复制到/etc/init.d中
    root用户下 service gogs stop|start|restart|reload|status


Gogs开启后就足以拔取
http://ip:3000 访问
或者利用方面nginx配置的ip或域名访问

如须求经过3000端口访问请留意在防火墙中拉早先口

六、安装 Nginx

  1. 安装

    $ sudo apt-get install nginx
    # 查看版本
    $ nginx -v
    
  2. 启动 nginx

     $ sudo /etc/init.d/nginx start
    

    浏览器访问:你的服务器ip地址
    如:http://45.45.162.162

     

    bf88必发唯一官网 1
    出现上图:表示成功

     

  3. 停止 nginx

     $ sudo nginx -s stop
    

疑问1

上边中域名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
  • 若是你用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为相对路径,一定不要包含中文

7、启动格局

方式一:

Laravel框架提供了更简便易行的办法启动项目(可以不利用apche)

以cmd形式,进入到laravel项目中的artisan文件所在的目录,执行php artisan serve

以php artisan serve启动后,会敞开8000端口,默许会在8000端口启动laravel项目

方式二:使用 wamp或lamp环境

域名:www.laravel5.3.com

运作目录:d:/amp/demo/shop/public

(1)创造一个虚拟主机

要专注,项目的输入文件

只顾:由于laravel框架的输入文件index.php是在public目录上边,所以在布局虚拟主机目录的时候,需求安顿到public目录上面。

 

(2)配置好hosts文件后,浏览器访问如下;出现如下提示,表示安装成功。

 

 

 

使用域名,举办走访;

 

配备表达

计划文件位于 Gogs 目录的 custom/conf/app.ini,是 INI 格式的文书文件。
详尽的配备解释和默许值请参见官方文档,其中第一的布置大约是上面那些。
RUN_USER 默认是 git,指定 Gogs 以哪个用户运行
ROOT 所有仓库的积存根路径
PROTOCOL 如若您利用 nginx 反代的话请使用
http,借使直白裸跑对外劳务的话随意
DOMAIN 域名。会影响 SSH clone 地址
ROOT_URL 完整的根路径,会影响访问时页面上链接的指向,以及 HTTP clone
的地址
HTTP_ADDR 监听地址,使用 nginx 的话提出 127.0.0.1,否则 0.0.0.0
也足以
HTTP_PORT 监听端口,默许 3000
INSTALL_LOCK 锁定安装页面
Mailer 相关的挑选

七、安装 uWSGI

  1. 因为早已设置python3所以要采纳pip3举行安装

     $ pip3 install uwsgi
    
  2. 翻看版本

     $ uwsgi --version
    
  3. 设置格局二:下载:

     $ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
    
  4. 解压:

     $ tar zxvf uwsgi-latest.tar.gz
    

疑问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

8、目录结构分析

(1)app目录:项目标中央目录,主要用于存放要旨代码,也包涵控制器、模型以及路由。

例如控制器文件存放地方:

 

模型文件存放地方,模型文件直接写在app目录下即可,但是也足以在该目录下建立Model目录,大家一般会在Http目录下创建一个Model目录。

(2)bootstrap目录,laravel启动目录

autoload.php文件用于机动载入须求的类公事。

 

 

 

(3)config目录,项指标配置目录,主要存放在配置文件,比如数据库的配备

 

(4)database目录,数据迁移目录

不怕采纳文件的不二法门,来保管数据库,成立一个PHP文件,在文件中设计表结构,运行该公文,完结表的创导。

 

(5)public目录,项目标入口文件和种类的静态资源目录(css,img,js,uploads)

 

(6)resources目录,存放视图文件

 

 

 

(7)storage目录,首假使存放在缓存文件和日志文件,注意,假若在linux环境下,该目录要求有可写权限。

 

(8)vendor目录,重即使存放第三方的类库文件,laravel思想重借使同台的费用,不要再一次的造轮子(例如,里面或者存在表明码类,上传类,邮件类),该目录还存放laravel框架的源码。注意假若要运用composer软件管理的,composer下载的类库都是存放在该目录下边的。

 

 

 

 

 

(9)routes目录中的web.php文件是概念路由,

laravel中享有的造访,都必须事先定义好路由

 

(10).env文件:首假若安装有些种类有关的条件布署文件新闻。config目录里面的文件配置内容一般都是读取该公文之中的安排音讯(config里面的布置项的值基本都是来自.env文件)。

 

(11)artisan脚手架文件,首要用来转移的代码的,比如生成控制器,模型文件等。

 

 

 

(12)composer.json敬服包配置文件

 

亟需重点控制的目录

目录

作用

app

存储项目的核心代码

app/Http/Controllers

保存控制器文件

resources/views

保存视图文件

config

配置文件目录

routes

存放路由文件

database/migrations

存放数据库迁移文件

database/seeds

存放数据库种子文件

 

安装仓库和站点目录同步

  1. 切换到git用户

su git
cd /www
mkdir git-repo
cd git-repo
git clone /home/git/gogs-repositories/user/demo.git
  1. 编辑 /home/git/gogs-repositories/user/demo.git/hooks/post-receive

!/bin/sh  
export LANG=zh_CN.UTF-8  
cd /www/git-repo/demo
unset GIT_DIR //重要是这里..  
git pull origin master
chmod +x post-receive

八、测试

只要:有现成的品种能够把项目上传来服务器中,在git 管理项目,只需求 git
clone 一下就可以了。

如若:你要求从地点上传项目文件,可以用scp命令,那里就不啰嗦用法了。总之我们将品种文件放到服务器,然后就足以用virtualenv管理Python环境
virtualenv就不多说了。那里平昔用flask demo举办。

  1. 安装虚拟环境

     $ pip3 install virtualenv
    
  2. 始建一个包

     $ mkdir myproject
     $ cd myproject
    
  3. 开创虚拟环境

     $ virtualenv env
    

    (1)激活虚拟环境

     $ source env/bin/activate
    

    (2)在虚环境中安装flask

     $ pip3 install flask
    

    (3)退出虚环境

     $ deactivate
    

    (4)创制启动文件

     $ vim run.py
    

    (5)写入一个flask,端口自己开展安装。我这里用的80端口。

     from flask import Flask
     app = Flask(__name__)
     @app.route("/")
     def hello():
         return "Hello World!"
     if __name__ == "__main__":
         app.run(host='0.0.0.0', port=80)
    

    (6)esc+wq保存并且脱离

  4. 运作那几个run.py文件
    (1)先停止Nginx

     $ nginx -s stop
    

    (2)打开你设置的端口(端口默许全体是倒闭状态)端口自行设置。

     $ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
     # 如果想关闭打开的端口:
     $ iptables -A INPUT -p tcp --dport 80 -j DROP
    

    (3)启动flask程序

     $ cd myproject
     $ python3 run.py
    
  5. 用别样总括机和手机4G访问你的服务器ip地址+上端口。

     如:http://45.32.122.555:80/
     出现:Hello World! 那就成功了。
    

技巧

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

其他

  1. 为git用户安装密码
    passwd git

  2. 生成SSH密钥
    安装全局的name和email

git config --global user.name "xxx"
git config --global user.email "xxx"

或在仓库目录下设置该仓库的name和email

git config user.name x1
git config user.email x1@xx.com

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

九、配置 Nginx

  1. *
    (1)进入

     $ cd /etc/nginx/sites-enabled/
    

    (2)编辑default

     $ vim default
    

    —————————————————————————————————

     # 或者直接配置 $ cd /etc/nginx 
     $ vim nginx.conf
     # 不过要根据其语法来配置其实最后nginx.conf还是会调用/etc/nginx/sites-enabled/default的配置。
    

    (3)在终极写入后 :wq保存并且脱离

     server {
     listen  80;
     server_name 45.32.162.255; 
     charset      utf-8;
     client_max_body_size 75M;
     location / {
         include      uwsgi_params;
         uwsgi_pass   127.0.0.1:8000;  
         uwsgi_param UWSGI_PYHOME /root/myproject/venv;
         uwsgi_param UWSGI_CHDIR  /root/myproject; 
         uwsgi_param UWSGI_SCRIPT run:app; 
         }
     }
    

    解析
    listen 80; # 服务器监听端口
    server_name 45.32.162.255; # 那里写你的域名如故公网IP
    charset utf-8; # 编码
    client_max_body_size 75M; # 往日写的有关GET和POST的分化
    include uwsgi_params; # 导入uwsgi配置
    uwsgi_pass 127.0.0.1:8000; #
    转载端口,须求和uwsgi配置当中的监听端口一致 (下面会配备uwsgi)
    uwsgi_param UWSGI_PYTHON /root/myproject/venv; #
    Python解释器所在的门道(那里为虚拟环境)【路径根据自己实际的路子填写】
    uwsgi_param UWSGI_CHDIR /root/myproject; # 项目根目录
    uwsgi_param UWSGI_SCRIPT run:app; # 项目的主程序,即Flask
    app所在的地方【run是运行文件run.py文件(根据自己成立的公文名)app是falsk实例】

(4)测试一下计划文件是或不是科学,若检测配置文件败北,再美好检查下安顿文件有没有遗漏。

    $ nginx -t

 

bf88必发唯一官网 2# 表示测试成功

 

(5)此时做客Nginx服务器应该会取得502 Bad
Gateway的提示,因为请求被Nginx转载了,可是并没有转化服务器来处理请求(还从未计划好uwsgi)。

    $ service nginx start

 

bf88必发唯一官网 3

 

疑问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,直接访问域名也可以

注意

  • 借使地方 push到长途时提示没有权力
  • 莫不是 gogs/data 和 gogs/data/sessions 目录为root权限
    导致用户新建的库房的权能也为root

参考小说
https://mynook.info/blog/post/host-your-own-git-server-using-gogs
http://www.tuicool.com/articles/bYBnu2V
https://gogs.io/docs/installation/install\_from\_binary


本文在撰写的长河也许参考或局地照搬或任何照搬网络上的文章内容,然后举办整理汇总或仅仅只是重新排版。
网络上因相似小说较多无法确定原小编,即便本文有幸被原小编看到,请告诉自己,以便注脚出处。

十、配置 uwsgi

  1. # 在档次文件根目录新建配置文件uwsgi.ini(uwsgi帮助三种安排文件格式:
    xml, ini, json等)
    (1)进入项目根目录

     $ cd myproject
    

    (2)创建uwsgi文件

     $ vim uwsgi.ini
    

    (3)写入以下内容后 :wq保存并脱离

     [uwsgi]                                                     
     socket = 127.0.0.1:8000                         
     plugins = python                                        
     chidir = /root/myproject                                    
     wsgi-file = run.py                                       
     callable = app                  
    

    # uwsgi的监听端口【要跟上面nginx配置里的端口一样】
    # 那行一定要拉长,不然请求时会出现– unavailable modifier
    requested: 0 –错误提醒
    # 项目根目录【路径根据自己实际的门道填写】
    # flask程序的启动文件【那里我取名为run.py】
    # 程序变量名 【app是falsk实例变量】

  2. 起步测试
    (1)启动 Nginx

     $ service nginx restart
    

    (2)启动 uwsgi #留神要赶回项目根目录下进行

     $ cd ~
     $ cd myproject
     $ uwsgi uwsgi.ini
     若一切正常的话就可以在终端上看到uwsgi的启动信息了
    

    (3)打开浏览器

     访问你的ip加上端口
     例:http://45.32.162.255:80
     页面出现:Hello World!
    

    # 表明Nginx和uwsgi配置成功了

    #
    但离真正项目上线还差一段,因为uwsgi是平昔在前台启动的,当大家的总是终端跟服务器断开的时候uwsgi进程也被关门了,所以大家须要uwsgi在后台运行。

    解释一下上边那段话:大家在连年服务器启动项目后方可用浏览器访问成功。但是我们一但关闭与服务器的连接后再用浏览器访问就尤其了.项目是运行在前台的也就是说.在闭馆与服务器连接的同时也关闭了服务器的授命窗.运行在前台的花色也还要关闭。所以我们要求把项目周转在后台。

  3. bf88必发唯一官网 ,后台启动项目
    (1)用nohup启动:不挂断运行命令,用”&”可以让您的一声令下在后台执行
    (nohup详细的命名参数请到官网查询)注意:别漏了&号。

     $ nohup uwsgi uwsgi.ini &
    

    (2)关闭与服务器的连年,然后用浏览器访问你的ip地址:

     显示:Hello World! 表示ok了!
    

    (3)可以通过命令把那么些类型从后台为止,查询uwsgi的长河(linux命令不详细说了)

     $ ps -ef|grep uwsgi
    

    找到uwsgi进程uwsgi.ini:
    root 7950 1 0 14:57 ? 00:00:00 uwsgi uwsgi.ini
    进度id每个人都不雷同 那里的id是7950。
    (4)杀掉后台的uwsgi进度kill -9 前面加上进度的id 或者 killall
    uwsgi杀掉全体同名为uwsgi的经过。

     $ kill -9 7950
     $ killall uwsgi
    

    (5)再用浏览器去访问ip

     浏览器页面显示:502 Bad Gateway 表示停止掉uwsgi程序的运行
    

    (6)项目根目录下会生成 nohup.out 记录日志

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版本

十一、使用Supervisor进度监控

# Supervisor是python2写就的一款强大的运维工具。
眼前Supervisor还不帮衬python3。可以经过以下办法解决。

可通过pip安装.那里用的是python3的pip.所以会设置败北.使用以下.

  1. 先是安装supervisor (默认由自带的python2.7使得)

     $ apt-get install supervisor
    
  2. 进去默许配置文件(修改配置文件)

     $ cd /etc/supervisor/
     $ vim supervisord.conf 
     按shift+G 跳到末尾
     添加:files = /etc/supervisor/*.conf
     esc:wq 保存
    

     

    bf88必发唯一官网 4

     

     这样方便为每个app单独设置conf文件而不必全部写在全局设置里面
     在启动supervisorctl须先启动supervisord。
     否则会出现error: 
     <class 'socket.error'>, [Errno 99] Cannot assign requested address: file: /usr/lib/python2.7/socket.py line: 575错误
    
     执行:(若不是在root下执行在最前面加上 sudo)
    
     $ supervisord -c /etc/supervisor/supervisord.conf
     $ supervisorctl -c /etc/supervisor/supervisord.conf
     # 这里补充以一下:每当修改完配置后如果出现
     error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.
     # 请重新执行以上的两句命令
    
     进入:supervisor shell模式表示成功
     退出:supervisor shell
     supervisor> exit
    
  3. 创造脚本文件,生成默许配置文件.

     $ cd /etc/supervisor/conf.d/
     新建app.conf文件(文件名自己定义)
     $ vim app.conf
    
  4. 进入编辑格局加上配置

     [program:myproject]
     directory = /root/myproject/
     command= uwsgi --ini /root/myproject/uwsgi.ini
     autostart = true
     startsecs = 5
     autorestart = true
     startretries = 3
     user = root
     redirect_stderr = true
     stdout_logfile_maxbytes = 20MB
     stdout_logfile_backups = 20
     stdout_logfile = /tmp/app.log
     stopasgroup=false
     killasgroup=false 
    

    esc:wq 保存并退出

    # 解析
    [program:myproject]:# 项目标包名字(我的是myproject)

    directory = /root/myproject/:# 程序的开行目录路径

    command= uwsgi –ini /root/myproject/uwsgi.ini:#开行命令
    (相当于间接开行 uwsgi uwsgi.ini一样只是增进了门道)

    autostart = true:# 在 supervisord 启动的时候也自行启动
    startsecs = 5: # 启动 5 秒后不曾充足退出,就作为已经司空眼惯启动了
    autorestart = true:# 程序十分退出后自行重启
    startretries = 3:# 启动战败自动重试次数,默许是 3
    user = root: # 使用哪个用户启动(我那里用的root)

    redirect_stderr = true:# 把 stderr 重定向到 stdout,默许 false
    stdout_logfile_maxbytes = 20MB:# stdout 日志文件大小,默许50MB
    stdout_logfile_backups = 20:# stdout 日志文件备份数

    只顾:stdout
    日志文件,须要专注当指定目录不存在时无法正常启动,所以需求手动创设目录(supervisord会自动成立日志文件)别忘了配置之后创制下边继续。

    stdout_logfile = /tmp/app.log

    说下那三个有效的安插项stopasgroup和killasgroup,如若大家用Flask等Rest服务,常常其会开启多少个经过,那么一旦stopasgroup不启用以来,supervisor不可以重启此服务(关闭主进程时其子进程没有关闭,再开启主进度时会提示端口被侵占等错误信息)。

    stopasgroup=false:
    默许为 false,假诺设置为 true,当进程收到 stop
    信号时,会自动将该信号发给该进程的子进程。如若这些布局项为
    true,那么也饱含 killasgroup 为 true。例如在 Debug 格局采纳 Flask
    时,Flask 不会将吸收到的 stop
    信号也传递给它的子进度,因而就要求设置那个布局项。

    killasgroup=false:
    默认为 false,假设设置为 true,当进度收到 kill
    信号时,会自动将该信号发给该进度的子进度。即使那些程序行使了 python
    的 multiprocessing 时,就能半自动终止它的子线程。

         # 创建日志的文件夹
         $ cd ~
         $ cd /myproject/
         $ mkdir tmp
    

    布局已毕

    # 还有更加多的配备参数请查阅官网

    #这边大家得以寓目,尽管supervisor是python2写的,但假设大家指定运行的python3解释器去运作程序就行了。

  5. 使配置生效(每当修改主配置文件或增改子配置文件都亟需实施使它生效)
    亟需先进入$ cd /etc/supervisor目录或者项目标目录cd
    myproject/才足以运行相关的授命如:supervisorctl reload等生死相依命令

     $ supervisorctl update # 因为是python3执行该命令可能会报错
     # 可以使用以下命令:重新加载配置文件
     $ supervisorctl reload
    
  6. 运作supervisorctl,即可进入shell里面方便的操作,如start app、restart
    app等。

     $ cd /etc/supervisor
     $ supervisorctl
     $ start myproject # 你的项目名称
     # 执行start后可以看到 myproject RUNNING pid 16758, uptime 0:02:58
     $ restart myproject # 重新启动
     $ stop myproject # 停止
     # 更多相关命令可以到官网上查阅这里不消息介绍
    
  7. 上述大家不得不在控制台查看运行.大家须要web界面上查看

     # 添加修改配置文件
     $ cd /etc/supervisor/
     $ vim supervisord.conf
     # 如果在vim模式下找到则对应修改
     # 如果没有 按shift+G 跳至末尾添加
    
     # IP和绑定端口
     # 管理员名称
     # 管理员密码
     [inet_http_server]
     port = 45.32.111.111:9001   
     username = user 
     password = 666666
     # 如果不需要密码可以注释在最前面机上;号
     # ;username = user 
     # ;password = 666666
     # 重新加载配置文件使它生效
     $ cd /etc/supervisor
     $ supervisorctl reload
     # 最后你需要打开你的这个端口并且重启supervisorctl
     $ iptables -A INPUT -p tcp --dport 9001 -j ACCEPT
     $ cd /etc/supervisor
     $ supervisorctl
    
  8. 用浏览器启动

     # 输入你的ip和端口
     45.32.111.111:9001
    

     

    bf88必发唯一官网 5

     

总的来看上图界面表示曾经打响,之后方可因而打开Supervisor端口去监督管理你的类型一键启动/为止你的门类。

——————————————————————————————————
有啥样遗漏不足的请多多指引!!!

3、环境变量设置。

大家肯定会遇上那些难点

  • app的费用和配备使用的数据库参数分化。怎么着有效分离。
  • 家常便饭人在行使git用作协会合作情势。如何让首要的账号和密码不受版本控制。

上述难点,有很多化解方案,但更便宜更不易的章程为通过环境变量安装账号和密码,使得程序和重要账号完全分离

在区其他环境下(window,linux,iis,apache,nginx)设置php环境变量的办法不等同,

觉得好的~点个赞打赏下咯~谢谢!!!

 

bf88必发唯一官网 6

在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.example
config.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能给您带来协助。让你越多的时刻去研发产品,而非环境搭建。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图