鍍金池/ 教程/ 嵌入式/ 樹莓派做 web 服務(wù)器
樹莓派 GPIO 控制
樹莓派介紹
樹莓派做 wifi 熱點
樹莓派網(wǎng)絡(luò)與更新配置
樹莓派內(nèi)核編譯與固件升級
樹莓派做 web 服務(wù)器
樹莓派啟動方式及支持的系統(tǒng)
樹莓派配置
樹莓派 spi 液晶屏支持
樹莓派常用軟件及服務(wù)

樹莓派做 web 服務(wù)器

一想到 Linux Web 服務(wù)器,我們首先想到的是:Apache + MySql + Php。

  • Apache 是世界使用排名第一的 Web 服務(wù)器軟件。 可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的 Web 服務(wù)器端軟件。
  • MySQL 是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典 MySQL AB 公司開發(fā)。是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。
  • PHP(外文名: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言。語法吸收了 C 語言、Java 和 Perl 的特點,易于學(xué)習(xí),使用廣泛,主要適用于 Web 開發(fā)領(lǐng)域。

樹莓派可以安裝這個 LAMP 系列,但 Apache 和 MySql 對于樹莓派這個小小的機器,太重了,主要是消耗內(nèi)存多\速度慢\占用磁盤大(約 200M),所可以選擇安裝一個輕量級的 Web 服務(wù)器: nginx + php + sqlite

  • nginx 是個輕量級的 Web 服務(wù)器,是一款輕量級的 Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,上 nginx 的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
  • SQLite 是一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百 K 的內(nèi)存就夠了。

Apache + MySql + Php 安裝

安裝 Apache

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

Apache 默認路徑是/var/www/

其配置文件路徑為/etc/apache2/

可以通過sudo vi /etc/apache2/ports.conf修改監(jiān)聽端口號

重啟服務(wù)生效sudo service apache2 restart

安裝 mysql

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

安裝 PHP

輸入下面的命令,就可以安裝 PHP 5,以及 PHP 訪問 mysql 數(shù)據(jù)庫所需要的庫。

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

測試

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

創(chuàng)建一個/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服務(wù)器 (約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 - 監(jiān)聽的端口號,如果與其它軟件沖突,可以在這里更改。

root /usr/share/nginx/www; - nginx 默認路徑 html 所在路徑。 index index.html index.htm index.php; - nginx 默認尋找的網(wǎng)頁類型,我們可以增加一個 index.php。

PHP 腳本支持

找到 php 的定義段,將這些行的注釋去掉 ,修改后內(nèi)容如下

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 服務(wù)器已正常啟動)

測試 php

在樹莓派中生成一php文件

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

在文件中輸入以下內(nèi)容

<?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;  

?>