---
# System prepended metadata

title: CodeIgniter4 建置

---

# CodeIgniter4 建置

> 環境：VM VirtualBox
> 系統：Ubuntu 20.04


### Step 1. 安裝PHP & 其擴充元件

```bash=
sudo apt update
sudo apt install php-cli unzip
```

### Step 2. 安裝Composer

```bash=
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
```
- 補充 Composer 是用 SHA-384 hash 去安裝
```bash=
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
```
- Hash填入
```bash=
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
```
- 可以下```composer``` 了解更多

### Step 3. 開始第一個Code

- [官網範例](https://codeigniter.tw/user_guide/installation/installing_composer.html)

```bash=
$ composer create-project codeigniter4/appstarter MyFirstCI4
```





### 遇到的問題
![](https://i.imgur.com/IKbejpd.png)


- 問題1 > 
    - PHP error: “The zip extension and unzip command are both missing, skipping.” 
    - [解決方法](https://stackoverflow.com/questions/41274829/php-error-the-zip-extension-and-unzip-command-are-both-missing-skipping)
    ```bash=
    $ sudo apt-get install zip unzip php-zip
    ```

- 問題2 > 
    - codeigniter4 / framework [4.0.0，...，v4.1.2]要求ext-intl *->系統中缺少該文件。安裝或啟用PHP的intl擴展。
    - 根composer.json需要codeigniter4 / framework ^ 4-> codeigniter4 / framework [4.0.0，...，v4.1.2]可以滿足要求。
    - [解決方法]()
    ```bash=
    $ sudo apt-get install php7.4-intl
    ```
    
- 問題3 >
    - phpunit / phpunit [9.1.0，...，9.5.4]要求ext-dom *->它從您的系統中丟失。 安裝或啟用PHP的dom擴展。
    - 根composer.json需要phpunit / phpunit ^ 9.1-> phpunit / phpunit可以滿足[9.1.0，...，9.5.4]。 
    - [解決方法](https://dchesmis.blogspot.com/2016/10/osubuntu-16.html)
    ```bash=
    $ sudo apt-get install php7.4-xml
    ```
    
- 問題4 >
    - phpunit / phpunit [9.1.0，...，9.5.4]要求ext-mbstring *->它在您的系統中丟失。 安裝或啟用PHP的mbstring擴展。
    - 根composer.json需要phpunit / phpunit ^ 9.1-> phpunit / phpunit可以滿足[9.1.0，...，9.5.4]。
    - [解決方法](https://stackoverflow.com/questions/32488917/composer-the-requested-php-extension-mbstring-is-missing-from-your-system)
    ```bash=
    $ sudo apt-get install php-mbstring
    ```