Camilo 是一個電子學習平台,也稱為“LMS”,在 GNU/GPLv3+ 許可證下發布。自2010年推出以來,全球已有超過3000萬人使用。對於目前的穩定分支,請在「代碼」標籤中選擇 1.11.x 分支。
Chamilo 2.0 仍在開發中。以下安裝過程僅供參考。要獲得穩定的 Chamilo,請安裝 Chamilo 1.11.x。有關詳細信息,請參閱 1.11.x 分支的 README.md。
我們假設您已經擁有:
作曲家 2.x - https://getcomposer.org/download/
紗線 +4.x - https://yarnpkg.com/getting-started/install
節點 >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
在網域中配置虛擬主機,而不是在網域內的子資料夾中。
運行 PHP 8.1+ 的 LAMP/WAMP 伺服器
您將需要 PHP8+ 和 NodeJS v18+ 來執行 Chamilo 2。
sudo apt update sudo apt -y upgrade sudo apt -y install ca-certificates curl gnupg software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install apache2 libapache2-mod-php8.1 mariadb-client mariadb-server php-pear php8.1-{dev,gd,curl,intl,mysql,mbstring,zip,xml,cli,apcu,bcmath,soap} git unzip
如果您已經安裝了nodejs,請使用node -v
檢查版本否則,安裝node 18或更高版本:
請按照此處的說明進行操作:https://deb.nodesource.com/node_20.x/。以下幾行使用這些指令的靜態版本,因此隨著時間的推移可能不太可持續
cd ~ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list apt update && apt -y install nodejs
安裝 Nodejs 的其他選項是使用 NVM(節點版本管理器)。您可以按照此處的說明進行安裝。然後,您可以安裝所需的節點版本。最好是 LTS 版本。
sudo nvm install --lts sudo nvm use --lts
安裝 NodeJS 後,您必須啟用 corepack,然後繼續滿足要求
sudo corepack enable cd ~ # follow the instructions at https://getcomposer.org/download/ sudo mv composer.phar /usr/local/bin/composer # optionally, you might want this: sudo apt install libapache2-mod-xsendfile sudo a2enmod rewrite ssl headers expires sudo systemctl restart apache2
當您的系統全部設定完畢後,您可以使用以下命令:
cd /var/www git clone https://github.com/chamilo/chamilo-lms.git chamilo2 cd chamilo2 composer install # not recommended to do this as the root user! # when asked whether you want to execute the recipes or install plugins for some of the components, # you can safely type 'n' (for 'no'). yarn set version stable # delete yarn.lock as it might contain restrictive packages from a different context yarn up yarn install yarn dev # you can safely ignore any "warning" mentioned by yarn dev sudo touch .env sudo chown -R www-data: var/ .env config/
在您的 Web 伺服器設定中,確保允許解釋 .htaccess( AllowOverride all
和Require all granted
),並將DocumentRoot
指向public/
子目錄。
上述準備就緒後,輸入main/install/index.php並依照 UI 說明進行操作(資料庫、管理員使用者設定等)。
Web 安裝程序結束後,將權限變更回相當安全的狀態:
chown -R root .env config/
如果您已經安裝了它並且只想從 Git 更新它,請執行以下操作:
git pull composer install # Database update php bin/console doctrine:schema:update --force --complete # Clean Symfony cache php bin/console cache:clear # js/css update yarn install yarn dev
pre-alpha 階段的開發人員請注意:doctrine 指令將嘗試將您的資料庫架構更新為全新安裝中預期的資料庫架構。這並不總是完美的,因為 Doctrine 將採取最快的路線來做到這一點。例如,如果您有一個遷移來重新命名一個表(這適用於正在遷移的Chamilo 1 中的系統),Doctrine 可能會認為目標表不存在,而原始表(不應該存在於新的表中)安裝)仍然存在,因此它只會刪除舊表並建立新表,並在此過程中丟失該表中的所有記錄。為了避免這種情況,最好使用以下命令來執行遷移。
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
這將尊重遷移邏輯並進行所需的資料處理。
這將更新 public/build 資料夾中的 JS (yarn) 和 PHP (composer) 依賴項。
有時會與現有文件發生衝突,因此為了避免這些衝突,這裡有一些提示:
對於作曲家錯誤,您可以刪除供應商資料夾和composer.lock文件
對於紗線錯誤,您可以刪除yarn.lock .yarn/cache/* node_modules/*
打開Chamilo時,它不加載,那麼你可以刪除var/cache/*
如果您認為基於不完整的遷移或安裝 Chamilo 開發版本後新增的遷移,Chamilo 中的某些設定可能未正確處理,則建置 URL /admin/settings_sync 來嘗試透過更新自動修復該問題基於資料庫狀態的PHP 類。不過,這個問題很少發生。
如果您將其安裝在開發環境中並且感覺應該完全清理它(在更改資料庫後可能是必要的),您可以透過以下方式執行此操作:
刪除.env
文件
再次載入 {url}/main/install/index.php 腳本
資料庫應該逐表自動銷毀。在某些極端情況下(以前的版本創建了一個不再需要的表並產生問題),您可能希望透過刪除它來徹底清理它,但這在大多數情況下不是必需的。
如果由於某種原因,您在使用composer或yarn時遇到問題,最好的第一步是完全刪除vendor/
資料夾(對於composer)或node_modules/
資料夾(對於yarn)。
如果您是開發人員並希望在當前開發分支(尚未穩定)中為 Chamilo 做出貢獻,請按照以下說明進行操作。請記住,開發版本目前尚未完成,許多功能尚未運行。這是因為我們正在開發根元件,需要對程式碼、檔案和資料庫的結構進行大量更改。因此,要獲得工作版本,您可能需要完全卸載並不時重新安裝。你已被警告過。
首先,應用此處描述的流程:在 Chamilo 中管理 CSS 和 JavaScript(特別是,請確保按照給定的連結在電腦上安裝所有必要的元件)。
然後確保您的資料庫支援大前綴(如果您使用 MySQL < 5.7 或 MariaDB < 10.2.2,請參閱此 Stack Overflow 執行緒)。
載入 (your-domain)/main/install/index.php URL 以啟動安裝程式(與先前版本中的安裝程式非常相似)。如果安裝程式是純 HTML 並且沒有以乾淨的佈局顯示,那是因為您沒有仔細遵循這些說明。返回本節的開頭並重試。
如果您想要對資產進行熱重載,請使用指令yarn run encore dev-server
。當您在assets/vue
下修改資產時,這將自動刷新您的資產。照常存取您的 chamilo 實例。在後台,這將從 http://localhost:8080 上的自訂伺服器提供資產。不要直接存取此 url,因為 Encore 負責根據需要更改 url 資源。
您可能希望在同一台伺服器上同時支援 PHP 8.1(用於 Chamilo 2)和 PHP 7.4(用於所有其他內容)。在 Ubuntu 上,你可以這樣做:
sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.1 libapache2-mod-php7.4 php8.1-{modules} php7.4-{modules} sudo apt remove libapache2-mod-php8.1 php7.4-fpm sudo a2enmod proxy_fcgi sudo vim /etc/apache2/sites-available/[your-chamilo2-vhost].conf
在虛擬主機配置中,請確保您將 PHP 8.1 FPM 設定為透過在
標記之間的某個位置新增以下內容來回應此單一虛擬主機:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
然後退出並重新啟動 Apache:
sudo systemctl restart apache2
最後,請記住,必須在 /etc/php/8.1/fpm/php.ini 中更改 PHP 設定,並且您必須重新載入 php8.1-fpm 才能考慮這些配置變更。
sudo systemctl reload php8.1-fpm
當使用2個版本時,在呼叫composer update
時也會遇到問題,因為這個版本需要由相關的PHP版本來呼叫。這可以像這樣完成:
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
如果您的預設 php-cli 使用 PHP7.4(請參閱ln -s /etc/alternatives/php
),那麼在執行composer update
時,您可能會遇到執行所謂的platform_check.php
腳本的問題。這是因為該腳本沒有使用正確的啟動上下文,並且您可能需要在啟動composer update
之前更改 Ubuntu 上的預設設定(即更改連結 /etc/alternatives/php 以指向其他 php 版本)。如果您需要返回 Chamilo 1.11 並且 Composer 再次抱怨,您可以隨時恢復該操作。
若要使用tests/scripts/git-hooks/
下的 git hook 範例腳本,可以使用下列命令。
git config core.hooksPath tests/scripts/git-hooks/
一般來說,main/資料夾已移至public/main/
app/Resources/public/assets 移至 public/assets
main/inc/lib/javascript 移至 public/js
main/img/ 移至 public/img
main/template/default 移到 src/CoreBundle/Resources/views
src/Chamilo/XXXBundle 移動到 src/CoreBundle 或 src/CourseBundle
bin/doctrine.php 刪除了使用 bin/consoledoctrine:xyz 選項
插件圖像、css 和 js 庫載入到 public/plugins 資料夾中(composer 更新將 web/plugins/plugin_name 中的plugin_name/public 中的內容複製到
外掛程式模板使用 asset() 函數而不是使用“_p.web_plugin”
刪除 main/inc/local.inc.php
透過 Gettext 管理翻譯
圖書館
與 Symfony 5 集成
PHPMailer 替換為 Symfony Mailer
涼亭被紗線取代
跑步
php bin/console lexik:jwt:產生金鑰對
在 Apache 設定 Bearer 中:
SetEnvIf 授權「(.*)」HTTP_AUTHORIZATION=$1
取得令牌:
捲曲-k -X POST https://example.com/api/authentication_token -H“內容類型:application/json” -d '{"使用者名稱":"admin","密碼":"admin"}'
響應應該返回類似以下內容:
{“令牌”:“MyTokenABC”}
前往 https://example.com/api
點選“授權”按鈕並寫入值Bearer MyTokenABC
然後您可以使用 JWT 令牌進行查詢。
請參閱 https://github.com/chamilo/chamilo-lms/projects/3
如果您想向 Chamilo 2 提交新功能或補丁,請遵循 Github 貢獻指南 https://guides.github.com/activities/contributing-to-open-source/ 和我們的 CONTRIBUTING.md 檔案。簡而言之,我們要求您根據您為此目的建立的分支向我們發送拉取請求,並將其發送到從原始 Chamilo 儲存庫分叉的儲存庫中。
有關查米洛的更多信息,請訪問 https://campus.chamilo.org/documentation/index.html