利用raspberry pi搭建typecho筆記(一) nginx PHP server quick start


前言

因為一直對linux學習很有興趣,就拿手頭的樹莓派做了實驗,搭建一個簡易的php服務器用來跑typecho.

但是過程卻是異乎尋常的艱辛,幾乎每一步能卡住得地方都卡住了.而且typecho的資料相對於WordPress來說,本來又比較少,所以使得問題解決的過程也有些艱辛.

 

首先是樹莓派系統的選擇,雖然說官方系統選擇很多,但是啟動速度較慢,而且對於移動硬盤之類的外設的支持也不算好.畢竟也沒人真的把樹莓派當個純博客VPS之類的東西使用,還是需要考慮實用性,所以在這里向大家推薦RaspNAS這款系統,對於各種移動外設都有比較好的支持,優點如下:

1.輕量,RaspNAS的鏡像大小小於2G,啟動后占用的內存非常少.

2.快速,啟動速度相比於它基於的raspbian要快很多.

3.他的后台是基於nginx和php的,不僅提供了一個直觀的web后台用於監視raspberry pi的運行狀況,並且也為我們配置網頁減少了困難,事實上他有一個已經配置好的網頁環境,在他原先的版本里面並不支持離線下載,我直接將yaaw clone到/var/www就可以直接訪問了.

 

環境配置

要配置typecho運行的基本環境,我們需要如下一些東西,數據庫,nginx服務器,和php環境和一些插件.本着輕量的原則,我們並不選用過於龐大的mysql,而是使用輕量的sqlite.

nginx配置

首先安裝nginx

此處參考了Ducky Pond博客里的<How to setup a web server with Nginx/PHP on Raspberry Pi>這篇文章,原文連接在此

執行

1 sudo apt-get install nginx

等待安裝結束之后可以進行測試.

1 sudo service nginx start

可以看到service start的提示,然后用樹莓派的內網IP進行訪問,如果看到頁面的話,就說明nginx的安裝成功了.

nginx的默認的靜態web網站路徑為:usr/share/nginx/www ,這並不符合linux的慣例,通常應該為var/www

我們可以對此進行修改,首先創建這個目錄.

1 sudo mkdir /var/www

顯然,僅僅有這樣一個目錄是不夠的,我們還需要告訴nginx,我們將網頁存儲在了這個目錄.這就需要更改nginx的配置文件.

不過,在此之前,我們需要了解一下nginx配置文件是如何工作的.

先看一下nginx的目錄結構.

1 cd /etc/nginx/
2 ls 

結果如下

conf.d          koi-win      naxsi_core.rules  scgi_params      uwsgi_params
fastcgi_params  mime.types   nginx.conf        sites-available  win-utf
koi-utf         naxsi.rules  proxy_params      sites-enabled

因為nginx可以建立多個虛擬主機,從而允許一個服務器裝載多個網頁,而每個虛擬主機都對應着一個配置文件.

而在用紅色標出的兩個文件夾,就是用來存儲和啟用這些配置文件的.

在sites-enabled文件夾中,是nginx啟動時加載配置文件的文件夾,這里面存儲的是類似於快捷方式的東西,他們指向了sites-available文件夾中對應的配置文件(symlink).也就是說,sites-available是存儲所有配置文件的文件夾,而需要啟用的這些配置文件的話,只需要在sites-enabled中做出標記即可.

那么首先,我們禁用默認的叫做default的配置文件.來阻止nginx將 /usr/share/nginx/www作為網站目錄.

1 sudo service nginx stop
2 sudo unlink /etc/nginx/sites-enabled/default

接下來我們在sites-available目錄中新建配置文件.(假如你不習慣使用vim或者還沒有安裝vim的話,也可以用nano等替代,或者參考我之前的博文,使用sublime text的sftp插件來編輯配置文件)

1 sudo vim /etc/nginx/sites-available/mysite

寫入如下配置

server {
        listen 80;
        root /var/www;
        index index.html index.htm;
}

這個配置文件的意義是,新建一個server,用來監聽80端口上的請求,這個服務器的根目錄為/var/www , index的文件名為index.html或者index.htm,如果想要更詳細的配置,可以訪問這個頁面,給出了完整的nginx配置文檔.

保存退出,再啟用這個配置文件.

1 cd /etc/nginx/sites-enabled
2 sudo ln -s ../sites-available/mysite
3 sudo service nginx start

這樣大功告成,我們可以放入一個測試用的html到/var/www查看效果.

配置PHP環境

在這里nginx只是作為一個反向代理和靜態網頁服務器,類似於PHP這樣的動態網頁,nginx並不能執行,所以我們還需要PHP服務器用來處理PHP網頁中的代碼,並將結果返回給nginx回報給訪問者.而在網頁服務器和php服務器之間通信的技術有幾種,除了Apache以外,還有FastCGI,在這里,我們選擇使用FastCGI來進行通信的程序PHP-FPM,以及一個PHP插件apc,用來優化PHP的表現.(事實上,為了讓typecho能夠正常運作,我們仍然需要安裝PHP和sqlite通信的程序,為了讓本文更有條理,這一部分將會在數據庫配置部分進行說明.)

首先安裝

1 sudo apt-get install php5-fpm php-apc

假如您需要安裝sqlite來用來配置typecho,可以執行

1 sudo apt-get install php5-fpm php5-sqlite sqllite

當安裝結束之后,fpm應該會自動開始運行,不過為了讓apc插件能夠被加載運作,我們需要讓他重新啟動一下.

1 sudo service php5-fpm restart

然后我們在更改原先的nginx配置文件,讓nginx知道應該把PHP請求送到哪里去處理.打開剛剛配置的/etc/nginx/sites-available/mysite文件,加入PHP處理部分的示例代碼.

server {
        listen 80;
        root /var/www;
        index index.php index.html index.htm;

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

這樣一個最簡單的PHP服務器就已經配置完成了.我們可以新建一個最簡單的PHP文件用來測試這個服務器.

在/var/www/目錄中新建一個PHP文件,比如myweb.php

寫入如下內容

<?php
        phpinfo();
?>

重啟nginx服務來加載配置文件.

sudo service nginx restart

測試網頁192.168.1.00/myweb.php 其中192.168.1.100是你的樹莓派的內網IP,假如可以看到頁面,那么配置就已經完成了.不過需要注意的是,typecho因為涉及到rewrite的問題,需要支持pathinfo,所以他的配置文件並不能寫成最簡單的

location ~ .*\.php$

而是要改成

location ~ .*\.php(\/.*)*$

這樣就可以完成typecho安裝的nginx環境配置了.

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM