CodeIgniter4 運行你的應(yīng)用程序

2020-08-18 09:28 更新

一個CodeIgniter 4的程序能夠通過以下幾種方式來運行:部署在一臺web服務(wù)器上,使用虛擬化,或者使用CodeIgniter的命令行工具以便測試。 本節(jié)闡述了如何使用以上技術(shù)來進行部署,以及介紹了一些高級用法與如何做出貢獻。

如果CodeIgniter對你來說相當(dāng)陌生,請閱讀用戶手冊中的 準(zhǔn)備開始 這節(jié)來學(xué)習(xí)如何構(gòu)建一個動態(tài)的PHP應(yīng)用,祝你玩得開心!

初始化配置與設(shè)置

  1. 用一個文本編輯器打開 app/Config/App.php 文件并設(shè)置你的baseURL(網(wǎng)站基礎(chǔ)URL)。如果你希望更靈活點,也可以通過編輯 .env 文件,新增或更改其中的 app.baseURL=”http://example.com 來更改baseURL。
  2. 如果你想要使用數(shù)據(jù)庫,用文本編輯器打開 app/Config/Database.php 文件并進行數(shù)據(jù)庫設(shè)置。同樣的,也可以在 .env 文件里進行如上設(shè)置。

在生產(chǎn)環(huán)境里需要做的另一個件事就是關(guān)閉PHP的錯誤報告以及其他所有的只在開發(fā)環(huán)境里的功能。 在CodeIgniter中,可以通過設(shè)置 ENVIRONMENT 常量來進行。關(guān)于這一特性在文檔環(huán)境 中進行了更為詳盡的介紹。 在默認情況下,應(yīng)用程序會使用”production”(生產(chǎn))環(huán)境。為了更為充分地使用所提供的 debug(問題定位)工具,你需要將環(huán)境設(shè)置為 “develop” (開發(fā)環(huán)境)

注解
如果你想要在一臺web服務(wù)器上運行你的網(wǎng)站。你需要修改項目線下的 writable 文件夾的權(quán)限,從而使得你的web服務(wù)器的當(dāng)前用戶可以對它進行寫入。

本地開發(fā)主機

CodeIgniter4 中內(nèi)置了一個本地開發(fā)用的主機,利用了PHP內(nèi)置的web服務(wù)器并實現(xiàn)了 CodeIgniter 的路由機制。 你可以使用主目錄下的如下如下命令行中的 serve 腳本來啟動:

php spark serve

這將會啟動服務(wù)器,與此同時,你可以在瀏覽器中輸入以下 http://localhost:8080 地址來瀏覽你的應(yīng)用。

注解
內(nèi)置的開發(fā)服務(wù)器只應(yīng)該在本地開發(fā)機器上使用。絕對不要將其用于生產(chǎn)服務(wù)器中

如果你想在服務(wù)器上運行一個不僅僅是localhost,而是其他站點名的網(wǎng)站,你需要首先將該站點加入到你的 hosts 文件中。 該文件實際所處的位置根據(jù)不同的操作系統(tǒng)會存在差異,不過對于所有Unix類型的系統(tǒng)(包括OS X),該文件都是位于 /etc/hosts 。

本地開發(fā)主機可以通過三個命令行選項來進行自定義化:

  • 你可以使用 --host 命令行選項來指定當(dāng)前應(yīng)用所位于的主機名:

  php spark serve --host=example.dev

  • 默認情況下,服務(wù)器在8080端口上運行;不過如果你可能會需要多個站點同時運行,或者在8080端口上已有一個應(yīng)用正在部署。那么就可以通過 --port 選項來指定另一個端口:

  php spark serve --port=8081

  • 你也可以指定不同的PHP版本,通過 --php 選項,同時指定你想使用的對應(yīng)的PHP版本所處的路徑:

  php spark serve --php=/usr/bin/php7.6.5.4

在Apache上部署主機

CodeIgniter4 的 webapp 通常部署在一個網(wǎng)站主機上。在本文檔中我們將 Apache 的 httpd 進程假定為標(biāo)準(zhǔn)使用的平臺。

Apache 在許多平臺中默認集成,不過也能夠以一個安裝包(其中包含數(shù)據(jù)庫引擎和PHP執(zhí)行文件)從 Bitnami上下載

.htaccess

本文檔中假定你可以使用 “mod_rewrite” 模塊,該模塊可以在URL中移除 “index.php” 這一部分。

確保該模塊(重寫模塊)在主配置文件中已被啟用(未注釋),例如 apache2/conf/httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

與此同時,確保默認的文檔根目錄 <Directory> 元素中也啟用了該模塊,在 “AllowOverride” 設(shè)置中:

<Directory "/opt/lamp7.2/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

虛擬主機

我們推薦使用虛擬主機的配置來運行你的應(yīng)用。 你可以為每個應(yīng)用設(shè)置不同的別名。

確保虛擬主機模塊在主配置文件中啟用(未注釋),例如 apache2/conf/httpd.conf:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

在你的主機配置文件(hosts文件)里增加一個主機別名,在unix類型的平臺上通常是 /etc/hosts ,而在Windows上通常是 c:/Windows/System32/drivers/etc/hosts 。 在該文件中增加一行,比如 “myproject.local” 或 “myproject.test”,舉例來說:

127.0.0.1 myproject.local

在虛擬主機配置中,為你的 webapp 增加一個 <VirtualHost> 元素,例如在 apache2/conf/extra/httpd-vhost.conf 中:

<VirtualHost *:80>
    DocumentRoot "/opt/lamp7.2/apache2/htdocs/myproject/public"
    ServerName myproject.local
    ErrorLog "logs/myproject-error_log"
    CustomLog "logs/myproject-access_log" common
</VirtualHost>

如果你的項目目錄并不位于 Apache 的文檔根目錄下,你的 <VirtualHost> 元素就需要一個嵌套的 <Directory> 元素來為服務(wù)器訪問這些文件提供授權(quán)。

測試

上述配置完成后,你的 webapp 應(yīng)該就可以通過在瀏覽器上輸入 http://myproject.local 的 URL 來進行訪問了。

每當(dāng)你更改了它的配置后,Apache 都需要被重新啟動

通過 Vagrant 部署主機

虛擬化也是一個有效地測試你希望部署的環(huán)境中的 webapp 的實現(xiàn)情況的方式,即使你是在一個不同環(huán)境中進行部署的話。 即使你為兩個環(huán)境使用了相同的平臺,虛擬化也可以為測試提供獨立的環(huán)境。

相關(guān)的代碼位于 VagrantFile.dist 中,該文件也可以被復(fù)制到 VagrantFile 里,并根據(jù)你的系統(tǒng)的情況來進行增減。例如為特定的數(shù)據(jù)庫或緩存引擎提供訪問。

設(shè)置

我們假設(shè)了你已經(jīng)安裝了 VirtualBoxVagrant 的指定平臺版本。

我們的 Vagrant 配置文件默認你在系統(tǒng)中使用 ubuntu/bionic64 Vagrant box 。

Vagrant 配置文件假定你是這樣進行安裝的:

vagrant box add ubuntu/bionic64

測試

設(shè)置完成后,你就可以用以下命令在虛擬機中部署你的 webapp

vagrant up

你的 webapp 就可以通過 http://localhost:8080 來訪問,而當(dāng)次構(gòu)建的代碼覆蓋率測試報告可以通過 http://localhost:8081 ,用戶指南通過 http://localhost:8082 進行訪問。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號