DreamFactory入门指南 - 第2章安装和配置DreamFactory

DreamFactory入门指南 - 第2章安装和配置DreamFactory第 2 章安装和配置 DreamFactory 在本章中 您将学习如何安装和配置 DreamFactory 提供了许多安装解决方案 包括 GitHub 存储库 点击式安装程序 Docker 容器和特定于云的安装程序 在做出决定之前 请务必仔细阅读这些选项 因为根据您的具体情况 某些选项可能比其他选项更合适

大家好,我是讯享网,很高兴认识大家。

第2章安装和配置DreamFactory

在本章中,您将学习如何安装和配置DreamFactory。提供了许多安装解决方案,包括GitHub存储库,点击式安装程序,Docker容器和特定于云的安装程序。在做出决定之前,请务必仔细阅读这些选项,因为根据您的具体情况,某些选项可能比其他选项更合适。

 

#选择DreamFactory版本

无论您是想在本地笔记本电脑上,在AWS或Google Cloud或Docker等云环境中启动DreamFactory实例,我们都能为您提供现成的解决方案!

 

#在DreamFactory GitHub的库

克隆DreamFactory的OSS存储库一直是迄今为止最流行的访问软件的方式。要克隆存储库,您需要在本地计算机或服务器上安装Git客户端,此时可以使用以下命令克隆它:

$ git clone https://github.com/dreamfactorysoftware/dreamfactory/ 
讯享网

DreamFactory建立在非常受欢迎的Laravel框架之上,后者又在PHP上构建。这意味着DreamFactory在所有托管环境中几乎无处不在; 您只需要确保您的托管环境运行PHP 7.1或更高版本,最新版本的Web服务器(如Apache或NGINX),访问四个数据库之一以存储配置数据(MySQL / MariaDB,PostgreSQL,SQLite,和MS SQL Server都支持),并且您有足够的权限来安装一些必需的PHP扩展。您可以通过我们的wiki了解有关所需软件和扩展的更多信息:

http://wiki.dreamfactory.com/DreamFactory/Installation#GitHub

 

#Docker

我们的Docker容器越来越受欢迎,包括运行DreamFactory所需的一切,包括Ubuntu 16.04,PHP 7.1和NGINX Web服务器。它还包括所有必需的PHP扩展,这意味着您应该能够尽快开始尝试使用最新的DreamFactory版本!要了解有关容器的更多信息,请访问我们的df-docker存储库:

https://github.com/dreamfactorysoftware/df-docker

 

#Bitnami

许多用户只是想要评估DreamFactory而无需花费任何时间或精力来购买测试服务器或摆弄配置问题。如果你属于这个类别,那么我们的Bitnami点击式安装程序适合你!这些虚拟机包括开始运行DreamFactory所需的一切,包括内置数据库服务器,Web服务器,PHP运行时以及一堆其他有用的软件。

安装程序适用于Linux,Windows和Mac OS X.通过以下链接下载所需的版本:

https://www.dreamfactory.com/downloads

 

#云图

云环境是目前选择的托管解决方案,并且有充分的理由。云服务提供商提供无与伦比的稳定性,性能和安全性,以及无数的附加功能,能够最大限度地提高IT团队的效率,同时最大限度地降低成本。DreamFactory提供针对所有主要云提供商的Bitnami图像,包括AWS,Azure,Google和Oracle Cloud。通过以下链接下载您想要的版本:

https://www.dreamfactory.com/downloads

 

#从Source安装和配置DreamFactory

如果您已经克隆了GitHub存储库,那么在启动DreamFactory实例之前,您需要执行一些额外的步骤。第一步涉及确保满足您的服务器要求。让我们先解决这些问题,然后概述软件安装。

 

#配置您的服务器

警告

本指南正在大力发展,某些部分已经完成。我们建议您阅读此处提供的当前安装文档。

服务器配置将根据您的操作系统而有所不同。为了确保说明尽可能具体和直截了当,我们将它们分解为子章节:

  • Debian / Ubuntu

如果您计划将PHP与以下某个数据库结合使用,请查看下面显示的相关子章节:

  • Microsoft SQL Server
  • SAP SQL Anywhere
  • 火鸟

 

#安装DreamFactory

第一步是使用Composer安装所需的PHP包:

讯享网$ composer install --no-dev 

--no-dev选项告诉Composer不安装特定于开发的依赖项。我们的OSS社区和内部开发人员都使用这些开发依赖项来协助软件开发。您可以通过打开composer.json项目根目录中的文件来查看必需和开发依赖项的列表。

如果您收到错误Your requirements could not be resolved to an installable set of packages,并且您不需要MongoDB,那么您可以通过--ignore-platform-reqs在运行Composer时另外提供选项来快速解决问题。

安装软件包后,接下来需要配置系统数据库。此数据库将包含与您的实例关联的各种配置设置。DreamFactory为此目的支持四个数据库,包括Microsoft SQL Server,MySQL,PostgreSQL和SQLite。请记住,您需要首先创建此数据库以及DreamFactory将用于连接到它的帐户。

您将通过运行terminal命令并回答有关数据库配置的一些提示来配置系统数据库。

为此,请从项目的根目录中运行以下命令:

$ php artisan df:env * Configuring DreamFactory... Created .env file with default configuration. Created phpunit.xml with default configuration. Which database would you like to use for system tables? [sqlite]: [0] sqlite [1] mysql [2] pgsql [3] sqlsrv > 1 Enter your mysql Host: > 192.168.10.10 Enter your Database Port [3306]: > Enter your database name: > dreamfactory Enter your database username: > dreamfactory_user Enter your database password: > Re-enter your database password: > CACHE DRIVER is not supported. Using default driver file. Configuration complete! * WARNING! * * Please take a moment to review the .env file. You can make any * changes as necessary there. * * Please run "php artisan df:setup" to complete the setup process. * * 

配置系统数据库后,就可以创建系统表和种子数据,然后创建第一个系统管理员帐户。这是通过运行df:setup命令来完成的。由于此命令涉及多个提示,因此我将命令输出分解为几个部分。运行后df:setup,该命令将立即创建数据库表和种子数据:

讯享网$ php artisan df:setup * * Welcome to DreamFactory Setup. * Running Migrations... Migration table created successfully. Migration driver used: sqlite Migrating: 2015_01_27__create_system_tables Migrated: 2015_01_27__create_system_tables Migrating: 2015_01_27__create_db_extras_tables Migrated: 2015_01_27__create_db_extras_tables ... Migrating: 2018_01_23__script_implements_access_list Migrated: 2018_01_23__script_implements_access_list Migrating: 2018_01_29_030233_create_bitbucket_config_table Migrated: 2018_01_29_030233_create_bitbucket_config_table Migration completed successfully. * * Running Seeder... Seeding: AppSeeder App resources created: admin, api_docs, file_manager Seeding: EmailTemplateSeeder Email Template resources created: User Invite Default, User Registration Default, Password Reset Default Service resources created: system, api_docs, files, logs, db, email System service updated. Service resources created: user All tables were seeded successfully. 

接下来,系统将提示您创建第一个系统管理帐户:

Creating the first admin user... Enter your first name: > Jason Enter your last name: > Gilmore Enter your email address?: > Choose a password: > Re-enter password: > Successfully created first admin user. 

最后,系统会提示您确保正确配置了应用程序storagebootstrap/cache目录。这涉及使用chownchmod命令确保正确设置目录所有权和权限:

* Please make sure following directories and all directories under * them are readable and writable by your web server * -> storage/ * -> bootstrap/cache/ * Example: * > sudo chown -R {www user}:{your user group} storage/ bootstrap/cache/ * > sudo chmod -R 2775 storage/ bootstrap/cache/ 

{www user}字符串是Web服务器守护程序所有者的所有者的占位符。该{your user group}字符串是Web服务器组守护程序所有者的占位符。

在此提示后,您将立即获知成功设置:

 Setup Successful! * * Setup is complete! Your instance is ready. Please launch * your instance using a browser. You can run "php artisan serve" * to try out your instance without setting up a web server. 

如果您已安装并配置DreamFactory以在Web服务器上运行,则可以打开浏览器并导航到IP地址或域名。否则,如果尚未安装Web服务器,则可以运行php artisan serve

$ php artisan serve Laravel development server started: <http://127.0.0.1:8000> 

这将启动一个在127.0.0.1端口上运行的简单PHP服务器8000。打开浏览器并导航到http://127.0.0.1:8000,您应该看到以下屏幕:

 

 

#介绍.env文件

根据运行应用程序的环境提供不同的配置值通常很有帮助。例如,您可能希望在本地使用不同的缓存驱动程序,而不是在生产服务器上使用。

为了使这个变得简单,Laravel使用了Vance Lucas 的DotEnv PHP库。在新的Laravel安装中,应用程序的根目录将包含一个.env.example文件。如果您通过Composer安装Laravel,则此文件将自动重命名为.env。否则,您应该手动重命名该文件。有关更多信息,请参阅Laravel的官方文档。

Lavvel Docs on .env

 

#启用调试和日志记录

默认情况下,DreamFactory不启用调试。调试虽然是帮助监控应用程序的一个很好的工具,但它可以是生产环境中的一个大型性能接收器。在.env下面的示例文件中,您可以看到这些选项的位置。

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#999999">==============================================================================</span>
<span style="color:#999999"> Environment Settings</span>
<span style="color:#999999">==============================================================================</span>

<span style="color:#999999"> Use the installer.sh file in this directory to easily edit these settings.</span>
<span style="color:#999999"> By default each setting is set to its internal default and commented out.</span>

<span style="color:#999999">------------------------------------------------------------------------------</span>
<span style="color:#999999"> Application Settings</span>
<span style="color:#999999">------------------------------------------------------------------------------</span>

<span style="color:#999999"> Application name used in email templates and other displays</span>
<span style="color:#999999">#APP_NAME=DreamFactory</span>
<span style="color:#999999"> Encryption cipher options are AES-128-CBC or AES-256-CBC (default)</span>
<span style="color:#999999">#APP_CIPHER=AES-256-CBC</span>
<span style="color:#999999"> Return debugging trace in exceptions: true or false (default)</span>
<span style="color:#999999">#APP_DEBUG=false</span>
<span style="color:#999999"> Environment this installation is running in: local, production (default)</span>
<span style="color:#f8c555">APP_ENV</span><span style="color:#67cdcc">=</span>local
<span style="color:#999999"> Use 'php artisan key:generate' to generate a new key. Key size must be 16, 24 or 32.</span>
<span style="color:#f8c555">APP_KEY</span><span style="color:#67cdcc">=</span>base64<span style="color:#cccccc">:</span><span style="color:#f8c555">YOUR_APP_KEY</span>
<span style="color:#999999">#APP_LOCALE=en</span>
<span style="color:#999999"> LOG setting. Where and/or how the log file is setup. Options are single (default), daily, syslog, errorlog</span>
<span style="color:#f8c555">APP_LOG</span><span style="color:#67cdcc">=</span>daily
<span style="color:#999999"> LOG Level. This is hierarchical and goes in the following order.</span>
<span style="color:#999999"> DEBUG -> INFO -> NOTICE -> WARNING -> ERROR -> CRITICAL -> ALERT -> EMERGENCY</span>
<span style="color:#999999"> If you set log level to WARNING then all WARNING, ERROR, CRITICAL, ALERT, and EMERGENCY</span>
<span style="color:#999999"> will be logged. Setting log level to DEBUG will log everything.</span>
<span style="color:#f8c555">APP_LOG_LEVEL</span><span style="color:#67cdcc">=</span>debug
<span style="color:#999999"> When APP_LOG is set to 'daily', this setting dictates how many log files to keep.</span>
<span style="color:#f8c555">APP_LOG_MAX_FILES</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">5</span>
<span style="color:#999999"> PHP Date and Time function timezone setting</span>
<span style="color:#999999">#APP_TIMEZONE=UTC</span>
<span style="color:#999999"> External URL representing this install</span>
<span style="color:#999999">#APP_URL=http:</span><span style="color:#999999">//127.0.0.1:8000</span>
<span style="color:#999999"> The starting point (page, application, etc.) when a browser points to the server root URL,</span>
<span style="color:#999999">#DF_LANDING_PAGE=/dreamfactory/dist/index.html</span>
<span style="color:#f8c555">DF_LICENSE_KEY</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_LICENSE_KEY</span>
</code></span></span>

在努力使您的环境正常运行时,DreamFactory建议开启调试,并提高日志记录环境的灵敏度。要打开应用程序调试,请取消注释并更改以下值:

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">APP_DEBUG</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">true</span> </code></span></span>

要修改日志记录值,您需要取消注释并修改以下代码片段:

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">APP_LOG</span><span style="color:#67cdcc">=</span>daily <span style="color:#f8c555">APP_LOG_LEVEL</span><span style="color:#67cdcc">=</span>debug <span style="color:#f8c555">APP_LOG_MAX_FILES</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">5</span> </code></span></span>

 

#启用电子邮件注册

在创建新用户和管理员时,为每个用户和管理员设置密码并不理想。要解决此问题,您可以启用电子邮件注册,以便能够选择“发送电子邮件邀请”。这将向新用户发送包含指向您实例的链接的电子邮件邀请,并允许他们自己设置密码。

您需要.env将以下行添加到您的文件中,然后您可以立即注册新用户!

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">MAIL_DRIVER</span><span style="color:#67cdcc">=</span>smtp <span style="color:#f8c555">MAIL_HOST</span><span style="color:#67cdcc">=</span>smtp<span style="color:#cccccc">.</span>gmail<span style="color:#cccccc">.</span>com <span style="color:#f8c555">MAIL_PORT</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">587</span> <span style="color:#f8c555">MAIL_USERNAME</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_EMAIL</span>@gmail<span style="color:#cccccc">.</span>com <span style="color:#f8c555">MAIL_PASSWORD</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_PASSWORD</span> </code></span></span>

 

#增加会话生命周期

出于安全考虑,DreamFactory会议仅限60分钟。但是,您可以通过打开.env文件并查找以下变量将生命周期更改为任何所需的持续时间:

#DF_JWT_TTL = 60

更改DF_JWT_TTL为您需要的任何持续时间,以分钟为单位。例如,以下设置将使您的会话持续一周:

DF_JWT_TTL = 10080

 

#更新DreamFactory Docker环境

我们的DreamFactory环境仍在进行中,但由于Docker的简化配置和部署功能,许多用户正在积极地使用它。有时您会想要更新到更新版本的DreamFactory,因此我们已经汇总了以下说明作为指南。

警告

您可能正在阅读本节,目的是升级DreamFactory生产环境。与任何软件一样,升级生产环境可能会出现问题,因此在尝试升级之前,建议您拥有易于访问的文件和系统数据库备份和恢复计划。你被警告了!

首先打开终端并输入DreamFactory实例的根目录。然后执行以下命令:

$ docker-compose exec web cat .env | grep APP_KEY APP_KEY=base64:U/En8zI8WKrZ/F7CA9KncWjGTIhbvpGD5wN3eLoDZuQ= ... 

将返回几行输出,但是您应该只将开头的行复制APP_KEY到文本文件中。请记住,您至少需要复制该APP_KEY值。如果您已覆盖其他默认值,例如与系统数据库关联的类型,位置和凭据,则还需要复制这些默认值。执行此步骤非常重要,否则您将遇到各种与升级相关的问题。

接下来,运行以下命令:

$ git tag --list 2.1 2.14.1 2.2 2.2.1 ... 

这将显示所有标记的版本。首先停止正在运行的DreamFactory容器而不删除它。请记住,运行此命令时,DreamFactory实例将脱机,直到升级过程完成:

$ docker-compose stop Stopping df-docker_web_1 ... done Stopping df-docker_mysql_1 ... done Stopping df-docker_redis_1 ... done 

出于本示例的目的,我们假设您运行2.12并且想要升级到2.14.1。为此,您首先要查看2.14.1标记:

$ git checkout tags/2.14.1 

接下来,您需要将其添加APP_KEYdocker-compose.yml文件中。docker-compose.yml在您喜欢的代码编辑器中打开,向下滚动到该web服务,并将APP_KEY属性和关联值与其他环境变量一起添加:

... DB_DATABASE: dreamfactory APP_KEY: 'base64:U\/En8zI8WKrZ\/F7CA9KncWjGTIhbvpGD5wN3eLoDZuQ=' CACHE_DRIVER: redis ... 

警告

APP_KEY值封装在单引号中是至关重要的,另外还要使用反斜杠转义出现在键中出现的任何正斜杠!例如,将APP_KEY上面找到的条目与之前显示的输出进行比较。

保存这些更改,然后使用以下命令重建容器:

$ docker-compose up -d --build 

完成后,您可以运行以下命令以确认容器已启动并正在运行:

$ docker-compose ps Name Command State Ports -------------------------------------------------------------------------------- df-docker_mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp df-docker_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp df-docker_web_1 /docker-entrypoint.sh Up 0.0.0.0:80->80/tcp 

如果出现问题,并且其中一个容器指示已退出,则可以查看该容器的日志:

$ docker-compose logs web 

假设容器已启动并运行,您接下来要确定DreamFactory系统数据库架构是否已更改。为此,请运行以下命令:

$ docker-compose exec web php artisan migrate:status 

如果您Y在表格输出的Ran?列中看到,则架构未更改。如果您N在任何时候看到,那么您将需要运行以下命令来更新系统数据库模式:

$ docker-compose exec web php artisan migrate 

最后,您需要通过执行以下命令来清除应用程序和配置缓存:

$ docker-compose exec web php artisan config:clear Configuration cache cleared! $ docker-compose exec web php artisan cache:clear Cache cleared successfully. 

完成后,在浏览器中打开DreamFactory实例,并确认环境是否正常运行。

 

#在CentOS上安装和配置DreamFactory

首先我拉入CentOS Docker镜像。

docker pull centos 

然后我以分离状态启动图像。

docker run -itd {Container_ID} 

一旦图像运行,我们就可以执行它并开始安装DreamFactory。

docker exec -it {Container_ID} /bin/bash 

 

#使用DreamFactory安装脚本

我们将使用可在此处找到的安装脚本,而不是花时间复制和粘贴一长串命令。

首先,我们必须使用脚本将脚本放入容器中wget

wget -O cent.sh {RAW_GITHUB_SCRIPT_URL} 

既然我们的服务器上有脚本,那就让它可执行。

chmod +x cent.sh 

我们现在可以运行脚本,但首先让我们看看其他配置标志。您可以将几个选项传递给脚本以更改其行为。如果您不使用这些选项,脚本将安装Nginx Web服务器,DreamFactory以及所需的系统和PHP扩展,但不会安装数据库服务器。要查看完整的安装选项列表,请在此处查看,否则我们将使用该--with-mysql标志来使用MySQL作为我们的系统数据库。

现在我们可以运行脚本了!

sudo ./cent.sh --with-mysql 

您现在应该看到脚本运行如此。

 

完成后,您现在可以访问浏览器并访问您的实例!

 

#选择HTTP客户端

无论您的API消费者是iPhone还是Android应用程序,SPA(单页应用程序)还是其他服务器,该消费者通常被称为客户端。客户端向REST API发出HTTP请求,解析响应并做出相应的响应。虽然在大多数情况下,您的团队将使用Alamofire或Axios等库来管理这些请求,但您通常希望在调查和学习阶段以更流畅的方式与API进行交互。API Docs功能很好地满足了这一需求,但API Docs界面缺乏书签和保持查询的能力,使用变量以编程方式管理参数,以及其他有助于维护一组易于访问的配置的功能。

幸运的是,有许多HTTP客户端可以很好地填补这个空白。最受欢迎的两个是Insomnia和Postman,它们分别在OSX和多个操作系统上可用。在本节中,我们将向您介绍两个HTTP客户端,并作为一个额外的奖励谈论无处不在的cURL客户端,它很可能是您从未听说过的最受欢迎的软件。

#失眠

Insomnia是一个跨平台的REST客户端,建立在Electron之上。与cURL和Postman相比,失眠在现场是新的,但提供了一系列功能,肯定会使其具有竞争力。它们具有非常流畅的用户界面和大量功能,包括团队选项。

 

#邮递员

Postman是一个经过验证的真实GUI界面,拥有出色的文档来帮助您设置测试环境。他们为每个人制定计划,从免费的独立用户到大型企业团队。Postman还有一个很棒的功能叫做API Network,它有来自各种来源的API调用示例。绝对值得一看。

 

#卷曲

cURL缺乏精美的界面可能会让你相信它不如Insomnia和Postman。不是这样!cURL是一个无与伦比的软件。cURL是一个命令行工具和库,用于使用URL语法传输数据,支持HTTP,HTTPS,FTP,FTPS,GOPHER,TFTP,SCP,SFTP,SMB,TELNET,DICT,LDAP,LDAPS,FILE,IMAP,SMTP,POP3, RTSP和RTMP。libcurl提供了无数强大的功能

 

#结论

安装并配置了DreamFactory后,就可以构建您的第一个API了!在下一章中,我们将完成这一步,完成生成基于数据库的API所需的步骤。

小讯
上一篇 2025-01-05 19:55
下一篇 2025-03-12 20:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/94184.html