W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一個(gè)CodeIgniter 4的程序能夠通過以下幾種方式來運(yùn)行:部署在一臺(tái)web服務(wù)器上,使用虛擬化,或者使用CodeIgniter的命令行工具以便測試。 本節(jié)闡述了如何使用以上技術(shù)來進(jìn)行部署,以及介紹了一些高級(jí)用法與如何做出貢獻(xiàn)。
如果CodeIgniter對你來說相當(dāng)陌生,請閱讀用戶手冊中的 準(zhǔn)備開始 這節(jié)來學(xué)習(xí)如何構(gòu)建一個(gè)動(dòng)態(tài)的PHP應(yīng)用,祝你玩得開心!
.env
文件,新增或更改其中的 app.baseURL=”http://example.com” 來更改baseURL。.env
文件里進(jìn)行如上設(shè)置。
在生產(chǎn)環(huán)境里需要做的另一個(gè)件事就是關(guān)閉PHP的錯(cuò)誤報(bào)告以及其他所有的只在開發(fā)環(huán)境里的功能。 在CodeIgniter中,可以通過設(shè)置 ENVIRONMENT
常量來進(jìn)行。關(guān)于這一特性在文檔環(huán)境 中進(jìn)行了更為詳盡的介紹。 在默認(rèn)情況下,應(yīng)用程序會(huì)使用”production”(生產(chǎn))環(huán)境。為了更為充分地使用所提供的 debug(問題定位)工具,你需要將環(huán)境設(shè)置為 “develop” (開發(fā)環(huán)境)
注解
如果你想要在一臺(tái)web服務(wù)器上運(yùn)行你的網(wǎng)站。你需要修改項(xiàng)目線下的writable
文件夾的權(quán)限,從而使得你的web服務(wù)器的當(dāng)前用戶可以對它進(jìn)行寫入。
CodeIgniter4 中內(nèi)置了一個(gè)本地開發(fā)用的主機(jī),利用了PHP內(nèi)置的web服務(wù)器并實(shí)現(xiàn)了 CodeIgniter 的路由機(jī)制。 你可以使用主目錄下的如下如下命令行中的 serve
腳本來啟動(dòng):
php spark serve
這將會(huì)啟動(dòng)服務(wù)器,與此同時(shí),你可以在瀏覽器中輸入以下 http://localhost:8080 地址來瀏覽你的應(yīng)用。
注解
內(nèi)置的開發(fā)服務(wù)器只應(yīng)該在本地開發(fā)機(jī)器上使用。絕對不要將其用于生產(chǎn)服務(wù)器中
如果你想在服務(wù)器上運(yùn)行一個(gè)不僅僅是localhost,而是其他站點(diǎn)名的網(wǎng)站,你需要首先將該站點(diǎn)加入到你的 hosts
文件中。 該文件實(shí)際所處的位置根據(jù)不同的操作系統(tǒng)會(huì)存在差異,不過對于所有Unix類型的系統(tǒng)(包括OS X),該文件都是位于 /etc/hosts 。
本地開發(fā)主機(jī)可以通過三個(gè)命令行選項(xiàng)來進(jìn)行自定義化:
--host
命令行選項(xiàng)來指定當(dāng)前應(yīng)用所位于的主機(jī)名: php spark serve --host=example.dev
--port
選項(xiàng)來指定另一個(gè)端口: php spark serve --port=8081
--php
選項(xiàng),同時(shí)指定你想使用的對應(yīng)的PHP版本所處的路徑: php spark serve --php=/usr/bin/php7.6.5.4
CodeIgniter4 的 webapp 通常部署在一個(gè)網(wǎng)站主機(jī)上。在本文檔中我們將 Apache 的 httpd
進(jìn)程假定為標(biāo)準(zhǔn)使用的平臺(tái)。
Apache 在許多平臺(tái)中默認(rèn)集成,不過也能夠以一個(gè)安裝包(其中包含數(shù)據(jù)庫引擎和PHP執(zhí)行文件)從 Bitnami上下載
本文檔中假定你可以使用 “mod_rewrite” 模塊,該模塊可以在URL中移除 “index.php” 這一部分。
確保該模塊(重寫模塊)在主配置文件中已被啟用(未注釋),例如 apache2/conf/httpd.conf
:
LoadModule rewrite_module modules/mod_rewrite.so
與此同時(shí),確保默認(rèn)的文檔根目錄 <Directory> 元素中也啟用了該模塊,在 “AllowOverride” 設(shè)置中:
<Directory "/opt/lamp7.2/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
我們推薦使用虛擬主機(jī)的配置來運(yùn)行你的應(yīng)用。 你可以為每個(gè)應(yīng)用設(shè)置不同的別名。
確保虛擬主機(jī)模塊在主配置文件中啟用(未注釋),例如 apache2/conf/httpd.conf
:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
在你的主機(jī)配置文件(hosts文件)里增加一個(gè)主機(jī)別名,在unix類型的平臺(tái)上通常是 /etc/hosts
,而在Windows上通常是 c:/Windows/System32/drivers/etc/hosts
。 在該文件中增加一行,比如 “myproject.local” 或 “myproject.test”,舉例來說:
127.0.0.1 myproject.local
在虛擬主機(jī)配置中,為你的 webapp 增加一個(gè) <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>
如果你的項(xiàng)目目錄并不位于 Apache 的文檔根目錄下,你的 <VirtualHost> 元素就需要一個(gè)嵌套的 <Directory> 元素來為服務(wù)器訪問這些文件提供授權(quán)。
上述配置完成后,你的 webapp 應(yīng)該就可以通過在瀏覽器上輸入 http://myproject.local
的 URL 來進(jìn)行訪問了。
每當(dāng)你更改了它的配置后,Apache 都需要被重新啟動(dòng)
虛擬化也是一個(gè)有效地測試你希望部署的環(huán)境中的 webapp 的實(shí)現(xiàn)情況的方式,即使你是在一個(gè)不同環(huán)境中進(jìn)行部署的話。 即使你為兩個(gè)環(huán)境使用了相同的平臺(tái),虛擬化也可以為測試提供獨(dú)立的環(huán)境。
相關(guān)的代碼位于 VagrantFile.dist
中,該文件也可以被復(fù)制到 VagrantFile
里,并根據(jù)你的系統(tǒng)的情況來進(jìn)行增減。例如為特定的數(shù)據(jù)庫或緩存引擎提供訪問。
我們假設(shè)了你已經(jīng)安裝了 VirtualBox 和 Vagrant 的指定平臺(tái)版本。
我們的 Vagrant 配置文件默認(rèn)你在系統(tǒng)中使用 ubuntu/bionic64 Vagrant box 。
Vagrant 配置文件假定你是這樣進(jìn)行安裝的:
vagrant box add ubuntu/bionic64
設(shè)置完成后,你就可以用以下命令在虛擬機(jī)中部署你的 webapp
vagrant up
你的 webapp 就可以通過 http://localhost:8080
來訪問,而當(dāng)次構(gòu)建的代碼覆蓋率測試報(bào)告可以通過 http://localhost:8081
,用戶指南通過 http://localhost:8082
進(jìn)行訪問。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: