[Pi]架設網頁伺服器

總算是要來個經典組合:
Linux + Apache + PHP + MySQL

首先更新一下。

sudo apt-get update
sudo apt-get upgrade

安裝網頁伺服器(apache2)

sudo apt-get install apache2

接著我們要測試是否運作正常。首先要先確定 Raspberry Pi 的 IP 位置,可以使用 ifconfig 指令,若是跟我一樣是用遠端連線那 IP 位置就不用再費心查了。拿到 IP 位置後,直接開電腦或手機的瀏覽器,輸入自己機器的 IP。

pi-server-01

若是出現以上畫面表示建置成功!

或者是用以下指令測試也行:

sudo systemctl status apache2

安裝 PHP 語言

sudo apt-get install php

寫個簡單的網頁

事實上這一步也算是測試而已。首先移動到以下資料夾並建置一個名為my.php的網頁檔案:

sudo nano /var/www/html/my.php

打一段簡單的 php 網頁。

<h1>Hello, this is Alex!</h1>
<?php
phpinfo();
?>

這裡所使用的編輯器叫做 nano,至於如何使用就看它下面的提示即可。我現在想要儲存並且關閉,因此我是按 Ctrl + O,改完檔名後再按 Ctrl + X 關閉。

接著試試看在剛才的瀏覽器的網址列中自己的 IP 後面加上自己的檔名,像我的就是 /my.php

pi-server-02

最上方是我剛剛打的標題,下面是有關 php的相關資料,看起來都跟我剛才設置的網頁一樣。

安裝設定MySQL資料庫系統

基本上指令是(相關書籍裡提供的):

sudo apt-get install mysql-server
sudo apt-get install mysql-client

但我這裡出現了錯誤訊息,可能是改名了之類的,因此改為:

sudo apt-get install mariadb-server
sudo apt-get install mariadb-client

若要查這個下載包的名字的話,可以試試這個指令:

apt-cache search mysql-server

並且安裝正確的名字,應該就不會和我一樣突然出現問題了。或者也可以試著讀讀看錯誤訊息,通常都會提供你想要下載的 package 的對應名字。

設定資料庫的安全性

sudo mysql_secure_installation

安裝 php-mysql

接著再安裝 php-mysql 模組

sudo apt-get install php-mysql

使用看看 MySQL 的介面:

sudo mysql -u root -p

密碼亂輸好像沒什麼差別,這個問題我要再思考看看,不過有出現相關介面應該沒什麼問題。

安裝 Adminer

最後一步就是安裝 Adminer。其實大家比較常聽到的應該是 phpMyAdmin,但在安裝以及設定上我被弄到很火大(自己能力不足惱羞成怒 XD),偶然發現 Adminer 不論何種意義上都相當簡單且輕量,因此決定試試看。

首先要去 Adminer 的網站 查詢要下載的項目網址。

例如我要下載的是螢光筆畫的那一項,按滑鼠右鍵「複製連結網址」:

pi-server-03

將工作目錄移動到/var/www/html/底下,並且輸入以下指令:

sudo wget https://github.com/vrana/adminer/releases/download/v4.7.8/adminer-4.7.8-mysql.php

飛快地完成了安裝,基本上到這邊環境應該是已經建置好了。

資料庫基本的使用

先進入到 MariaDB 的介面。

sudo mysql

以下指令都是在介面裡面下的:

  • 查看目前的使用者:SELECT USER();
  • 顯示已建立的 database:SHOW databases;

現在我們要試試看建一個資料庫,並新增一個表格,還要新增使用者:

  • 建立名字叫做 example 資料庫:CREATE DATABASE example;
  • 跳至 example 這個資料庫工作:USE example;
  • 拋棄 example 資料庫:DROP DATABASE example;

不過先別那麼快丟掉 exampel 這個資料庫,我們先在裡面運作一些其他的指令:

  • 建立 testTable 資料表:
    create table testTable(name varchar(10), join_date date) DEFAULT CHARSET=utf8;
    

    當然,這資料表的規格就依照自己需求去設定。

  • 查看:DESC testTable;
  • 刪除:DROP TABLE testTable;
  • 清空資料:DELETE FROM testTable;

再來是蠻重要的步驟:

  • 建立使用者
    CREATE USER 'testUser'@'localhost' IDENTIFIED by '(這裡寫testUser要設置的密碼)';
    
  • 接著要設定權限:
    GRANT ALL PRIVILEGES ON wordpress.* TO 'testUser'@'localhost';
    
  • 更新權限表:FLUSH PRIVILEGES;

Adminer 基本使用

這裡其實蠻簡單的,剛才裝完了 Adminer 可以在網址列自己機器的ip後面加上:/adminer.php

pi-server-04

這樣就是有順利安裝。接著在帳號、密碼的地方輸入剛剛設置的使用者,例如我是 testUser,我就在帳號的地方輸入 testUser。

YA! 成功登入,而且應該是可以看到自己剛才建置的資料表。

pi-server-05

對了,中間有遇到出現錯誤的狀況: apache2:adminer-所有支援的PHP擴充套件(MySQLi,MySQL,PDO_MySQL)都不可用

如果有出現此訊息,第一個可能是還沒安裝 php-mysql,第二個可能是沒有重啟伺服器 sudo service apache2 restart


參考資料

留言