位元詩人 [PHP] 程式設計教學:建置開發環境

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

本文介紹建置 PHP 開發環境的過程。實務上 PHP 網頁程式會托管在 GNU/Linux 上,故這裡的說明會以 GNU/Linux 為主。但會簡單介紹在 Windows 上的使用方式,讓還沒學習 GNU/Linux 的讀者也可以學習 PHP。

先不要裝 Apache 和 MySQL 也可以

典型的 PHP 教學會在一開始就安裝 PHP + Apache (網頁伺服器) + MySQL (關連式資料庫) 的全家餐。Windows 上甚至還有數個一鍵安裝的軟體,像是 XAMPPMAMPLaragon。但是,這不是必要的,一開始只裝 PHP 即可。

原本安裝 Apache 或 Nginx 的目的是輸出 PHP 腳本所生成的動態網頁。由於目前的 PHP 有內建開發用網頁伺服器,安裝 Apache 或 Nginx 不是必要的。MySQL 則是用來存資料的,一開始不會用到,所以先不裝無妨。由於使用 Apache、Nginx、MySQL 等軟體都要學習設置檔的配置方式。對初學者來說,這是額外的負擔。

在 GNU/Linux 上安裝 PHP

CentOS

在 CentOS 上輸入以下指令即可安裝 PHP:

$ sudo dnf install php php-devel

php-devel 是標頭檔的部分,是為了安裝 PHP 延伸套件 (extension package) 而安裝的。如果用不到可先略去。

Ubuntu

在 Ubuntu 上輸入以下指令即可安裝 PHP:

$ sudo apt install php php-dev

同理,php-dev 是標頭檔的部分。

openSUSE

在 openSUSE 上輸入以下指令即可安裝 PHP:

$ sudo zypper install php7 php7-devel

同理,php7-devel 是標頭檔的部分。

在 Windows 上安裝 PHP

到 PHP 的官方網站下載 PHP 的主程式即可。在 Windows 上的程式會分為 non thread safe 和 thread-safe 的版本,這主要和網頁程式的形態相關 (出處)。對於基本的學習來說沒差。

也可以使用 Chocolatey 來安裝 PHP。只要輸入一行指令即可:

> choco install php

在筆者撰寫這篇文章時,PHP 的大版本號已經來到 PHP 8 了。所以這行指令會安裝 PHP 8。

筆者先前提過,目前許多 GNU/Linux 發行版的 PHP 的大版本號仍停留在 PHP 7。所以,也可以刻意安裝先前的版本:

> choco install php --version=7.4.22

(選擇性) 安裝 Laragon

一鍵安裝 PHP 套餐的軟體有很多,這裡以 Laragon 為例,說明安裝和使用這類軟體的方式。

選擇安裝時所用的語言:

指定安裝 Laragon 時所用的語言

Laragon 可以選擇正體中文。這裡使用英文 (English)。

選擇安裝位置:

指定安裝 Laragon 的位置

沒有明確理由的話,使用預設位置即可。即使要換安裝位置,也不應該在安裝路徑上使用空白 (space),以免造成不必要的麻煩。

選擇額外的功能:

指定安裝 Laragon 時要附加的額外功能

這些功能是不必要的,故將其取消。

準備安裝 Laragon:

準備安裝 Laragon

這裡只是確認一下配置是否正確,繼續下一步即可。

安裝完成時出現的訊息:

完成安裝 Laragon

安裝完後,開啟 Laragon 主程式,到 Preferences (偏好設置) 裡選擇要啟動的服務:

在 Laragon 中選擇服務及其 Port

筆者比較習慣用 Nginx,所以把 Apache 停掉。如果暫時不需要 MySQL 的話,也可以先停用。

第一次啟動服務時,Windows Defender (防火牆) 會發出以下的警告訊息:

Windows Defender 偵測到 Laragon 中的 Nginx

直接允許即可。我們不會長時間開著這些服務,用完後即會停止這些服務。或許有些程式設計師會拿這些一鍵安裝軟體直接架站。不過,為了安全考量,實際要上線的網頁程式還是托管在 GNU/Linux 上比較好,這些一鍵安裝軟體只是拿來練習 PHP 的。

筆者先前嘗試過 MAMP。但使用 MAMP 時,有些網頁上的圖片無法正常顯示,故筆者改用 Laragon。

(選擇性) 設置 Nginx

Nginx 的設置比較複雜。設錯的話,可能會無法觀看該伺服器上的網頁;若發生嚴重錯誤,Nginx 伺服器會無法啟動和運作。

筆者在這裡列出一個 Nginx 設定檔的範例。使用 Laragon 的話,該設定檔會寫在 C:/laragon/etc/nginx/site-enabled/00-default.conf 。Laragon 的 Nginx 設定檔是參考 Ubuntu 的配置來設定的。

請讀者細細參考本範例設定檔來設置 Nginx 伺服器。確認每一行所代表的意義,想一下是否適用於自己的情境。不要胡亂地貼上他人所給的 Nginx 範例設置,那不一定適用於自己的情境。

# A sample Nginx configuration for Laragon.
#
# Don't simply copy and paste the configuration here. Instead,
#  modify it according to your own situations.

server {
    # Port of your server.
    listen 80 default_server;

    # Domain name of your server.
    server_name localhost ;

    root "C:/laragon/www/";

    # Set index page.
    index index.html index.htm index.php;

    # Restrict access to local network only.
    allow       127.0.0.1;
    deny        all;

    include "C:/laragon/etc/nginx/alias/*.conf";

    # Route to root path of a web server.
    location / {
        try_files $uri $uri/ =404;
        autoindex on;
    }

    # Pass PHP scripts to a FastCGI server.
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php_upstream;      
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    charset utf-8;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    # Disallow access to Apache configuration files.
    location ~ /\.ht {
        deny all;
    }
}

按照此設置,在開啟 Nginx 伺服器後,到 http://localhost 即可看到網頁。日後自己寫的 PHP 命令稿,放到 C:/laragon/www 即可。

(選擇性) 安裝 C 開發環境

如果要編譯 PHP 延伸套件的話,需要 C 編譯器。這裡介紹在 GNU/Linux 上建置 C 開發環境的過程。一開始學習 PHP 語法的階段,可先略去這個動作。

在 Windows 上編譯 PHP 延伸套件的實用性甚低,因為 Windows 不是托管 PHP 網頁程式的主要平台,故不需過度鑽研這方面的議題。

確認 PHP 可用

使用 php --version 指令即可觀看系統上的 PHP 版本:

$ php --version
PHP 7.2.24-0ubuntu0.18.04.7 (cli) (built: Oct  7 2020 15:24:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.7, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

如果有顯示某個版本號,代表可以使用 PHP。如果沒有看到版本號,可能是系統上沒安裝 PHP 或是沒有正確地設置 PATH 環境變數。請自行確認並排除問題。

選擇順手的編輯器

雖然市面上也有一些給 PHP 用的 IDE,剛開始學 PHP 時,先用 VSCode 即可。等學久一點,自然會知道自己需要什麼樣的編輯器。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。