免费部署个人网站/PHP+MySQL Web 应用的 6 种方法
在这篇文章中,我将分享在不同的免费虚拟主机上部署网站/网络应用的经验(或者说操作指南)。不过,本文不会提供详细信息和详尽的解释。
无论是部署您的个人项目、学校项目还是测试您的网络应用程序,都有多个网络主机可供您免费部署。
如果您知道如何使用版本控制系统Git ,那就太好了👍。
如果没有,我建议你学习一下,这些资源或许能帮到你。对于网站,你可以使用Netlify上传文件。如果你有一个 PHP+MySQL 的 Web 应用,不妨试试000webhost。每个账户最多可以托管两个 Web 应用。
虽然我这么说过,但如果您打算使用000webhost托管您的 Web 应用以供长期使用,我强烈建议您学习Git并使用Heroku。000webhost非常适合快速免费地部署 Web 应用,但它也存在很大的安全风险。因此,建议您使用Heroku或付费 Web 主机,例如Digital Ocean或AWS。
开始之前...
我假设您有一个可立即部署的网站或 Web 应用。对于不需要任何数据库的项目,您可以使用静态 Web 主机。但是,如果您想部署 PHP+MySQL Web 应用,则可以考虑使用动态 Web 主机。
另外,我可能会将您的应用程序或项目的文件夹称为存储库。
仓库就像项目的文件夹。项目仓库包含项目的所有文件,并存储每个文件的修订历史记录。您还可以在仓库中讨论和管理项目工作。
-GitHub
还...
确保你有一个index.html
。把它想象成网站的主页。index.html
如果你还没有,请将你的主 HTML 文件重命名为 。如果你正在使用像 Laravel 和 CodeIgniter 这样的 PHP 框架,那么你就可以开始了。
内容
- Heroku + 远程 MySQL 用于 Laravel 应用
- 000webhost(对于那些还不了解Git 的人)
编辑:
网络主机
你也可以使用Heroku和000webhost作为静态 Web 主机。这样的话,只需忽略数据库集成部分即可。😊
您可能想要查看的另一个网络主机是Glitch。
Heroku - 数据库凭证
Bervianto Leo Pratama 的建议是更新 Heroku 中配置变量中的数据库凭证。
由于这个很棒的建议,我们对 Heroku 数据库部分进行了更改,设置数据库配置变量。😊
对于其他网络主机,您也可以更新.env
文件并手动上传,这样它就不会包含在源代码管理中。
静态 Web 托管
GitHub 页面
GitHub是托管代码的最佳平台之一。它提供无限的私有和公共代码库。它以开源软件而闻名。
与 3100 万开发人员一起托管和审查代码、管理项目并构建最佳软件。
-GitHub
GitHub Pages是 GitHub 提供的服务之一。
GitHub Pages 是一种静态站点托管服务,旨在直接从 GitHub 存储库托管您的个人、组织或项目页面。
-GitHub
内容
1.创建 GitHub 帐户
如果您还没有 GitHub 帐户,可以在此处创建一个。
2. 创建存储库
在右上角的导航中,单击加号图标下的新建存储库。
您只需填写详细信息,然后单击创建存储库。
之后,您现在可以将一些文件添加到您的存储库。
3.上传文件
您可以通过两种方式将文件添加到存储库:
- 使用 Git
- 通过文件上传
至于文件上传,您可以点击上传文件
注意:默认情况下,您位于存储库的主分支中。
或者可以像这样拖放文件:
至于提交信息,你可以输入一些描述你所做的事情的内容。如果你添加了图片,那么你可以输入“添加可爱的小狗图片”。😆
4. 使用 GitHub Pages 部署你的网站
首先,转到“设置”
并向下滚动到 GitHub Pages。然后点击master 分支。
这样,您的网站就发布在了https://<your-username>.github.io/<repository-name>
。恭喜 ✨
如果您想使用https://<your-username>.github.io
而不是https://<your-username>.github.io/<repository-name>
,则只需将您的存储库命名为<your-username>.github.io
。这适用于作品集网站。
欲了解更多信息,请访问GitHub Pages。
GitLab 页面
GitLab 是托管和部署代码的地方之一。它提供无限的私有和公共存储库。
GitLab 为整个软件开发和运营生命周期提供了单一应用程序。GitLab 提供了管理、规划、创建、验证、打包、发布、配置、监控和保护应用程序所需的一切。
-GitLab
GitLab Pages是 GitLab 提供的服务之一。
在GitLab.com上免费托管您的静态网站,或者在您自己的 GitLab 实例上托管。
-GitLab
内容
1.创建 GitLab 帐户
如果您还没有 GitLab 帐户,您可以在这里创建一个。
2. 创建存储库
在右上角的导航栏中,点击加号图标下方的“新建项目” 。或者,您也可以点击右侧的绿色“新建项目”按钮。
然后填写详细信息。之后,您可以点击创建项目。
3.上传文件
您可以通过两种方式将文件添加到存储库:
- 使用 Git
- 通过文件上传
至于文件上传,单击加号图标,然后选择上传文件
注意:默认情况下,您位于存储库的主分支中。
然后您可以拖动或上传您的文件。
至于提交信息,请输入一些描述你所做操作的内容。例如,如果你添加了“关于页面”,则可以输入“添加关于页面”。
4. 使用 GitLab Pages 部署你的网站
要开始,请单击设置 CI/CD。
然后,这将为您的部署创建一个配置文件。您可以选择一个模板。对于简单的项目,只需选择HTML即可。
然后按提交更改。
这将.gitlab-ci.yml
在您的项目根文件夹中创建一个包含以下内容的文件:
pages:
stage: deploy
script:
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
only:
- master
然后,GitLab CI/CD 将使用 GitLab Pages 构建和部署您的网站。
在侧边栏中,前往“设置”,然后前往“页面”。您会在那里找到您的网站网址,即https://<your-username>.gitlab.io/<repository-name>
。
您现在可能会看到404 错误。不过不用担心,您的网站只需要一些时间就能恢复正常运行。请过几分钟再尝试检查一下。
如果您想使用https://<your-username>.gitlab.io
而不是https://<your-username>.gitlab.io/<repository-name>
,则只需将您的存储库命名为<your-username>.gitlab.io
。这适用于作品集网站。
这样,你的网站就上线了。恭喜 ✨
欲了解更多信息,请访问GitLab Pages。
Netlify
Netlify提供了一种部署网站的简便方法。
集全局部署、持续集成和自动 HTTPS 于一体的一体化工作流程。这仅仅是个开始。
- Netlify
内容
- 创建 Netlify 帐户
- 使用 Netlify 部署
- 重命名您的网站
1.创建 Netlify 帐户
如果您还没有 Netlify 帐户,您可以使用您的 GitHub/GitLab/BitBucket 帐户或在此处创建一个。
2. 使用 Netlify 部署
2.1 上传文件并部署
您可以通过上传文件或将其连接到存储库来部署您的网站。
如果您正在上传文件,则只需将项目文件夹拖放到其中,如下所示:
然后,Netlify 将部署您的网站。
在这种情况下,您可以在 处查看该网站。您可以在此处https://naughty-babbage-f0df56.netlify.com
更改网站的名称。
如果您想更新文件。请前往Deploys。
拖放您的项目文件夹,然后 Netlify 将处理剩下的工作。
在“概述”和“生产部署”下,
等待“生产”旁边的标记从“正在上传”变为“已发布”。发布后,您的网站就更新完成了。
2.2 连接你的 Git 仓库并部署
部署站点的另一种方法是将你的仓库连接到 Netlify。你可以点击“从 Git 新建站点”来执行此操作。
它将引导您完成三个简单的步骤
1. 连接到 Git 提供程序,可以是 GitHub、GitLab 或 BitBucket。
2. 选择存储库
3. 配置构建选项
如果您不使用 Hugo、Jekyll、Gulp 等,则可以将构建命令和发布目录留空。
至此,该网站已上线https://keen-lamarr-271c97.netlify.com
。
3. 更改网站名称
要更改名称,请转到站点设置
然后向下滚动到站点详细信息
在这种情况下,我将把它更改为jorenrui
。
此后您就全部完成了。
恭喜🎉您的网站现已启动并运行。
欲了解更多信息,您可以访问Netlify 的文档。
涌
Surge是另一个可用于部署网站的静态 Web 主机。它使用命令行来部署应用程序。
先决条件
- 熟悉命令行
- Node.js的最新版本
内容
1.安装 Surge
npm install --global surge
对于 Linux 用户:
sudo npm install --global surge
2. 使用 Surge 部署
首先进入你的项目文件夹。在本例中,文件夹名称为jorenwebsite
。
cd jorenwebsite
然后运行surge:
surge
您现在可以从命令行登录或创建帐户。
- 项目:
<your project folder's path>
- 领域:
<your-project-name>.surge.sh
您可以访问以下网址查看您的网站<your-project-name>.surge.sh
更新文件时,请确保您位于项目文件夹中。然后,您可以使用以下命令重新部署站点:
surge --domain jorenwebsite.surge.sh
3. CNAME
使用 CNAME保存您的域名CNAME
。在您的项目文件夹中,创建一个名为 的文件。
您可以使用 CLI 来执行此操作:
echo jorenwebsite.surge.sh > CNAME
或者创建一个名为的文件CNAME
,打开文本编辑器,添加您的域名,然后保存。
jorenwebsite.surge.sh
在这种情况下,域名是jorenwebsite.surge.sh
。只需将其替换为您的域名即可。
现在,当你更新文件时,你不需要输入。你只需输入surgesurge --domain jorenwebsite.surge.sh
就可以重新部署你的应用
好哇✨您已经全部完成了!
欲了解更多信息,请访问Surge。
动态网络托管(PHP + MySQL)
Heroku + 远程 MySQL 用于 Laravel 应用
在本部分中,我们将使用Heroku + Remote MySQL组合来部署我们的 Laravel Web 应用程序。
赫罗库
Heroku是部署 Web 应用的绝佳平台之一。它使用 Git 来部署应用,并拥有自己的 Heroku CLI,你可以在其中运行 bash。
先决条件
检查 Git 是否已安装:
git --version
检查 PHP 是否已安装:
php -v
检查 Composer 是否已安装:
composer -V
内容
设置 Heroku 进行部署
- 创建 Heroku 帐户
- 安装 Heroku CLI
- 准备应用程序
- 创建 Procfile
- 在 Heroku 上创建应用程序
- 添加 PHP 构建包
- 设置 Heroku 配置变量
- 将代码推送到 Heroku
- 检查应用程序
集成 MySQL
设置 Heroku 进行部署
1.创建 Heroku 帐户
如果你还没有 Heroku 帐户,可以在这里创建一个
2.安装 Heroku CLI
首先,安装Heroku CLI。
之后,您现在可以通过 CLI 登录 Heroku:
heroku login
3.准备应用程序
假设你有一个正常运行的 git 仓库,请转到其目录。在本例中,项目的文件夹名为jorenweb
。
cd jorenweb
确保您的应用程序具有以下功能:
composer.json
- 这表明它是一个 PHP 应用程序
4. 创建 Procfile
要从 CLI 创建 Procfile,请运行以下命令:
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
或者手动创建一个名为的文件,Procfile
其中包含:
web: vendor/bin/heroku-php-apache2 public/
这会将文档根目录设置为public/
。
然后提交更改:
git add Procfile
git commit -m "Add Procfile for Heroku"
5. 在 Heroku 上创建应用程序
要在 Heroku 上创建应用程序,请运行以下命令:
heroku create jorenweb
替换jorenweb
为你选择的应用名称。应用名称将是域名https://<app name>.herokuapp.com/
。如果将应用名称留空,Heroku 将为你随机生成一个。
6.添加 PHP 构建包
heroku buildpacks:set heroku/php
7.设置 Heroku 配置变量
Laravel 加密密钥
要检查加密密钥,请运行php artisan
:
php artisan key:generate --show
然后使用以下命令将其复制并设置到 Heroku 上heroku config
:
heroku config:set APP_KEY=...
其中...
是您从命令复制的密钥php artisan
。
应用程序的 URL
该应用的 URL 为<app-name>.herokuapp.com
。在此示例中,该应用的名称为jorenweb
。
heroku config:set APP_URL=jorenweb.herokuapp.com
8. 将代码推送到 Heroku
使用以下命令推送您的代码:
git push heroku master
如果您有多个应用程序,请运行:
git push heroku master --app <app-name>
9. 检查应用程序
您可以使用以下命令打开您的应用程序:
heroku open
或者前往https://<app name>.herokuapp.com/
。
注意:如果您的应用程序在启动时需要数据库,则可能会出现一些错误。
集成 MySQL
有几个网站提供 PhpMyAdmin 附带的免费 MySQL,例如Free SQL Database和db4free。请注意,您只能将其用于测试目的,而不能用于生产。
在本文中,我们将使用远程 MySQL。您最多可以使用同一封电子邮件拥有 3 个数据库。
使用它的局限性是:
1.创建远程 MySQL 帐户
在此处创建远程 MySQL 帐户。之后,记下username
、和password
。database name
port
2.设置数据库配置变量
您可以通过三种方式来解决这个问题:
- Heroku 命令行界面
- Heroku Web
- 更新数据库文件
使用这些不同的方法,我们将更新连接的host
、、database
。username
password
mysql
Heroku CLI
使用 Heroku CLI,首先确保您已登录。
heroku login
然后,您现在可以更新以下内容:
connection
=mysql
heroku config:set DB_CONNECTION=mysql
host
=remotemysql.com
heroku config:set DB_HOST=remotemysql.com
database
=WP0BqJ4QBT
(将其更改为您之前在 remotemysql 上收到的数据库名称)
heroku config:set DB_DATABASE=WP0BqJ4QBT
username
=WP0BqJ4QBT
(将其更改为您之前在 remotemysql 上收到的用户名)
heroku config:set DB_USERNAME=WP0BqJ4QBT
password
=fHduIl02Bk
(将其更改为您之前在 remotemysql 上收到的密码)
heroku config:set DB_PASSWORD=fHduIl02Bk
b. Heroku Web
在 Heroku 上,登录并转到您的应用程序。
在导航中,转到“设置”。
然后向下滚动到“配置变量”并单击“显示配置变量”按钮。
然后更新以下变量:
connection
host
database
username
password
您可能会看到在创建 Heroku 应用程序的过程中先前设置的APP
和。APP_KEY
c.更新数据库文件
在 中config/database.php
,更新host
,database
,username
,password
在mysql
连接中。
...
'mysql' => [
'driver' => 'mysql',
- 'host' => env('DB_HOST', '127.0.0.1'),
+ 'host' => env('DB_HOST', 'remotemysql.com'),
'port' => env('DB_PORT', '3306'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
- 'password' => env('DB_PASSWORD', ''),
+ 'database' => env('DB_DATABASE', 'WP0BqJ4QBT'),
+ 'username' => env('DB_USERNAME', 'WP0BqJ4QBT'),
+ 'password' => env('DB_PASSWORD', 'fHduIl02Bk'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'options' => [PDO::ATTR_EMULATE_PREPARES => true],
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
...
然后推送您的更改:
git add config/database.php
git commit -m "Update MySQL DB Configuration"
git push heroku master
3. 使用数据库
有两种方法可以访问数据库:
- 通过 PhpMyAdmin
- 通过 Heroku Bash
PhpMyAdmin
要使用 PhpMyAdmin 访问数据库,请登录远程 MySQL。然后,输入username
您在注册password
时收到的。之后,只需导入您的 SQL 转储即可。
Heroku Bash
另一种方法是使用 Heroku Bash。
如果您还没有登录 Heroku,请先登录:
heroku login
通过运行以下命令打开 Heroku bash:
heroku run bash
然后,您现在可以迁移数据库:
php artisan migrate
并播种:
php artisan db:seed
4. 检查应用程序
您可以使用以下命令打开您的应用程序:
heroku open
或者前往https://<app name>.herokuapp.com/
。
恭喜!✨😆 你已经完成了!
您可能遇到的问题以及如何解决这些问题
a. 通过 HTTPS 提供资源
在开发模式下,你主要使用 HTTP。但现在它处于生产环境中,资源可能无法正确加载。以这个link
标签为例:
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
asset()
使用 HTTP,而secured_asset()
使用 HTTPS。
但是如果您不想在环境中强制使用 HTTPS,还有另一种解决方案。
要解决此问题,请转到app\Providers\AppServiceProvider.php
并添加以下代码:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
+ use Illuminate\Support\Facades\Schema;
...
...
public function boot()
{
+ if(config('app.env') === 'production') {
+ \URL::forceScheme('https');
+ }
}
...
这将在生产时将 URL 从 HTTP 更改为 HTTPS。
然后您可以提交这些更改,然后推送到 Heroku。
b. 迁移过程中出现“指定的键太长”错误
在中app\Providers\AppServiceProvider.php
,更新boot
函数:
use Illuminate\Support\Facades\Schema;
public function boot()
{
+ Schema::defaultStringLength(191);
}
然后您可以提交这些更改,然后推送到 Heroku。
fzaninotto/faker
c. Heroku 数据库迁移时使用错误(Faker\Factory
未找到类)
在 中composer.json
,fzaninotto/faker
从移动require-dev
到require
。
...
- "laravel/tinker": "^1.0"
+ "laravel/tinker": "^1.0",
+ "fzaninotto/faker": "^1.8"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
- "fzaninotto/faker": "^1.8",
...
如果您当前处于 Heroku bash 中,请退出:
exit
然后提交您的更改并将其推送到 Heroku:
git add composer.json
git commit -m "Update composer.json"
git push heroku master
然后再次运行 Heroku bash:
heroku run bash
安装依赖项:
composer install
然后再次迁移并播种数据库:
php artisan migrate:refresh --seed --force
欲了解更多信息,您可以访问Heroku 关于 Laravel 的文档。
000网站主机
000webhost是一款免费的虚拟主机服务商,支持 PHP 和 MySQL 应用。它还自带一个控制面板,其中包含 PhpMyAdmin 和基于 Web 的文件管理器。
虽然 000webhost 支持通过文件上传部署 Web 应用,而且免费,但它也存在很大的安全风险。因此,我不建议长期使用它。建议学习Git,并使用 Heroku。或者更好的选择是使用付费虚拟主机,从长远来看,这是值得的。
警告! 000webhost 已被黑
,请谨慎使用。—— Mohammed Foysal
内容
1. 创建 000webhost 账户
如果您还没有 000webhost 账户,可以点击此处创建一个。创建完成后,您将收到一封用于验证账户的电子邮件。
2 创建您的网站
验证后,通过单击“创建您的第一个网站”或“构建网站”来创建您的第一个网站。
之后它会询问你的问题,例如你的网站名称和密码。
您的网址将是<website-name>.000webhostapp.com
。在上述情况下,网址是jorenweb.000webhostapp.com
。
3.上传文件
在导航中,转到网站管理器,然后单击文件管理器。
这将带您进入文件管理器页面。向下滚动并点击“上传文件”按钮。然后,您将被引导至 000webhost 文件管理器,您可以在其中上传文件。
确保您位于public_html
目录中。要上传文件,您可以拖放文件或点击上传图标。
我建议将您的项目文件夹存档为zip文件,上传,然后解压。
在提取它时,让你所引用的目录成为.
您所在的当前目录。在这种情况下,将其提取到public_html
目录中。
确保它是一个zip文件而不是rar文件。否则会导致如下错误:
此后,您已完成文件上传。现在您可以删除zip文件了。
4.移动文件
前往解压后的文件夹。在本例中,文件夹是jorenwebsite
。选择要移动的文件,然后点击移动图标。
然后将目的地更改为/public_html
。
最后,删除解压文件的文件夹。在本例中,是jorenweb
文件夹。
这样,您的网站现在就可以上线了<website-name>.000webhostapp.com
。
5.配置数据库
在导航中,转到网站管理器,然后单击数据库管理器。
创建新数据库。
然后输入您的数据库名称、数据库用户名和密码。
您现在可以更新数据库配置。
在上面的例子中,数据库配置是:
- 数据库名称:id8995764_jorenweb
- 数据库用户:id8995764_admin
- 数据库主机:localhost
- 密码:
<the password you entered earlier>
然后您可以使用PhpMyAdmin管理您的数据库。
在导航栏中,点击“导入”。在这里,上传你的 SQL 转储。
6. 设置您的网址(可选)
默认情况下,您的应用的网址是:<website name>.000webhostapp.com
要添加免费的自定义域名,请访问Freenom。免费的扩展名包括
.TK / .ML / .GA / .CF / .GQ
检查域名的可用性并单击“结帐”。
获取域名后,设置名称服务器。点击“使用 DNS”,然后填写以下字段:
- 名称服务器:
ns01.000webhost.com
- 名称服务器:
ns02.000webhost.com
或者转到我的域名 > 管理工具 > 名称服务器进行设置。
另外,选择您将使用域名的期限,然后您就可以继续。
在结账时,您将收到一封电子邮件,其中会将您重定向到注册页面以完成订单。
返回 000webhost。
在导航中,转到网站管理器,然后单击设置网址。
向下滚动并单击“添加域”。
选择Park Domain,然后输入您在 Freenom 注册的域名。
然后等待域名关联。更改可能需要最多 24 小时。
7. 检查你的 Web 应用
请访问您的网站https://<website name>.000webhostapp.com/
或者如果你有一个 park 域名,www.example.tk
完成后,就大功告成了。恭喜!🎉
如果您想为您的网站获得一些 SSL 认证,您可以免费使用Cloudflare 。
欲了解更多信息,您可以访问000webhost 论坛。
总结
对于不需要数据库的网站,您可以使用静态 Web 托管服务,例如GitHub Pages、GitLab Pages、Netlify和Surge。您还可以探索并寻找其他 Web 托管服务,例如Zeit和AWS Amplify。
至于 PHP+MySQL Web 应用,如果您是新手,并且不使用任何框架,可以考虑000webhost。但需要注意的是,它存在很大的安全风险,不建议长期使用。如果您想部署使用 MySQL 的 Laravel 应用,可以考虑Heroku + Remote MySQL。另一方面,Heroku不仅提供 PHP Web 应用托管服务,还可以托管 NodeJS、Ruby、Java、Python 和 Go Web 应用。
这些是我在寻找部署 Web 应用的方法时找到的 Web 主机。从上传文件到通过 CLI 使用 Git,我的部署过程变得更加轻松。我非常享受从 000webhost 迁移到 Heroku 的过程,因为我已经熟悉了 CLI。另外,如果可以的话,请使用像Digital Ocean或AWS这样的付费 Web 主机。从长远来看,这非常值得。希望我的分享能对您有所帮助。
感谢阅读,祝你编程愉快!😄 ☕
文章来源:https://dev.to/jorenrui/6-ways-to-deploy-your-personal-websites--php-mysql-web-apps-for-free-4m3a