1. 程式人生 > >在樹莓派上構建web伺服器《樹莓派小用1》

在樹莓派上構建web伺服器《樹莓派小用1》

一想到 Linux Web 伺服器,我們首先想到的是:Apache + MySql + Php。

  • Apache 是世界使用排名第一的 Web 伺服器軟體。 可以執行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的 Web 伺服器端軟體。
  • MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發。是最流行的關係型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS(關係資料庫管理系統)應用軟體之一。
  • PHP(外文名: Hypertext Preprocessor,中文名:“超文字前處理器”)是一種通用開源指令碼語言。語法吸收了 C 語言、Java 和 Perl 的特點,易於學習,使用廣泛,主要適用於 Web 開發領域。

樹莓派可以安裝這個 LAMP 系列,但 Apache 和 MySql 對於樹莓派這個小小的機器,太重了,主要是消耗記憶體多\速度慢\佔用磁碟大(約 200M),所可以選擇安裝一個輕量級的 Web 伺服器: nginx + php + sqlite

  • nginx 是個輕量級的 Web 伺服器,是一款輕量級的 Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,上 nginx 的併發能力確實在同類型的網頁伺服器中表現較好。
  • SQLite 是一款輕型的資料庫,是遵守 ACID 的關係型資料庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百 K 的記憶體就夠了。

Apache + MySql + Php 安裝

安裝 Apache

Apache 可以用下面的命令來安裝sudo apt-get install apache2

Apache 預設路徑是/var/www/

其配置檔案路徑為/etc/apache2/

可以通過sudo vi /etc/apache2/ports.conf修改監聽埠號

重啟服務生效sudo service apache2 restart

安裝 mysql

sudo apt-get install mysql-server 安裝過程中,會出現一個提示符讓你輸入一個密碼。 這個密碼是 mysql root 使用者的密碼。

安裝 PHP

輸入下面的命令,就可以安裝 PHP 5,以及 PHP 訪問 mysql 資料庫所需要的庫。

sudo apt-get install php5
sudo apt-get install php5-mysql

測試

安裝完成後,可以在瀏覽器中輸入你路由器的 IP 或域名,就可以訪問你的網站了。你應該能看到一個頁面顯示“It works”,但是沒有其它內容。

建立一個/var/www/index.php

<?php  
  print <<< EOT  
<!doctype html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<title>Test successful</title>  
</head>  
<body>  
<h1>Test successful</h1>  
<p>Congratulations.</p>  
<p>Your webserver and PHP are working.</p>  
</body>  
</html>  
EOT;  

?> 

nginx + php + sqlite 安裝

安裝 nginx web伺服器 (約6MB)

sudo apt-get install nginx

啟動 nginx

sudo /etc/init.d/nginx start

nginx 的 www 根目錄預設在/usr/share/nginx/www

修改 nginx 的配置檔案

sudo vi /etc/nginx/sites-available/default

以下幾個選項注意一下

listen 8080;## listen for ipv4; this line is default and implied - 監聽的埠號,如果與其它軟體衝突,可以在這裡更改。

root /usr/share/nginx/www; - nginx 預設路徑 html 所在路徑。 index index.html index.htm index.php; - nginx 預設尋找的網頁型別,我們可以增加一個 index.php。

PHP 指令碼支援

找到 php 的定義段,將這些行的註釋去掉 ,修改後內容如下

location ~ .php$ {
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
}

php 段中有一些其它定義,不要去動它,比如

#      fastcgi_split_path_info ...
#      fastcgi_pass 127.0.0.1:9000

安裝 php 和 sqlite (約 3MB)

sudo apt-get install php5-fpm php5-sqlite

重新載入 nginx 的配置

sudo /etc/init.d/nginx reload

測試 html

通過主機的 IE 訪問樹莓派,可以看到主頁(表示 Web 伺服器已正常啟動)

測試 php

在樹莓派中生成一php檔案

sudo vi /usr/share/nginx/www/index.php

在檔案中輸入以下內容

<?php  
  print <<< EOT  
<!doctype html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<title>Test successful</title>  
</head>  
<body>  
<h1>Test successful</h1>  
<p>Congratulations.</p>  
<p>Your webserver and PHP are working.</p>  
</body>  
</html>  
EOT;  

?>