攝影師:Negative Space,連結:Pexels
哈囉,我們又見面了,最近因為工作的關係,需要用到 PHP
(其實是因為我最近在各種後端面試 ,有些考試要用到,只好來惡補一下XD),那麼今天就來記錄一下我的 PHP
之旅,類此夠~
PHP
是什麼?PHP 是一種程式語言,常被用來 架網站,相信即使不是後端工程師或軟體人,也會多多少少聽過 PHP
這個名詞,因為知名的部落格軟體 Wordpress 就是用 PHP
寫的,架 Wordpress
時,也需要用到 phpMyAdmin 的資料庫管理工具,由此可知,是個曝光度很高的程式語言呢~
PHP
這個程式語言,在我的印象中(是個人立場,不代表任何人的意見),是個比較老派的語言,跟 Java
有得比,事實上,在發展歷史中,也是大概 1995
年左右的產物,也就是我剛出生的時候?,然後,就在我開始學習後端之後,才知道有 Laravel
這個近期崛起的後端框架,這個框架就是使用 PHP
,才讓 PHP
又紅起來,但不要問我其他的,我也只是在 Hello World
等級的人而已 QQ
PHP
?到 PHP
官網看,現在更新到 7.2.30
、7.3.17
和 7.4.5
,而且最後更新還是一個月前的事而已,是個還很活躍的程式語言 ~
macOS
安裝 PHP
這相對 Windows
用戶來講,是比較簡單的安裝方法,可以參考 (2019) macOS 上安裝 PHP 語言 | OA Wu's Blog,簡單來說只要一行,$ sudo brew install php
就可以安裝 homebrew
上的最新版本囉,可以用 $ php -v
來檢查有沒有安裝成功,也可以看到你安裝的 php
是哪一個版本哦。
Windows 10
安裝 PHP
Windows
可以直接在官網下載你想要的 PHP
版本,但還要額外修改一些設定(像是 php.ini
等等),有點麻煩,我自己也沒有很熟,可以參考 (2017) 在 win10 上安裝與設定 PHP ( IIS) | 未老人的手扎
PHP
Hello World 呢?別急,這不就來了嗎,先用你慣用的文字編輯器打下:
<?php
echo "Hello World, my dear PHP";
?>
存檔為 helloworld.php
,接下來就是要執行了,打開你的 Terminal
或 cmd
,切換到你存放 helloworld.php
的資料夾,執行 $ php helloworld.php
,就會跑出
Hello World, my dear PHP
在此,你已經成功寫下第一支 PHP
程式,但,這應該不是你想要的吧 ?!
PHP
在網頁上執行啊!沒錯,相信大家寫 PHP
大部分就是為了要架伺服器用的吧,這時候可不只是寫個 php
檔案就能讓其他人能使用,你還需要架設 Web Server
(你可能聽過 Apache
、Nginx
之類的名詞),來把你的 PHP
code 放到網頁上執行。
你可以把 Web server
和 PHP
code 的關係,想像成下圖,使用者(client
) 使用自己的裝置(電腦、手機等),透過 http
或 https
的協定,將請求(request
)傳送到我們的 Web server
,然後 Web server
判斷使用者想要的是哪個路徑或頁面,再由 Web server
去把直譯後的 php code 轉成 html
檔,再回傳(response
) 給使用者的瀏覽器,來渲染(render
) 成你在瀏覽器看到的網頁樣子。
在這裡,你有幾種選擇來執行你的 PHP
程式到網頁上,第一種是「自己安裝 Apache
等等的 Web server」,優點是你可以把 Apache
抽換成 Nginx
或其他的 Web Server,缺點是你要自己設定、維護和管理;第二種是使用 PHP
框架,像是 Laravel
可以直接幫你把 PHP
code 跑起來,開發很方便;第三種是「安裝懶人包 XAMPP
」,就算不使用框架,也可以把純 PHP
code 放到網頁上。
針對第一種方法,可以參考 (2016) 在Mac設定Apache、PHP、MySQL | Medium,這樣的做法,比較適合對 Apache、PHP、MySQL 都熟的人,才比較不會出錯,不然只是想要簡單寫個 PHP
而已,還要先去了解 Apache
、MySQL
的運作跟指令,實在是很煩。
第二種方法,框架總是把細節包的好好的,開發者可以很專注在 開發 這件事情上,相對的壞處就是,被保護的太好了,實際上的運作細節可以完全不知道,長期來看,安捏恩湯,但如果你已經了解整個運作原理,使用框架來加速開發沒什麼不好的。
XAMPP
比較純、簡單我只是想要簡單跑個 PHP
而已,還沒有想要碰到框架,但要自己維護 apache
的服務實在有點麻煩,所以我在這邊選擇使用 XAMPP,你可以把 XAMPP
想成一種 PHP
的網頁開發懶人包,XAMPP
的每個字母都有意思,其中 X
我猜是 mixed 的意思,而 A
代表 Apache
,M
代表 MariaDB
,然後兩個是 PHP
和 Perl
,看到這裡應該能想像懶人包的概念了,也就是把網頁開發需要的東西都包給你。
使用 XAMPP
的話,只要簡單點個 Start
按鈕、再到 Volumes
點 mount
按鈕,整個服務就跑起來了,再點 Go to Application
按鈕,就有 XAMPP
的 Hello World
頁面。
使用 XAMPP
,我這邊的預設是 http://192.168.64.2 這個網址,看這個 IP 也知道這是 local IP,也就是說把這串網址,傳給你朋友,他會很傻眼 XD,因為他連不到。
XAMPP
,執行我自己的 PHP
code ?在 XAMPP
的 Volumes
頁面,點 Explore
,然後找到 htdocs
資料夾
htdocs
就是你的 PHP
source code 的專案資料夾了,ht
代表 host
(主機) 的意思,docs
代表 documents
(文件),點進去!你會發現 index.php
,這就是現在你的網頁的首頁,裡面長這樣:
<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$uri = 'https://';
} else {
$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/dashboard/');
exit;
?>
Something is wrong with the XAMPP installation :-(
我們就直接把裡面改成這樣:
<?php
echo "<h1>Hello World, PHP with XAMPP</h1>";
echo "只是想跑個 php 這麼麻煩!";
?>
ps. 在 php
內,可以寫 html
的語法 tag 唷~
Go to Application
的那個網頁,重新整理之後就可以看到我們自己寫的 PHP
程式拉 ~
在使用 XAMPP
的情況下,routing
這件事是需要自己手動來的 XD,你可以透過在 htdocs/
這個資料夾下,再創一個叫做 hello_world
的資料夾,然後在 hello_world
的資料夾中,再新增一個叫做 index.php
的檔。
所以現在的目錄架構是這樣的:
`htdocs/`
├ `index.php`
├ ...
└ `hello_world/`
└ `index.php`
如果說 hello_world/index.php
是這樣的:
<?php
echo "<h1>這是第二層的 Hello World</h1>";
?>
跑起來就是這樣
相信你看到這裡,會跟我有一樣的感受,怎麼跑個 PHP
這麼麻煩啊!但其實麻煩的不在 PHP
,而是「透過網頁執行 PHP
」,這件事情才是麻煩,相同原理,如果今天我不用 Django
的話,我想要單純透過網頁執行 Python
也是一樣的麻煩,重點在於 Web Server
的觀念理解,還有 Web Server
的操作,但不得不說,框架真的太方便了。
好的,講這麼多,都還沒開始 PHP
語法呢 ~
我是 RS,這是我的 不做怎麼知道系列 文章,我們 下次見。