|
在這個博客最終被搭建成功時,我是有許多感慨的。感慨之一,作為一個學(xué)機械出身的電子工程師來學(xué)linux和搭建簡單的網(wǎng)絡(luò)應(yīng)用,遇到的麻煩也是超級多的,但也是著實有趣。感慨之二,我終于又開始寫博客了,這點以后再說。
第一篇文章,是 [How To] 系列的,感覺也是怪怪的,也許是因為我一直想寫一篇類似“我從哪里來”的短文?
--- 廢話不多說 ---
在3月1號,樹莓派3發(fā)布的第二天,我就拿到了PI3,之后便一直沉浸在linux里面;這是我第一次深入地去接觸和了解linux。
在配置的過程中,總是遇到各種各樣的困難,等到最終了解了,解決了,回過頭來看,其實都是一些很簡潔明了的坑。
--- 廢話不多說(1) ---
Front References:
使用樹莓派搭建LNMP服務(wù)器,成功運行typecho。
http://www點chinagtd點com/archives/lnmptypecho.html
利用raspberry pi搭建typecho筆記(一) nginx PHP server quick start
http://www點cnblogs點com/kururu/p/3536416.html
如果感興趣,可以先看看這兩篇我主要參考的筆記,整個過程都很清晰明了了。
有人可能會問,大神們的筆記都已經(jīng)介紹過整個部署過程了,為什么我要寫這篇文章把這個安裝過程再說一遍呢..
“因為用不了!”
我猜測的原因,因為nginx版本更新了,配置文件有變化,所以不能直接按照他們的操作。網(wǎng)上找到的教程都是2014年以前的。
我的系統(tǒng)是: Raspbian Jessie
Linux raspberrypi 4.1.20-v7+ #867 SMP Wed Mar 23 20:12:32 GMT 2016 armv7l GNU/Linux
0 空當(dāng)然,絕大部分“教程”,在做任何安裝軟件之前,sudo apt-get update 和 速凍凹凸個體奧普鬼 (sudo apt-get upgrade)都是必不可少的。
1 安裝 Nginx,MySQL 和 php 和一些亂七八糟的1
| sudo apt-get install nginx php5-fpm php5-cgi php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-memcache php5-gd php5-sqlite php5-cgi php5-xmlrpc mysql-server mysql-client
|
一路確定,一路yes。就裝完了這三和他們依賴的東東了。具體哪個是干嘛的,看名字就懂,不懂也沒事兒,反正我看不懂。
如果你是第一次裝,千萬別急著去優(yōu)化配置文件什么的,被那些優(yōu)化把安裝的節(jié)奏亂掉了,人就煩躁了,裝好了想要優(yōu)化直接看文章最后的幾個安裝筆記。
這時候最應(yīng)該做的,是在瀏覽器輸入 http://你的樹莓派IP地址 ,看看nginx的初始頁面的樣子,打一下雞血。
白底黑字的真心跟typecho一樣簡潔呢。
注意:
我的nginx 版本為 1.6.2
查看可以使用這個命令
nginx -v
如果你的版本是1.2x 那么直接使用默認(rèn)配置文件,不會有php白屏問題。不需要按我強調(diào)的修改
2 安裝PhpMyAdmin這貨是用來管理數(shù)據(jù)庫的,安裝完成后,用這貨操作數(shù)據(jù)庫,給typecho 建立一個用戶名和密碼,這樣typecho就能自己操作數(shù)據(jù)庫了。安裝過程中,會讓輸入數(shù)據(jù)庫的密碼,什么的,注意看內(nèi)容選擇就好。但是很奇怪這貨在安裝的時候沒有nginx的選項,我選的是Apache2,一樣用。
1
| sudo apt-get install phpmyadmin
|
安裝完成后,把它,link一個到 /var/www/html, 也就是新的nginx的默認(rèn)網(wǎng)頁文件夾,這樣你就可以通過網(wǎng)頁,訪問它了。
1
| sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
|
并且把這個文件夾的權(quán)限改成誰都可以讀寫執(zhí)行,為了后面安裝typecho做準(zhǔn)備
1
| sudo chmod -R 777 /var/www/html
|
然后重啟一下
1
2
| sudo php5enmod mcrypt
sudo service php5-fpm restart
|
*注意:
新的nginx(我的版本 1.6.2) 已經(jīng)將默認(rèn)網(wǎng)頁目錄放在 /var/www/html 了,如果你是按著老的教程進(jìn)行的安裝,請忽略他們的關(guān)于修改網(wǎng)頁目錄的部分*
再打一下雞血? 在瀏覽器輸入 http://你的樹莓派IP地址/phpmyadmin
應(yīng)該就能看到phpadmin的登錄界面了,用戶名是root 密碼是你在剛剛安裝的時候輸入的密碼
如果看到的是一個白白白blank page,沒關(guān)系,我們需要繼續(xù)設(shè)置一下nginx的網(wǎng)站配置
3. 配置nginx 網(wǎng)站屬性。為嘛我說配置網(wǎng)站屬性,而不是配置nginx呢?
因為一個nginx是可以跑多個網(wǎng)站的! 而按教程直接去配置 /etc/nginx/nginx.conf 這個全局配置,就是在挖坑給以后的你。千萬在不了解的時候別去動這個文件。
nginx 有針對每一個網(wǎng)站的配置文件,在這個文件下面的配置,跟在全局配置是一樣的。這些文件存放在 /etc/nginx/sites-available/ 如果想啟用他們,就在隔壁文件夾/etc/nginx/sites-enable/建立一個鏈接文件,然后就可以啟用了。/etc/nginx/sites-enable下默認(rèn)已經(jīng)有了一個鏈接到default的文件。所以我們可以直接修改或者重寫/etc/nginx/sites-available/default 來配置我們的網(wǎng)頁。
這個default也很珍貴,可以先備份一下
1
| sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
|
為了偷懶,備份完之后我們把它刪除,然后再新建名稱一樣的配置文件,作為我們網(wǎng)站的配置
1
2
| sudo rm -rf /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
|
然后把我的配置放進(jìn)去
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| server {
listen 80 default_server;
root /var/www/html;
index index.html index.htm index.php;
server_name aircheese.me;
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ .*\.php(\/.*)*$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
|
*簡單說一下代碼,第一個location之前,描述的是一些網(wǎng)站的全局配置。
第一個 location 是 typecho 打開永久地址轉(zhuǎn)換需要的重寫規(guī)則。在你后面設(shè)置的時候typecho會自動檢測是否可以打開,可能會檢測失敗,你選擇強制打開即可。
第二個 location 是 pathinfo 的支持,對于 typecho 這個是必須有的*
根據(jù)你的網(wǎng)頁,有幾個地方是需要修改的
server_name 后面修改成你的域名
root 需要確認(rèn)是否是你的網(wǎng)站目錄(如果你按我的教程,這個地方應(yīng)該不用改的)
listen 80 如果你的80端口被封了,你需要按其他教程的改成81或者8080
保存后,重啟nginx服務(wù),就可以使用新的配置了
1
| sudo service nginx restart
|
由于一些列歷史原因,如果你按照之前的配置筆記去配置nginx,那你有很大的幾率會出現(xiàn)上面提到的php頁面是白屏。
而這個原因,是因為上面配置的最后一個語句:include fastcgi.conf; 在幾乎所有的教程里面都使用include fastcgi_params; 。fastcgi_params相比include fastcgi.conf;少了一條路徑的定義。
這部分具體請看: http://stackoverflow點com/questions/15423500/nginx-showing-blank-php-pages
到這里,你可以按其他教程,寫一個info.php 來測試你的網(wǎng)頁是否工作了。
在/var/www/html/ 目錄下創(chuàng)建info.php,復(fù)制下面的進(jìn)去,然后保存。
1
2
3
| <?php
phpinfo();
?>
|
然后瀏覽器訪問 http://你的樹莓派ip地址/info.php 如果出來的不是白網(wǎng)頁,你就可以樂呵呵啦。如果還是白,請參照上面鏈接,棧溢出(stackoverflow)里面的其他解法
4 安裝 typecho還記得我們在 安裝PhpMyAdmin 的時候把 phpmyadmin 鏈接到 /var/www/html里面么? 安裝typecho其實也是一樣的,我們要做的,就是把typecho 下載下來 (http://typecho點org/download),然后解壓縮到html里面。然后通過到地址: http://你的樹莓派IP地址/install.php 就能看到typecho的安裝界面了。
比如,我的typecho下載在 /home/pi/build.tar.gz 我要把它解壓到/var/www/html里面
1
2
| cd /var/www/html
tar -xzvf /home/pi/build.tar.gz
|
然后他們就都到 /var/www/html/build 里面了。那怎么把文件都移動出來呢?進(jìn)到build里面用 mv ../就可以了。 代表全部文件和文件夾 ../代表上一級目錄
然后重啟一下nginx (我不清楚是不是需要重啟)
1
| sudo service nginx restart
|
然后通過到地址: http://你的樹莓派IP地址/install.php 應(yīng)該就能看到typecho的安裝界面了。
等你看到安裝頁面,這篇文檔也應(yīng)該結(jié)束它滴使命啦
PS:
博客的安裝,和鏈接到數(shù)據(jù)庫,這篇教程很清楚了。
站長百科:Typecho 安裝教程
http://www點zzbaike點com/wiki/Typecho_%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B
PS(1):
說到數(shù)據(jù)庫,你也可以建立一個用戶給typecho用,我也推薦這樣。最好不要直接root賬戶。
PS(2):
什么,你沒裝成功?你不干了?想卸載么?別找我,我也不懂怎么卸載那一堆東西,誰叫你開始之前沒有全盤鏡像備份。。
PS(3):
除了在開始之前推薦的兩篇教程以外,其他我覺得很有用的文章
我的樹莓派玩機攻略—搭建nginx+mysql+php(優(yōu)化參考,開啟gzip,切不可直接復(fù)制他的配置文件,不然等著白)
http://blog點chensibo點com/i-work-for-nginx-mysql-php-raiders-build-raspberry-pi/
Raspberry PI樹莓派搭建LNMP環(huán)境跑Typecho(年代久遠(yuǎn),僅供參考)
http://raspiweb點ch/post-13.htm/comment-page-2
利用raspberry pi搭建typecho筆記(三) typecho nginx sqlite FAQ(如果遇到錯誤,請參照這篇,不可直接復(fù)制他的配置,同樣等白)
http://www點cnblogs點com/kururu/p/3536626.html
Typecho官方文檔有關(guān)于nginx的配置,可供參考
http://docs點typecho點org/servers?s\[\]=nginx
PS(4) :
我的default配置,加入了gzip網(wǎng)頁壓縮,修改自 https://loftor點com/archives/typecho_nginx_conf.html 僅供參考。原文的 include fastcgi_params;需要修改為include fastcgi.conf; 即可解決php白問題。
- server {
- listen 80 default_server;
- root /var/www/html;
- index index.html index.htm index.php;
-
- gzip on;
- gzip_min_length 1k;
- gzip_buffers 16 64k;
- gzip_http_version 1.1;
- gzip_comp_level 6;
- gzip_types text/plain application/x-javascript text/css application/xml;
- gzip_vary on;
-
- server_name aircheese.me;
-
- location / {
- if (-f $request_filename/index.html){
- rewrite (.*) $1/index.html break;
- }
- if (-f $request_filename/index.php){
- rewrite (.*) $1/index.php;
- }
- if (!-f $request_filename){
- rewrite (.*) /index.php;
- }
- }
-
-
- location ~ .*\.php(\/.*)*$ {
- fastcgi_split_path_info ^(.+\.php)(/.+)$;
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- }
復(fù)制代碼
|
|