利用raspberry pi搭建typecho筆記(三) typecho nginx sqlite FAQ


前言

這是一個匯總文,用來總結我在整個配置過程中遇到的各種問題.因為我在解決這些問題的過程中發現,typecho被部署在這種需要完全自己配置的平台上的情況是比較少的,相關的資料也比較少,所以我的解決過程比較困難,因此在此之后,想把這些問題和解決方案都整理出來,如果有同樣需要的人,可以直接參考,少走彎路.

 

1.typecho安裝過程中提示"對不起,無法連接數據庫,請先檢查數據庫配置再繼續進行安裝"

這里使用的sqlite數據庫.

我當時的解決方案是手動新建了一個數據庫文件.利用

1 sqlite3 blog.db
2 create table test(test text);

新建數據庫與表,並將數據庫所在目錄指向這個文件來解決的,不過這個問題的本質並不是數據庫文件不存在,事實上typecho是可以自己新建數據庫文件的,這個問題之所以出現是因為typecho沒有對該目錄的寫權限而導致的問題.

可以通過

1 sudo chmod -R 777 /var/www

來解決.不過這里的777過於極端,單純是是為了確認typecho可以正常工作才設定的,這里的777意味着給予所有人(包括others)R W E的全部權限,這實際上是不合理的,按照官方文檔,755就夠用了.

 

2.typecho提示"無法自動新建配置文件"需要手動新建配置文件,並且復制配置代碼.

依舊是權限問題,typecho沒有寫入權限,解決方案同上.

 

3.typecho配置完成之后提示 ERROR 500

這可能是因為你通過新建數據庫和自己新建配置文件的方法強制完成了整個配置流程而導致的,而typecho因為沒有寫入權限,沒有能夠完成對於數據庫的初始化,需要通過更改權限解決.

 

4.typecho配置完成之后無法打開控制面板,除了主頁以外全部404.

這是因為PHP的路徑轉發有問題導致的,因為很多nginx的默認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;
        }
}

其中路徑location的寫法是的path_info的轉發出現了問題,將location更改為

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

就可以解決了.

 

5.內網訪問正常,通過花生殼動態域名訪問typecho主頁全為白色,無法加載CSS文件,無法打開二級網頁.

在WordPress當中,有一個博客地址的設置,可以用來規范二級域名的指向和轉發,而在typecho中,也有類似的設置,只不過它並不在設置里面,而是在執行install.php也就是一開始的安裝程序的時候自動執行,將第一次訪問主頁的地址作為本站的地址.因為在內網進行測試和調整的時候,我們會使用內網IP訪問樹莓派,而非通過花生殼等得動態域名.這就使得typecho的本站地址設置出現錯誤.

在通過域名訪問typecho時,如果我們查看瀏覽器的HTTP請求的話,我們會發現請求的CSS地址是192.168.1.100(樹莓派內網地址)/var/www/css 顯然這個內網地址是沒有任何意義的.因此我們需要重新配置這個參數.

使用域名重新訪問樹莓派 比如test.ecip.net/install.php 重新運行一次配置程序,即可解決.

 

6.內網訪問正常,外網無法通過動態域名或者IP訪問.

這是因為電信屏蔽了默認的HTTP端口(80)導致的.

需要更改nginx配置文件

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

 

將他的端口更改為81或者其他

server {
                listen 81;
                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;

                                                        }
                }

然后通過test.ecip.net:81訪問即可.


免責聲明!

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



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