前言

因为一直对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>这篇文章,原文连接在此

执行

 sudo apt-get install nginx

等待安装结束之后可以进行测试.

 sudo service nginx start

可以看到service start的提示,然后用树莓派的内网IP进行访问,如果看到页面的话,就说明nginx的安装成功了.

nginx的默认的静态web网站路径为:usr/share/nginx/www ,这并不符合linux的惯例,通常应该为var/www

我们可以对此进行修改,首先创建这个目录.

 sudo mkdir /var/www

显然,仅仅有这样一个目录是不够的,我们还需要告诉nginx,我们将网页存储在了这个目录.这就需要更改nginx的配置文件.

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

先看一下nginx的目录结构.

 cd /etc/nginx/
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作为网站目录.

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

接下来我们在sites-available目录中新建配置文件.(假如你不习惯使用vim或者还没有安装vim的话,也可以用nano等替代,或者参考我之前的博文,使用sublime text的sftp插件来编辑配置文件)

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

写入如下配置

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

这个配置文件的意义是,新建一个server,用来监听80端口上的请求,这个服务器的根目录为/var/www , index的文件名为index.html或者index.htm,如果想要更详细的配置,可以访问这个页面,给出了完整的nginx配置文档.

保存退出,再启用这个配置文件.

 cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/mysite
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通信的程序,为了让本文更有条理,这一部分将会在数据库配置部分进行说明.)

首先安装

 sudo apt-get install php5-fpm php-apc

假如您需要安装sqlite来用来配置typecho,可以执行

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

当安装结束之后,fpm应该会自动开始运行,不过为了让apc插件能够被加载运作,我们需要让他重新启动一下.

 sudo service php5-fpm restart

然后我们在更改原先的nginx配置文件,让nginx知道应该把PHP请求送到哪里去处理.打开刚刚配置的/etc/nginx/sites-available/mysite文件,加入PHP处理部分的示例代码.

server {
listen ;
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环境配置了.

利用raspberry pi搭建typecho笔记(一) nginx PHP server quick start的更多相关文章

  1. 利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ

    前言 这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过 ...

  2. 利用raspberry pi搭建typecho笔记(二) sqlite和typecho部署

    sqlite概述 typecho可以支持MYSQL和Sqlite两种数据库,因为Sqlite更为轻量,并且不需要额外的进程,而是直接对数据库文件进行读取,所以配置相对于MySQL也更为简单,仅需指定数 ...

  3. 树莓派(Raspberry Pi)搭建简单的lamp服务

    树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php ...

  4. 用Raspberry Pi搭建Azure IOT解决方案

    Raspberry Pi是一款基于Linux的单板机电脑.它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本计算机科学教育.树莓派配备一枚博通(Broadcom)出产的ARM架构 ...

  5. 2014年基于Raspberry Pi的5大项目

    2014年基于Raspberry Pi的5大项目   Raspberry Pi(即树莓派)是一款基于Linux系统(Debian.ArchLinux)的单板机计算机,它只有一张信用卡大小,可用于电子表 ...

  6. Raspberry Pi 学习笔记之一

    记录几个搭建服务器教程: [教程] 将树莓派变成网络打印机服务器(更新PC和手机端设置)!http://www.eeboard.com/bbs/thread-8818-1-1.html[心得] [分享 ...

  7. How To Install Linux & Nginx & MySQL & PHP (LEMP) stack on Raspberry Pi 3,Raspberry Pi 3,LEMP,Nginx,PHP, LEMP (not LNMP)

    1.   How To Install Linux & Nginx & MySQL & PHP (LEMP) stack on Raspberry Pi 3         R ...

  8. 我的树莓派 Raspberry Pi Zero 2W 折腾笔记,记录一些遇到的问题和解决办法

    0x00 前言说明 最近买了一块Raspberry Pi Zero 2W来玩,目的是想搭建一台远程运行的个人服务器,上面放个博客.点个灯啥的.于是就有了这篇文章. 树莓派官网地址:https://ww ...

  9. 烂泥:使用nginx利用虚拟主机搭建WordPress博客

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习nginx web服务器,既然是学习还是以实用为目的的.我们在此以搭建WordPress博客为例. 搭建WordPress博客,我们需要 ...

随机推荐

  1. ubuntu及终端快捷键

    1.关于终端的快捷键: Tab:tab键是比较常用的一个快捷键,它的作用是补全文件名或者路径.举例 来说,输入”cd /ho”在按一下tab键,终端里就会显示”cd /home”了.如果您的文件夹下, ...

  2. Qt5+VS2013兼容XP方法

    用Qt5+VS2013编译程序默认配置会在XP运行时报"不是有效的Win32程序"工作需要必须要XP运行 pro文件中加一句: 复制代码 QMAKE_LFLAGS_WINDOWS ...

  3. tmux 配置

    tmux配置文件名为.tmux.conf,位于用户根目录下. 常用的配置为: # vimsetw -g mode-keys vibind [ copy-modebind -t vi-copy v be ...

  4. 软硬结合的可穿戴式app

    可穿戴设备已经非常的火热了,各种手环.手表之类的硬件设备已经层出不穷,并且功能也已经越发强大,从简单的运动.心率追踪,到现在的血糖.心电图监测,“量化自我”的愿景似乎已经变得越来越明朗,但也正是在这样 ...

  5. postgresql C/C++ API 接口

    1,postgresql学习uri推荐 http://www.php100.com/manual/PostgreSQL8/ http://www.php100.com/manual/PostgreSQ ...

  6. Linux如何生成列表

    如何生成列表: 方法一:{1..100} 方法二:`seq [起始数 [步进长度]] 结束数` 1,...,100 declare -i SUM=0    integer    -x

  7. EditText 文本内容输入限制

    实现InputFilter过滤器,需要覆盖一个叫filter的方法. public abstract CharSequence filter ( CharSequence source, int st ...

  8. Live555 分析(二):服务端

    live555支持单播和组播,我们先分析单播的流媒体服务端,后面分析组播的流媒体服务端. 一.单播的流媒体服务端: // Create the RTSP server: RTSPServer* rts ...

  9. Unity Navigation面板了解

    上次讲解了下Navigation的简单使用, 这次来看看Navigation面板的一些参数 NavigationStatic 勾选后表示该对象参与导航网格的烘培. OffMeshLink Genera ...

  10. pod setup 报CocoaPods was not able to update the `master` repo 错误解决办法

    先删除全局的缓存: $ sudo rm -fr ~/Library/Caches/CocoaPods/ $ sudo rm -fr ~/.cocoapods/repos/master/ 还不行的话就把 ...