iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 27
0
自我挑戰組

30天學會用FreeBSD & Apache架網站系列 第 27

【Day27】架PHP

之前講到寫網頁的時候有提到PHP,他是一種程式語言,可以產生動態網頁,很多網站都會用到它,就算自己不會寫,架WordPress之類的時候也會用到,所以一定要架一下。

裝PHP

一開始就是裝滿滿的東西
pkg install php73-mysqli
pkg install php73-pdo_mysql
pkg install php73-gd
pkg install php73-session
pkg install mod_php73

httpd.conf

裝完之後就又要去httpd.conf了,在裡面加入:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

裝完最後一個東西的時候也會有提示要加上述那些東西。
一定要記得加,不然他會跑不出來。
如果需要的話也可以改一下DirectoryIndex,改成index.php優先之類的。
弄完之後service apache24 restart,然後去放網站的目錄vim index.php,加入以下幾行:

<?php
    phpinfo();
?>

然後再連到你的網站看一下,如果出現一大堆資訊那就代表成功了,但是他只是給你測試用,務必趕快把它關掉,他會透漏一些系統的訊息

一點點的PHP語法

老實說我自己是不會PHP的,只會一點點基本的指令,函式根本都不會,但還是可以稍微講一下。
.php裡面是可以包含HTML的,像是:

<h1>phpinfo</h1>
<?php
    phpinfo();
?>

而他會等價於:

<?php
    echo "<h1>phpinfo</h1>";
    phpinfo();
?>

這時候會看到一個echo,他顯然就是用來輸出,而他輸出的東西會直接轉成HTML而不是純文字。
接下來講一下語法:
看一下上面的範例,顯然可以發現PHP的程式碼需要被包在<?php ?>裡面,而跟一般的程式一樣,需要加分號。除了上面看得出來的,PHP的變數需要以$開頭,這是平常寫程式比較不常遇到的(吧)。
然後真的沒甚麼好講的了QQ
最後講一下要怎麼接收從HTML傳過來的資料。
我們先弄一個HTML檔:

<form action="index.php" method="post">
    <input type="text" name="out">
    <input type="submit" value="Submit">
</form>

來講一下HTML好了,因為當初可以說是沒有想到會講到這裡XD
他也是一個巢狀結構,就像上面那樣,我們把forminput分開來講:
<form action="" method=""> </form>:
一個表單的概念。action是決定要把輸入的東西傳到哪;method是傳的方法,有getpost,差別在於前者會把資料寫在網址後面,而後者不會,所以後者理論上相對安全。
<input type="" name="" value="">:
一個輸入資料的地方。type有超級多種的,請看官方,我們舉例只用到textsubmit而已。name是名稱,而value用在submit的時候可以設定那個按鈕的文字。
這個就大概說說畢竟我們的重點不是這個。
在上面的text打一些字之後按下submit,然後資料就會傳送到index.php了。那傳過去需要接收,而PHP他有一個變數可以直接存:$_POST$_GET(大小寫要對喔),用哪個就看你是用什麼方法傳的,而不能只打這樣喔,你必須要在後面加個中括號,裡面放輸入物的名字,如:$_POST["out"]
所以你可以:

<?php
    echo $_POST[out];
?>

然後他就會輸出你剛剛在index.html輸入的文字了。

今日小結

今天就是架了一下PHP,超快的,蠻簡單的。
啊PHP建議要學一下,很多東西都會用到,我自己最近也在學只是來不及在寫這篇文前學好QAQ


上一篇
【Day26】Apache的小雜項
下一篇
【Day28】架設MySQL
系列文
30天學會用FreeBSD & Apache架網站30

尚未有邦友留言

立即登入留言