利用树莓派搭建 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 西门子plc冒泡法排序程序_博途graph编程讲解

    西门子plc冒泡法排序程序_博途graph编程讲解TIA博途中实现冒泡排序的两种SCL语言算法TIA博途软件版本:V15.0首先新建一个项目(具体过程这里就不演示了),添加一个FC块(或FB块均可),编程语言选择SCL,如下图,在FC的块接口中,定义我们需要的变量;一个数组型INT变量a用于存储需要排序的数据;一个INT型变量i:排序的起始序号;一个INT型变量j:排序的结束序号;一个TEMP型变量temp1:用于暂时存储中间比较的数据;利用SCL语言中的FOR循环语句,如下图中的程序,使得数组中的数据从a[i]开始比较到a[j],然后从小

    2022年10月6日
    0
  • Oracle中字符串截取最全方法总结

    Oracle中字符串截取最全方法总结substr函数:截取字符串 语法:SUBSTR(string,start,[length])string:表示源字符串,即要截取的字符串。start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。length:可选项,表示截取字符串长度。示例:SELECTSUBSTR(‘HelloSQL!’,1)FROMdual…

    2022年5月10日
    49
  • mp4 avc格式_sps_pps[通俗易懂]

    mp4 avc格式_sps_pps[通俗易懂]http://blog.csdn.net/sunnylgz/article/details/7680203

    2022年10月17日
    0
  • 李嘉诚储藏财富的背后隐藏着什么奥秘?

    李嘉诚储藏财富的背后隐藏着什么奥秘?

    2022年1月17日
    52
  • 十大经典思维面试题_JS面试题大全

    十大经典思维面试题_JS面试题大全年轻人你不讲武德,耗子尾汁~~~总结就是为了形成自己的js知识网,提升自己,加油!开始干1、介绍js的基本数据类型  答:Undefined、Null、Boolean、Number、String2、js有哪些内置对象? 答:数据封装类对象:Object、Array、Boolean、Number和String  其他对象:Function、Arguments、Math、Date、RegExp、Error  3、this对象的理解 答:this总是指向函数的直接调用者(而非间接调用者

    2022年8月26日
    4
  • portraiture 3 for mac(PS人像磨皮滤镜插件)激活成功教程教程

    portraiture 3 for mac(PS人像磨皮滤镜插件)激活成功教程教程Portraiture3forMac是PS中优秀的人像磨皮滤镜插件,portraiture3mac激活成功教程版可以对皮肤、头发、眉毛、睫毛等部位进行磨皮润色处理,还能自由调整锐度、柔软度、亮度、对比度等,这里为大家带来portraiture滤镜的激活成功教程教程,赶紧来看看吧!portraiture激活成功教程步骤下载好Portraiture安装包后,点击打开Portraiture.dmg,双击【…

    2022年7月22日
    8

发表回复

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

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