利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]

利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]#前言在暑假的时候想玩玩树莓派,就买了一块树莓派3B+,结果买回来也没太玩就放在宿舍吃灰,最近突然对网站很感兴趣,于是就在网上查找资料去搭建了这个web服务器,它是使用的nginx+PHP7+typecho组成的服务器。#首先安装raspbian系统引用了树莓派实验室的下载地址,大家可以直接下载。下载链接:http://downloads.raspberrypi.org/raspbian_…

大家好,又见面了,我是你们的朋友全栈君。

大家可以访问我的个人博客一只胖橘 这就是一个运行在3B+上的博客

#前言

在暑假的时候想玩玩树莓派,就买了一块树莓派3B+,结果买回来也没太玩就放在宿舍吃灰,最近突然对网站很感兴趣,于是就在网上查找资料去搭建了这个web服务器,它是使用的nginx+PHP7+typecho组成的服务器。

#首先安装raspbian系统

引用了树莓派实验室的下载地址,大家可以直接下载。
下载链接:http://downloads.raspberrypi.org/raspbian_latest
默认账号:用户名:pi 密码:raspberry
使用win32 Disk Imager进行系统的烧录。

在这里插入图片描述

当弹出Write Successful是表示烧录成功

在这里插入图片描述

-还要注意系统默认是不开启SSH的,所以烧写完系统后,要在文件中创建一个没有后缀的SSH文件

#系统配置

使用树莓派通过网线 和笔记本电脑连接,首先需要去网络和共享中心》更改适配器设置》WLAN属性》共享》允许连接

在这里插入图片描述

接下来打开cmd命令 使用 arp -a 查找树莓派IP地址,并使用putty进行连接

在这里插入图片描述

在这里插入图片描述

*连接上以后可以设置静态IP地址,方便下次连接

  1. 打开/etc/network/interfaces
  2. 根据里面的注释发现设置静态ip需要修改的文件是/etc/dhcpcd.conf
  3. 根据dhcpcd.conf里面的注释设置静态ip,网关,DNS

例如设置wlan0的静态ip,在文件的最后加入

使用命令:

sudo nano /etc/dhcpcd.conf

在末尾添加以下内容

	interface eth0
	static ip_address=192.168.137.233/24 #修改成自己需要的IP
	static routers=192.168.137.1  #同上只需修改倒数第二位保持和上面相同
	static domain_name_servers=114.114.114.114 8.8.8.8

114.114.114.114是国内的较快速的DNS服务器 8.8.8.8 是谷歌的DNS服务器

使用 CTRL+O 保存 、CTRL+X退出

重新启动 :

sudo reboot

使用自己设置的IP连接

*安装NTP进行自动对时

连接上以后,为了方便查看时间,最好更改下系统时区,这时候我们需要安装NTP,主要就是自动对时的,不用每次手动设置。

安装NTP:

sudo apt-get install ntpdate

启用NTP:

sudo timedatectl set-ntp true

修改本地时区:

sudo dpkg-reconfigure tzdata

在这一步,选择“Asia->Shanghai”

查看时间是否正确:

date

可以看到时间已经更改为北京时间了,设置完成时间以后,需要更新下软件源,建议先更新源地址为阿里云源。

编辑源:

sudo nano /etc/apt/sources.list

打开以后,将里面的代码用 # 注释掉,添加如下代码:

deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

在这里插入图片描述

sudo nano /etc/apt/sources.list.d/raspi.list

打开以后,将里面的代码用 # 注释掉,添加如下代码:

deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

在这里插入图片描述

替换后,更新源:

sudo apt-get update

更新后,更新已安装包:

sudo apt-get upgrade

安装过程中如果碰到(Y/n),都选择Y

更新完后,设置显示中文。

*树莓派设置中文显示

首先,安装中文字体

sudo apt-get install ttf-wqy-zenhei

安装过程中如果碰到(Y/n),都选择Y

安装完毕后执行如下命令进行本地化设置操作:

sudo raspi-config

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

提示: 按空格键在前面打勾或去掉勾,PageUp PageDown快速翻页,Tab键切换光标位置。

在这里插入图片描述

重启生效

sudo reboot

#安装和配置Nginx/PHP/SQLite3

考虑到树莓派性能比较弱鸡,如果使用的MySQL或者其他数据库,那基本上每天都会宕机,综合考虑还是适合的Nginx +的SQLite3的配置较为合适,当然PHP是必不可少的。

安装nginx:

sudo apt-get install nginx

安装SQLite3:

sudo apt-get install sqlite3

安装PHP(PHP7):

sudo apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi php7.0-sqlite php7.0-xml

安装PHP-APC优化:

sudo apt-get install php-apc

安装完毕后,开始配置。

*开始配置

配置Nginx:

sudo nano /etc/nginx/nginx.conf

打开以后找到下面的位置并修改:

user www-data;
worker_processes 1; #修改这里
pid /var/run/nginx.pid;
events {
worker_connections 64; #修改这里
#multi_accept on;
}

继续向后找到gzip 去掉前面的注释修改如下:

gzip on;
gzip_disable “msie6”;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

CTRL+O保存,CTRL+X退出(后面将直接用保存并退出代替)

配置PHP:

sudo nano /etc/php/7.0/fpm/php.ini

打开以后找到下面的代码,并修改:

; Maximum amount of memory a script may consume (128MB)
;http://php.net/memory-limit
memory_limit = 32M #修改这里

保存并退出。

配置PHP-FPM:

sudo nano /etc/php/7.0/fpm/php-fpm.conf

找到一下代码,并修改:

; The maximum number of processes FPM will fork. This has been design to control
; the global number of processes when using dynamic PM within a lot of pools.
; Use it with caution.
; Note: A value of 0 indicates no limit
; Default Value: 0
process.max = 4 #修改这里

保存并退出。

配置网站的相关配置,先备份一份比较安全:

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

修改配置文件:

sudo nano /etc/nginx/sites-available/default

将其中的如下内容:

location / { 
   
      # First attempt to serve request as file, then
      # as directory, then fall back to displaying a 404.
      try_files $uri $uri/ =404;
        }

替换为:

location / {
index  index.html index.htm index.php default.html default.htm default.php;
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_pass unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

保存并退出。

修改完成以后,测试下PHP已经是否能正常请立即获取iTunes

sudo nano /var/www/html/index.php

输入内容如下:

<?php
      phpinfo();
?>

重启nginx和PHP7-FPM

sudo /etc/init.d/nginx restart
sudo /etc/init.d/php7.0-fpm restart

在电脑浏览器中输入树莓派IP地址查看是否成功:
出现如下界面为成功:

在这里插入图片描述

#安装typecho

上面的配置结束以后,基本上是一个已经能正常运行的环境了,但为了能顺利安装,还需要给文件夹目录授权:

sudo chmod 755 /var/www/html -R

授权后下载最新的安装包并解压,解压完移动目录:

cd /var/www/html
sudo wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar zxvf 1.1-17.10.30-release.tar.gz
mv build/* /var/www/html

*访问你自己的blog地址:

直接在电脑浏览器输入树莓派的IP地址

出现以下界面

在这里插入图片描述

点击下一步:

在这里插入图片描述

根据自己实际情况修改,完成后点击开始安装。

如果出现:

在这里插入图片描述

可以手动新建一个数据库文件,使用以下代码:

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

在这里插入图片描述

CTRL+Z退出
再到浏览器中点击下一步成功。

在浏览器中输入树莓派 IP地址 :
例如: 192.168.137.222/admin 进入后台
出现这样的界面就代表你已经成功了

在这里插入图片描述

开始创作你的第一篇文章吧。

转载请注明原文地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134710.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月6日 下午12:36
下一篇 2022年6月6日 下午12:46


相关推荐

  • java求闰年_Java判断闰年的2种方法示例

    java求闰年_Java判断闰年的2种方法示例前言 给定一个年份 判断这一年是不是闰年 当以下情况之一满足时 这一年是闰年 1 年份是 4 的倍数而不是 100 的倍数 2 年份是 400 的倍数 其他的年份都不是闰年 方法一 publicclassB booleanbisse intyear 创建 boolean 类型的方法 if year 4 0 amp amp year 100

    2026年3月17日
    2
  • CSS使用flex换行之后行距变大问题

    CSS使用flex换行之后行距变大问题在 css 中父元素高度确定 使用 flex 设置了换行属性之后 元素自动换行 换行之后每行的间距变大 自动撑满了父元素 见下图 预想中的效果 实际效果 使用 flex 属性之后 子元素并没有按照预想的排列方式在页面显示 样式代码如下 less list height 200px width 465px border 1pxsolid ccc display flex flex wrap wrap box sizing

    2026年3月19日
    3
  • 前端实现人员关系图谱

    前端实现人员关系图谱入职前端工作到现在差不多有一年半的时间了,和朋友偶然聊天的时候被问到,能不能用所学的前端知识做一个家族关系的族谱,可以使家族关系更加简单明了。当时听完这个需求,觉得可能还是蛮简单的,后来动手做的时候,发现族谱的连线,是需要根据返回的数据动态生成的,这就是我这个小前端,有点头秃了????。解决技术困难当时阻碍我前进的就是如何实现族谱的连线以及根据数据渲染它们的对应关系,后来在逛博客的过程中,发现了antdesign的charts图表组件。利用这个组件,如果可以进行一些改造,可能就可以实现族谱的关系图。

    2022年6月26日
    43
  • mysql mediumtext 最大_mysql – TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT最大存储大小

    mysql mediumtext 最大_mysql – TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT最大存储大小上升到@Ankan-Zerob的挑战,这是我对每个文本类型中可以存储的最大长度的估计:Type|Bytes|Englishwords|Multi-bytewords———–+—————+—————+—————–TINYTEXT|255|±44…

    2022年6月7日
    439
  • 关闭eslint的两种方法

    关闭eslint的两种方法1.vue.config.js中添加module.exports={lintOnSave:false,}2.package.json中修改”eslintConfig”:{“root”:true,”env”:{“node”:true},”extends”:[“plugin:vue/essential”,”eslint:recommended”…

    2025年6月2日
    7
  • hibernate实现多租户[通俗易懂]

    hibernate实现多租户[通俗易懂]hibernate实现多租户

    2022年4月25日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号