BPI M1 LNMP+Nginx安装与配置【小白教程】

此教程啊,大神们就不要进来了,小白们可以来看看,是否有帮助。此教程首发于我的博客:野驴实验室(部分网络可能打不开,因为下面提了的:80端口封了,现在还没解决)

搭建这个博客程序真是很多的坎坷,我之前用LAMP+Wordpress搭建了一个博客程序,不过国内坑爹的某些运营商把80端口给封,无奈,想无缝访问,就着手去改配置文件,可是作为一个小白,并没有养成配置文件修改前一定要备份的习惯,终于是把Apache给弄炸了,无法正常提供服务了,之前也没全盘备份(至今还没弄会怎么全盘备份),无从回复,remove掉Apache还是会有很多文件删不掉的,其中就包括配置文件。最后决定重新写卡,重新安装,并且咱讨论群里面好多人都在用LNMP+Typecho我也就决定,我也来玩一下这个。然后按照阿嘉的博客里面的教程开始安装。然而我发现我貌似走上了一条不归路,各种没备份,各种炸,最后有一次重新写卡,重头开始安装,到现在终于是解决了,并且博客程序已经开始运行了起来,至于端口的问题,现在依旧没解决,这次一定要多浏览资料,再下手更改,并且备份好配置文件(这真是血与泪的教训啊!!!)

首先这是一篇教程类的博客,本文中只提到关于LNMP+Typecho的安装,并未涉及ddns解析方面。

首先系统环境介绍:Raspbian_For_BPI_M1_V4.0
0、首先是介绍
这里呢也只是简单的提及一下,不做过多的介绍,想了解更多,请百度。
LNMP:Linux+Nginx+MySQL+PHP Typecho:是一个博客程序,不多说,具体和LAMP+Wordpress相比,各有利弊,自己权衡。1、安装任何pack之前都要执行一下的连个小代码:

sudo apt-get update

2、安装 Nginx,MySQL 和 PHP

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

一路确定就好了,不用管别的,其间可能会让你输入密码,那是MySQL的root密码(与系统的root不是一起的),输入就好,我记性不好怕忘,直接和系统的root密码一样。至于上面都是安装些什么,你可以看一下名字,如果不懂也没事,反正我也不懂,反正都是这三个东西及其附属品就是了。
如果你是第一次安装一定先别急着改配置文件,先多方了解,以免和我一样,走上了一条不归路。

等都安装完成了,你可以在你的浏览器地址栏里面输入你的BPI内网IP地址。你应该会看到Welcome to Nginx!这样的字样,这就证明你安装成功了,并且nginx运行起来了。先给自己一碗鸡血。

注意:我的nginx版本:1.2.1(阿嘉的教程里面是1.6.2,不过经过实验都是可行的。)
3、安装PhpMyAdmin
这是用来管理数据库的,用这货操作数据库,给typecho 建立一个用户名和密码,这样typecho就能自己操作数据库了。安装过程中,会让输入数据库的密码,什么的,注意看内容选择就好。但是很奇怪这货在安装的时候没有nginx的选项,我选的是Apache2,一样用。

sudo apt-get install phpmyadmin

安装完成后,把它,link一个到 /usr/share/ngixn/www, 也就是新的nginx的默认网页文件夹(后面可以在配置文件修改),这样你就可以通过网页,访问它了。

sudo ln -s /usr/share/phpmyadmin /usr/share/ngixn/www/phpmyadmin

并且把这个文件夹的权限改成谁都可以读写执行,为了后面安装typecho做准备

sudo chmod -R 777 /usr/share/ngixn/www

再打一下鸡血? 在浏览器输入 http://你的BPI内网IP地址/phpmyadmin
应该就能看到phpadmin的登录界面了,用户名是root 密码是你在刚刚安装的时候输入的密码
如果看到的是一个白白白blank page,没关系,我们需要继续设置一下nginx的网站配置
4、配置nginx 网站属性
为嘛我说配置网站属性,而不是配置nginx呢?
因为一个nginx是可以跑多个网站的! 而按教程直接去配置 /etc/nginx/nginx.conf 这个全局配置,就是在挖坑给以后的你。千万在不了解的时候别去动这个文件。

nginx 有针对每一个网站的配置文件,在这个文件下面的配置,跟在全局配置是一样的。这些文件存放在 /etc/nginx/sites-available/ 如果想启用他们,就在隔壁文件夹/etc/nginx/sites-enable/建立一个链接文件,然后就可以启用了。/etc/nginx/sites-enable下默认已经有了一个链接到default的文件。所以我们可以直接修改或者重写/etc/nginx/sites-available/default 来配置我们的网页。

这个default也很珍贵,可以先备份一下

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup

之后就可以看是修改了:

sudo vi default

在vi编辑器里面dG是删除本行至文尾,因为之前备份了可以直接删掉不管了,然后i在光标输入,阿嘉提供的配置文件:

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

  server_name yelvxiansheng.cc;

  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_params;
  }
}

这里面可以注意下,第三行的root后面跟着的是nginx的默认网页文件夹,可以根据个人习惯更改,我改为/var/www(上面提到的链接也要对应链接到你更改的目录,或者改为默认的网页目录)
简单说一下代码,第一个location之前,描述的是一些网站的全局配置。
第一个 location 是 typecho 打开永久地址转换需要的重写规则。在你后面设置的时候typecho会自动检测是否可以打开,可能会检测失败,你选择强制打开即可。
第二个 location 是 pathinfo 的支持,对于 typecho 这个是必须有的*
根据你的网页,有几个地方是需要修改的
server_name 后面修改成你的域名
listen 80 如果你的80端口被封了,你需要按其他教程的改成81或者8080

保存后,重启nginx服务,就可以使用新的配置了

sudo service nginx restart

5、安装 typecho
还记得我们在 安装PhpMyAdmin 的时候把 phpmyadmin 链接到 /usr/share/ngixn/www里面么? 安装typecho其实也是一样的,我们要做的,就是把typecho 下载下来 (http://typecho.org/download),然后解压缩到html里面。然后通过到地址: http://你的树莓派IP地址/install.php 就能看到typecho的安装界面了。

比如,我的typecho下载在 /home/pi/share/BPI SMB/build.tar.gz 我要把它解压到/var/www(我的网页目录)里面

<div>cd /home/pi/share/BPI SMBsudo tar -xzvf /home/pi/share/BPI SMB/build.tar.gzcd build</div><div>sudo cp -r ./* /var/www</div>

然后重启一下nginx (我不清楚是不是需要重启)
sudo service nginx restart
然后通过到地址: http://你的树莓派IP地址/install.php 应该就能看到typecho的安装界面了。
在安装过程中,一直提示我无法连接数据库,无法创建,那么我就手动创建一下(phpmyadmin,说这个再不懂,那真的需要好好在学习一下了)。首先数据库名一定要和设置里面填写的一样。后面的类型我选的是utf8_general_ci不知道其他会什么样。然后回到安装界面就可以继续安装了。

不错啊,受益匪浅

见笑了。

GOOD,that is best !!!

thank you