在上一篇中详细的写了关于怎么安装系统,这篇记录WEB服务器部署的整个过程和遇到的一些问题。
上篇地址 http://37340342oj.zicp.vip/index.php/archives/70/
系统没有继续用DietPi,因为diepi是国外的,软件安装方面会出问题,导致后面会出现莫名奇妙的问题。当然我也尝试过换国内源,结果不尽人意。所以这次改用友善的系统friendlycore-xenial_4.14版本,官方百度下载地址friendlycore4.14,需要其它的固件这个地址
WEB服务器方案 使用了Nginx + php + SQlite 方案。
首次进入系统
安装好后把SD卡插到nanopi上 ,FriendlyCore默认帐户
普通用户:
用户名: pi
密码: pi
Root用户:
用户名: root
密码: fa
登录后,默认开启了sftp服务,ssh连接后可以直接看到系统的目录,后面操作起来还是比较方便的,对于小白的我来说还是挺方便的
安装 Nginx 服务器
sudo apt-get install nginx
安装成功后,输入nanopi的局域网地址 我的是192.168.31.239 ,看到下面的画面说明Nginx安装成功了。这个地址需要在路由器里面绑定(DHCP静态IP分配),不然下次重启设备后可能就不是这个地址了。
如果打不开你可以发送 sudo /etc/init.d/nginx start 手动启动Nginx服务
sudo /etc/init.d/nginx start
nginx的www根目录默认在/var/www/html,如果需要改为www下的话 需要修改。
安装 PHP软件
安装php
sudo apt-get install php7*-fpm php7*-sqlite
安装 php7.0-xml
先查看自己php版本
php -v
我的是7.0.33
安装命令
sudo apt-get install php7.0-xml
修改nginx的配置文件
修改Nginx下的配置文件 路径 /etc/nginx/sites-available default
双击打开 后修改
这是80端口 需要改掉 8686或者其他都可以
listen 80 default_server;
listen [::]:80 default_server;
这是你的网站根目录 默认是 var/www/html 我改成
root /var/www;
因为是php程序,所以在需要在index那行 添加 index.php
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
找到 location 添加下面的内容,这是关于伪静态的配置
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
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;
}
try_files $uri $uri/ =404;
}
找到 location ~ .php$ 添加下面的内容 “#”为注释 不用修改
location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
修改好后重启 Nginx服务
sudo /etc/init.d/nginx reload
至此简单WEB的环境就全部署好了,关于Nginx的其它配置可以自行摸索研究哈,这里就不再赘述了。
安装博客程序
我用的是 Typecho 博客,非常轻量级的博客,很简洁,我比较喜欢
在安装是如果出现下图的错误
需要修改两处文件夹权限 www 和 usr 如下图
完成安装
安装完成在浏览器中输入局域网的你的nanopi的设备地址,192.168.31.239:80(80是默认端口我没改,80端口后面不用加80,如果你设置的是其它端口这里就需要加上)
目前网站只能在局域网访问,如果需要别人在外网也能访问,需要对猫和路由器做一些设置,比较复杂。如果网站流量不大,我个人建议买个花生壳棒就可以完美解决外网访问问题。
总结
默认安装好后其实是要手动修改配置文件的,对于绝对的新手来说,很不友好。期间遇到一些问题,无从下手,都快放弃了,但是每解决一个问题之后的那种发自内心欢喜、那种感觉真的很美好。祝你也玩的愉快,早日搭建一个属于自己的个人网站。
生命不息,折腾不止。
Keep on going.
部署WEB服务器遇到的问题
第一个问题
html文件能打开,php页面打开空白,这个问题困扰了我一天,经过各种查资料找到了答案。简单来说是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。所以刚开始修改 default 文件时需要确定自己的php7.0-fpm.sock 文件路径是否正确。
默认路径 /var/run/php
只要地址对了就不没什么问题
第二个问题
打开页面 报错Call to undefined function utf8_decode()
这个问题很好解决 ,只需要安装对应php版本的php7.0-xml 就可以了。
第三个问题
客首页可以打开,其它页面404报错(看似简单的问题,又是折腾了半天之久)
这几个问题困扰半天真的是毫无头绪,之前已经被第一个问题折腾了一天,最后又来一个问题,当时真的想放弃,突然想到稻盛和夫的两句话
“你是否在竭尽全力的工作” “付出不亚于任何人的努力”
虽然这不是工作,但是好像我似乎并没有做到这两点,于是还是硬着头皮去寻找办法。还是挺幸运的最后找到了解决办法,
Typecho博客是伪静态,而我的Nginx对pathinfo不支持
需要在location里面添加下面的代码
最后所有问题完美解决!
Comments | NOTHING