在樹莓派上構建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;
?>