文章:Drupal 開發環境搭建(在 Windows 中通過 WSL 配置 Ubuntu+Apache+PHP+MariaDB+Drupal+Drush開發環境)

1. 補充知識

1.1 在 Windows11 中通過 WSL 配置 Ubuntu 系統的好處

        最初我是直接在Windows系統中搭建的Apache+PHP+Drupal開發環境,但出現了一個問題:操作Drupal後台很卡、很慢。之所以會出現這個問題,是因為Drupal系統運行時會調用大量的文件,Windows系統操作大量文件的速度太慢,速度明顯低於Linux系統。因此,從事Drupal開發,必須要在Linux環境中進行。

        通過Windows系統提供的WSL(全稱:Windows Subsystem for Linux)工具,在Windows中搭建Linux開發環境,既可以使用Linux進行軟件開發從而大大提高項目運行速度,又可以使用Windows系統,我覺得這是最佳的開發環境。

        因此,我選擇的Drupal開發環境是:在Windows11中通過WSL配置Ubuntu,在Ubuntu中安裝Apache、PHP、MariaDB、Drupal。

1.2 WSL2簡介

        2019年推出,使用了一個Hyper-V輕量級虛擬機,虛擬機中運行着一個定製版的Linux內核。

2. 開發環境搭建步驟

2.1 第一步:在 Windows11 中安裝 WSL2、Ubuntu

  • 在Windows操作系統中啓用WSL2支持:在控制面板→"啓用或關閉Windows功能"窗口中,勾選以下兩個選項:適用於 Linux 的 Windows 子系統 (Windows Subsystem for Linux)、Virtual Machine Platform (虛擬機平台),重啓計算機。
  • 安裝WSL2,同時安裝一個Ubuntu系統實例:打開Windows PowerShell,在命令行輸入:wsl --install,過程中讓輸入一個賬號(zhouyiben)和密碼(000000)。默認安裝的Ubuntu的版本是:Ubuntu 24.04.3 LTS。

Ubuntu10.10安裝Drupal7及其環境(apache,mysql,php)_Apache

2.2 第二步:安裝並配置 Apache

2.2.1 安裝 Apache

  • 第一步:先更新軟件倉庫、升級軟件模塊。打開 Ubuntu 終端,更新軟件源並升級現有包,確保系統處於最新狀態:sudo apt update && sudo apt upgrade -y
  • 第二步:安裝Apache服務器:sudo apt install apache2 -y
  • 第三步:查看安裝的Apache的版本:apache2 -v
  • 第四步:啓動Apache服務:sudo service apache2 start(或sudo systemctl start apache2)
  • 設置Apache開機自啓動(在WSL 中重啓 Ubuntu 後,Apache自動啓動):sudo systemctl enable apache2
  • 驗證 Apache 是否安裝成功:
  • 方法一:在Windows瀏覽器中訪問http://localhost,應該看到 Apache2 Ubuntu Default Page。
  • 方法二:通過檢查Apache狀態:sudo systemctl status apache2【若顯示 active (running)】

2.2.2 配置 Apache

2.2.2.1 WSL中的Ubuntu系統中,Apache經常出現連接延遲和超時問題

在Ubuntu中輸入命令:sudo nano /etc/apache2/apache2.conf,文件中添加如下參數:

AcceptFilter https none
AcceptFilter http none

2.2.2.2 啓用Ubuntu中Apache的URL重寫模塊(這個是Drupal必需的)

  • 在Ubuntu系統命令行輸入apache2ctl -M或apachectl -M,查看Apache當前已經加載的模塊,看是否有rewrite_module模塊。如果沒有,必需執行下面的步驟,讓Apache包含此模塊。
  • 啓用mod_rewrite模塊:sudo a2enmod rewrite
  • 激活新的配置:sudo systemctl restart apache2
  • 檢查Apache配置是否有誤:sudo apache2ctl configtest(語法正確的話會返回Syntax OK)
  • 給Apache啓用簡潔鏈接功能:在Ubuntu系統中,修改Ubuntu/etc/apache2/apache2.conf文件(使用命令:sudo nano /etc/apache2/apache2.conf),把其中的 AllowOverride None改為 AllowOverride All,如圖:

Ubuntu10.10安裝Drupal7及其環境(apache,mysql,php)_Drupal_02

  • 重啓Apache使配置生效:sudo systemctl restart apache2

2.3 第三步:安裝PHP

  • 查看當前系統默認支持的 PHP 版本範圍:apt list php* 或 apt-cache search php-
  • 安裝PHP和常用擴展:sudo apt install php libapache2-mod-php php-cli php-mysql php-curl php-json php-gd php-mbstring php-xml php-zip -y
  • 補充知識:執行完上述操作後,發現少安裝了一個庫,可以執行如下操作:sudo apt install 庫名(例如:sudo apt install php-opcache)
  • 查看安裝的PHP版本:php -v【注意:此處如果查看失敗,會提示讓安裝PHP命令行工具,這個版本的PHP的命令是: sudo apt install php8.3-cli】
  • 重啓 Apache 使 PHP 生效:sudo systemctl restart apache2
  • 驗證 PHP 是否安裝成功:
  • Apache 的默認網站根目錄為 /var/www/html,在該目錄下創建 info.php:sudo nano /var/www/html/info.php
  • 輸入以下內容,按 Ctrl+O 保存,然後按回車輸入文件名,最後按Ctrl+X 退出:
  • 在Windows瀏覽器中輸入http://localhost/info.php,應該能看到詳細的PHP信息頁面。

完成以上步驟後,您的WSL2 Ubuntu環境中就已經成功安裝了Apache和PHP,並且可以通過瀏覽器訪問測試頁面了。


2.4 第四步:安裝 MariaDB 數據庫

  • 更新軟件包列表:在Ubuntu終端中運行以下命令,確保獲取最新的軟件源信息:sudo apt update
  • 安裝MariaDB服務器(安裝過程中會自動創建數據庫服務和相關依賴):sudo apt install mariadb-server【默認安裝的版本 10.11.13-MariaDB-0ubuntu0.24.04.1】
  • 啓動MariaDB服務:sudo systemctl start mariadb
  • 設置開機自動啓動(WSL2 重啓後會自動生效):sudo systemctl enable mariadb
  • 安裝完成後,MariaDB服務通常會自動啓動。可通過以下命令檢查服務狀態,確認是否正常運行:sudo systemctl status mariadb。如果看到狀態顯示為 active (running),説明服務已成功啓動。【注意:此時會進入分頁查看模式,按q或Ctrl+C即可返回命令】
  • 進行安全配置:MariaDB 安裝後默認安全性較低,運行MariaDB自帶的安全安裝腳本進行配置(設置 root 密碼、禁用匿名用户等),以提高數據庫的安全性:
  • 操作:輸入命令:sudo mysql_secure_installation
  • 設置root用户密碼:root
  • 移除匿名用户:Y
  • 禁止root用户遠程登錄:Y
  • 移除測試數據庫:Y
  • 重新加載權限表使設置生效:Y
  • 驗證登錄:使用以下命令以root用户身份登錄到MariaDB服務器控制枱:sudo mysql -u root -p,輸入之前設置的root密碼即可進入MariaDB的命令行界面。【注意:按Ctrl+D或輸入exit;或quit;即可退出並回到Ubuntu的終端】

2.4.1 MariaDB 服務相關的命令:

  • 啓動服務:sudo systemctl start mariadb
  • 停止服務:sudo systemctl stop mariadb
  • 重啓服務:sudo systemctl restart mariadb
  • 設置開機自啓:sudo systemctl enable mariadb
  • 檢查MariaDB服務狀態,確認是否正常運行:sudo systemctl status mariadb。如果看到狀態顯示為 active (running),説明服務已成功啓動。【注意:此時會進入分頁查看模式,按q或Ctrl+C即可返回命令】

2.5 第五步:在 Ubuntu 中給 PHP 安裝 Composer:

  • 操作地址:https://pkg.xyz/#how-to-install-composer【安裝的版本:version 2.8.12】
  • 安裝完成後,輸入composer -v驗證Composer是否正確安裝。

2.6 第六步:安裝 Drupal

1、給Ubuntu系統安裝解壓工具:unzip(註釋,是給Ubuntu系統安裝,不是給PHP解釋器安裝),命令:

  • sudo apt update
  • sudo apt install unzip

解釋:Composer 在下載Drupal依賴包(如 Drupal 的核心文件、第三方庫)時,會直接調用系統的 unzip 或 7zip 工具來解壓壓縮包,而不是依賴 PHP 的 zip 擴展。因此,需要先給Ubuntu系統安裝unzip或7zip。而PHP Zip 擴展的功能是:為 PHP 腳本 提供通過代碼(如 ZipArchive 類)直接讀寫 ZIP 文件的能力。

2、在Ubuntu終端進入 Apache 項目根目錄:cd /var/www/html

3、通過composer下載Drupal:composer create-project drupal/recommended-project drupal【就是Drupal官網上的那條命令:https://new.drupal.org/download】

4、在開始安裝 Drupal 項目前,需要先做以下工作

  • 為安裝過程中安裝翻譯做準備:在Drupal項目的web/sites/default/files文件夾中建立translations文件夾,這個文件夾用於存放安裝過程中下載下來的翻譯文件。
  • 安裝過程中會提示web/sites/default/目錄下settings.php文件不存在,因此需要先做以下工作:複製web/sites/default/default.settings.php,名稱改為settings.php。
  • 修改translations目錄和settings.php文件的權限:默認情況下,translations目錄和settings.php文件都不可寫,因此需要重新給html目錄及其子目錄和文件設置用户、用户組和權限,也就是執行如下命令:
  • sudo chown -R zhouyiben:www-data /var/www/html
  • sudo chmod -R 775 /var/www/html
  • Drupal 安裝過程中需要輸入數據庫名,因此打開DataGrip,創建一個新數據庫。

5、在瀏覽器中輸入localhost,進入 Drupal 項目的安裝。

2.7 第七步:給 Drupal 安裝 drush 工具

2.7.1 什麼是 drush?

Drush 是 Drupal Shell 的縮寫,是 Drupal 的命令行工具。它允許你通過命令行執行各種 Drupal 管理任務,比通過網頁界面操作更高效。

2.7.2 安裝drush

2.7.2.1 全局安裝 drush

安裝方法:在Windows上的任意目錄下的cmd中執行命令composer global require drush/drush,drush會被安裝到C:/Users/Jean/AppData/Roaming/Composer

説明:當電腦上安裝了多個 Drupal 項目時,全局安裝 drush容易導致問題。因此,不推薦對 drush 進行全局安裝,應該為每個項目單獨安裝 drush。

2.7.2.2 為某個項目安裝 drush

在某個具體項目上安裝:在項目目錄中執行composer require drush/drush

這裏以為“myblog”項目安裝 drush 為例進行介紹:

  • 第一步:為每個項目單獨添加 Drush 依賴。對於項目myblog(例如 /var/www/html/myblog):

cd /var/www/html/myblog
composer require drush/drush

  • 第二步:設置目錄所有者、用户組和權限
  • 設置所有者和組:所有者設置為zhouyiben,所屬組設置為www-data(這是Apache使用的用户和組):sudo chown -R zhouyiben:www-data /var/www/html
  • 設置權限:所有者全權限,組用户全權限,其他用户只讀和執行:sudo chmod -R 775 /var/www/html
  • 第三步:直接調用。每次使用 drush 時需要切換到對應項目根目錄:cd /var/www/html
  • myblog/vendor/bin/drush cr # 清除緩存【調用方式二:進入 cd /var/www/html/myblog/vendor/bin,然後使用命令:./drush cr,這會明確告訴 shell:“執行當前目錄下的 drush”。注意:在 Linux/Unix 中,當前目錄(.)默認不在 $PATH 中,這是出於安全考慮(防止惡意腳本偽裝成系統命令)。】
  • vendor/bin/drush status # 查看狀態

2.7.3 drush 常用命令

2.7.3.1 緩存管理命令

# 清除所有緩存(最常用)

drush cache-rebuild


# 或者簡寫

drush cr


# 清除特定緩存

drush cache-clear css-js

drush cache-clear menu

drush cache-clear theme-registry

2.7.3.2 站點管理命令

# 查看站點狀態

drush status


# 啓用模塊

drush pm-enable module_name


# 禁用模塊  

drush pm-disable module_name


# 更新數據庫

drush updatedb


# 執行 Cron

drush cron

2.7.3.3 配置管理命令

# 導出配置

drush config-export


# 導入配置

drush config-import


# 查看配置

drush config-get system.site

2.7.3.4 用户管理命令

# 創建用户

drush user-create username --mail="user@example.com" --password="password"


# 重置管理員密碼

drush user-password admin --password="newpassword"


# 登錄為用户(獲取一次性登錄鏈接)

drush user-login


3. Drupal 開發環境搭建過程中的疑難問題解決

3.1 安裝翻譯過程中出現AJAX錯誤

解決:網絡問題,按F5多刷新幾次。