利用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>这篇文章,原文连接在此
执行
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的更多相关文章
- 利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ
前言 这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过 ...
- 利用raspberry pi搭建typecho笔记(二) sqlite和typecho部署
sqlite概述 typecho可以支持MYSQL和Sqlite两种数据库,因为Sqlite更为轻量,并且不需要额外的进程,而是直接对数据库文件进行读取,所以配置相对于MySQL也更为简单,仅需指定数 ...
- 树莓派(Raspberry Pi)搭建简单的lamp服务
树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php ...
- 用Raspberry Pi搭建Azure IOT解决方案
Raspberry Pi是一款基于Linux的单板机电脑.它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本计算机科学教育.树莓派配备一枚博通(Broadcom)出产的ARM架构 ...
- 2014年基于Raspberry Pi的5大项目
2014年基于Raspberry Pi的5大项目 Raspberry Pi(即树莓派)是一款基于Linux系统(Debian.ArchLinux)的单板机计算机,它只有一张信用卡大小,可用于电子表 ...
- Raspberry Pi 学习笔记之一
记录几个搭建服务器教程: [教程] 将树莓派变成网络打印机服务器(更新PC和手机端设置)!http://www.eeboard.com/bbs/thread-8818-1-1.html[心得] [分享 ...
- 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 ...
- 我的树莓派 Raspberry Pi Zero 2W 折腾笔记,记录一些遇到的问题和解决办法
0x00 前言说明 最近买了一块Raspberry Pi Zero 2W来玩,目的是想搭建一台远程运行的个人服务器,上面放个博客.点个灯啥的.于是就有了这篇文章. 树莓派官网地址:https://ww ...
- 烂泥:使用nginx利用虚拟主机搭建WordPress博客
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习nginx web服务器,既然是学习还是以实用为目的的.我们在此以搭建WordPress博客为例. 搭建WordPress博客,我们需要 ...
随机推荐
- fuse 虚拟文件系统 的 安装与使用
FUSE 是个好东西, 可以用在特殊的领域里面来实现自己的虚拟文件系统. FUSE的下载与安装 : 从fuse官网下载最新安装包:http://sourceforge.net/projects/fus ...
- 转:完善eclipse+pdt作php开发中的代码提示能力
在eclipse开发中 ,可能由于各种原因导致项目文件(eclipse内置)丢失或错乱, 因而, 失去一些能力.. 以下是经过被痛苦折磨后查阅总结的一点东西 设置完下面内容, 支持以下特性 PHP: ...
- Grunt 插件开发与调式
1 grunt是什么 官方网站解释的很清楚,http://gruntjs.com/ http://gruntjs.cn/ 它是一种javascript任务运行器,对于需要反复重复的任务,例如压缩.编译 ...
- Linux文件系统挂载管理
http://itercast.com/lecture/19 文件系统创建好之后需要挂载到系统中方可使用,windows.Mac系统会自动挂载文件系统,而Linux下一般需要手工挂载或配置系统进行自动 ...
- Linux 挂载光驱
Linux的硬件设备都在/dev目录下,/dev/cdrom表示光驱,挂载方法如下: 1.挂载光驱 [root@oracle ~]# mount -t iso9660 /dev/cdrom /mnt/ ...
- bzoj2741(分块+可持久化Trie)
题意中文我就不说了 解析: 分块+可持久化Trie,先得到前缀异或值,插入到Trie中,然后分块,对每一块,处理出dp[i][j](i代表第几块,j代表第几个位置),dp[i][j]代表以第i块开始的 ...
- 【HDU1301】Jungle Roads(MST基础题)
爽爆.史上个人最快MST的记录7分40s..一次A. #include <iostream> #include <cstring> #include <cstdlib&g ...
- The method setOnClickListener(View.OnClickListener) in the type View is not applicable
开始学习 android 了,学习的是高明鑫老师的android视频教程(android视频教学). 学到第八讲时, 在写动态设置时报错: The method setOnClickListener( ...
- Fabricate equation(dfs + 模拟)
Fabricate equation Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Other ...
- (36)JS运动之使物体向右运动
基本思路:样式要是绝对定位,不然的话根本走不起来.当开启一个定时器的时候.必须先清除定时器.这是为了防止鼠标连续点击button而开启多个定时器,导致物体的速度加快等原因,其次要控制好物体的运动和停止 ...