Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在树莓派上搭建LAMP服务

在树莓派上搭建LAMP服务

作者头像
菲宇
发布于 2022-12-02 05:45:02
发布于 2022-12-02 05:45:02
82000
代码可运行
举报
文章被收录于专栏:菲宇菲宇
运行总次数:0
代码可运行

为LAMP,是最流行的服务器配置之一,LAMP的含义是:

  • Linux - 操作系统
  • Apache - 网络服务器(HTTP)软件
  • Mysql - 数据库服务
  • PHP or Perl - 编程语言

这种配置对于大多数树莓派用户来说,可能过于重量级了,但是大多数用户能学到服务器的配置过程,是一种学习配置服务器的好方法。我可能会在以后写一篇轻量级服务器的配置文章。

所有的配置都在命令行下完成。这可能会比点鼠标难一些,但是也会有很多优势,例如可以远程管理、配置服务,CPU时间可以用在提供网页服务上,而不是用来渲染图形界面,毕竟网络服务器的唯一目的就是网页服务。

为什么要用树莓派?

除了极客式的回答“因为我能这么做”之外,我认为还有其他一些很好的理由。 可以学习Linux 本站的主要目的是传授Linux技巧。学Linux最好的方式是用Linux做些什么。搭建服务器是一个好的起点。 学习网络编程 树梅派基金会的目标是教孩子编程。网络编程是非常有用的技能。虽然对于先学桌面编程好,还是先学网络编程好,一直以来是有争议的,但是毫无疑问网络编程非常实用。 作为一个接口 树莓派适合从各种感应器中收集数据,可以搭建一个服务器,来访问这些数据。 专用网络设备 可以做成一个家中使用的专用网络设备,例如流媒体设备等。 当作测试或开发服务器 开发web应用的时候,有一个专用的测试用服务器比较好。理想状态下,测试服务器的软硬件应该和生产环境下一致,但如果不现实,可以用树莓派来代替,开销很低。 当作生产环境的服务器 最初我会说,把树莓派当作生产环境服务器是很傻的事。但我回忆了下, 我最初的个人博客 的服务器的配置也不比树莓派强多少,那是在2007年之前的事情。那台服务器的内存比树莓派多一点,就可以跑一个完整的 WordPress 站点,以及其它一些CGI脚本。现在的网站动态内容更多,站点上的文件也更大,但是如果是个人网站,用树莓派也够用了。

Debian Linux

服务器的配置基于 树莓派下载页 上的Debian树莓派镜像。

本文需要树莓派能连接到外网,下文假设树莓派是用网线连接到家用路由器上的。

安全性

首先要让树莓派的安全等级更高一些。这个镜像中的系统有默认的用户名和密码,连上外网后,任何人都可以登陆,然后随意使用这个树莓派。

要更改密码,在登陆后输入

1

passwd

然后在之后出现的提示符后输入新密码。

你可能想要添加一个帐户。我在下文中用的账户名是user1,通常来说,账户名应该是个人名。如果你不想添加帐户,可以跳过这一部分,直接去看 性能/网络那一步。 下面的命令可以添加一个新帐户,并且设定密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudouseradd -m user1

sudopasswd user1

这是本文中第一次用sudo命令,在余下的部分中还会用很多次。使用sudo命令,用户可以以管理员的身份来执行一个命令,就像上面的例子里一样。如果不使用sudo,命令就会运行失败,因为普通用户不可以创建其它帐户。这是一个防止系统被盗用的安全特性,也可以防止用户误用某些命令破坏系统(虽然说前面加上sudo就不能防止误用了)。

新帐户必须被加入到特定的用户组中,才能有pi帐户的某些权限。

你可以用usermod命令添加用户组,也可以直接更改配置文件。我在下面会直接改配置文件,这样你就能看一下配置文件了(一般来说,如果要做好几个改动,直接改配置文件会快一些)。请注意,如果在编辑配置文件的时候出错,有可能这个帐户会不能登陆。

有两个常用的命令行下的文本编辑器,对于新用户来说nano比较容易使用(所以我在下文用的是nano),因为它很有用,并且在所有linux上都是预装的。如果你会用vi,那么下面使用nano的地方,你都可以用vi。

1

sudonano /etc/group

浏览整个文件,找到pi所在的那一行,然后把,user1加到行尾。

例如

1

adm:x:4:pi,user1

编辑完成后,CTRL-O保存文件,CTRL-X退出。

重要的地方在于,如果一个帐户不在admin那一行,这个帐户就不能使用sudo,从而不能进行任何系统管理 。当然,如果你想要添加一个帐户,然后不给管理权限,那么就不用改动/etc/group文件。

输入

1

exit

注销,然后用新建的帐户登陆,检查一下是否设置正确。

新帐户默认的 Shell 是bourne shell。bash是bourne shell的改进版,用户可以在命令行使用方向键自动补全。

为新帐户设置默认shell,输入:

1

chsh-s /bin/bash

如果以后不用pi这个帐户了,可以删掉它。

1

userdel pi

这只是提升Pi的安全级别的第一步。Linux安全还包含其它方面,例如当安全补丁发布后,安装这些补丁(例如用apt-get update)。

调节系统性能

通常来说,调整服务器性能是之后要做的事情。但是对于树莓派来说,做一个调整,就能提升系统的性能。我们在这里设置,保存重启后生效,之后可以省去一次重启。 树莓派有256MB(后来的版本是512MB)内存。但这个内存是图形和主系统共用的。默认情况下64MB分配给图形系统。对于不准备跑图形界面,或者很少跑图形界面的设备,例如服务器这种情况下,64MB内存太多了。将图形系统的内存减少到32MB,输入下面的命令。

1

sudocp /boot/arm224_start.elf /boot/start.elf

或者用sudo raspi-config在配置目录中改动。(你可以用sudo cp /boot/arm192_start.elf /boot/start.elf 来恢复之前的设置)

这个改动需要重启后生效,我们稍晚时候再重启,所以现在不用重启。

设定网络

下一步要为树莓派分配一个静态IP地址。这一步稍微复杂一点,决定于你自己的配置和路由器种类。 默认情况下树莓派向路由器请求一个动态IP。这种IP可能会变动,不容易连上你的服务器。我们的办法是给它一个不会变的地址,例如192.168.1.4 注意,这个地址只能在局域网使用,不能在外网用——之后我们会介绍如何配置你的路由器和防火墙 ,让外网用户可以访问你的服务器。

首先用ifconfig查看DHCP分配给树莓派的地址——下面是输出内容的一部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
…

eth0      Link encap:Ethernet  HWaddr b8:27:eb:8a:71:a0

inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0

这是在说,以太网端口0,地址是192.168.1.110

你还需要知道路由器的地址,使用route命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

这是在说,路由器的IP地址(也就是网关)是192.168.1.1,所有的数据都会通过这个路由器接收和发送。

现在,查看路由器IP池的范围。这取决于你的路由器。下面的例子中用的是一个 Belkin无线路由器 ,在浏览器中输入192.168.1.1,可以看到路由器的管理界面。

LAN设置是下面这个样子的:

这个例子中,局域网有效的IP范围是从192.168.1.1到192.168.1.254.路由器的地址是192.168.1.1,DHCP分配的地址是从192.168.1.100到192.168.1.150(如果有必要,你可以更改这个范围)。我给服务器分配的地址是192.168.1.4.

配置静态IP地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd/etc/network

sudonano interfaces

把 iface eth0 inet dhcp 改成 iface eth0 inet static

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
address 192.168.1.4

netmask 255.255.255.0

gateway 192.168.1.1

你可以看一眼/etc/resolv.conf中的配置,其中有一条记录(很可能是指向你的默认网关的)

1

nameserver 192.168.1.1

你也可以把这一项直接指向网络服务商的DNS服务器地址。虽然可以不重启,重新连接网络接口,我建议在这一步重启,确保配置正确。

1

sudoreboot

登陆之后,用ifconfig确认服务器有一个静态ip地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
…

eth0      Link encap:Ethernet  HWaddr b8:27:eb:8a:71:a0

inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0

开启SSH

SSH(Secure Shell)是一种网络协议,你可以用命令行通过这种协议远程登陆,控制计算机。就像名称中所说的一样,这种远程控制是安全的,因为数据在网络上传输的时候是加密的(所以别人看不到你的密码之类的信息)。它还提供例如隧道之类的很棒的特性,我们在这里不去深入讨论。

ssh服务在默认的镜像上有,默认也是开启的。你可以用raspi-config打开或关闭ssh服务。

现在你可以用ssh远程访问树莓派(在同一个网络下)。如果你有另一台在同一个网络下,并装有linux的电脑,就可以在终端运行

1

ssh192.168.1.4

然后会以同样的用户名登陆。如果想用用户名不同的帐户,在ip前输入用户名,并且用@来分隔。例如

1

sshuser1@192.168.1.4

MAC上也有ssh,你可以用同样的命令登陆。

如果你用Windows,那么有好几种选择,我推荐开源软件Putty。

让外网可以访问服务器

然后,我们来设置路由器,让ssh和网络数据可以通过防火墙连到树莓派。

你把pi帐户的默认密码改掉了吧?如果没改掉默认密码,任何人都可以登陆到你的树莓派上。

家庭网络中的ip地址是局域网的地址,局域网是个私有网段,外网是无法访问的。你的网络服务商会提供一个动态IP,这个IP是路由器在使用的。为了让外网可以访问你的树莓派,必须把树莓派的地址转换为一个外网地址。这个过程叫网络地址转换(NAT)。

需要开放的端口号是80(http默认端口),如果你想在外网的计算机上登陆,还需要开放22端口(ssh默认)。

这一步需要查阅路由器的说明书。这个例子中,我的Belkin路由器是在防火墙>虚拟服务器设定中(见下图),但是Netgear的路由器在高级>安全>IP转发中。

DNS

最后一步是给你路由器的IP绑定一个域名。从我个人的情况而言,宽带服务商是Virgin Media。虽然他们提供的是动态IP,但是地址通常是不会变的。我在一个域名服务商那里注册了一个静态的域名。这个域名大概一年只需要更新一次,或者当Virgin Media进行大规模网络维护的时候更新一次。

如果你的IP是动态的,而且经常变动,你就要注册一个动态域名服务。

安装Apache

Apache服务器可以从Debian的源中下载。可以用apt下载。

首先要更新apt的软件列表。如果不运行sudo apt-get updata的话,apt软件就不知道有没有新的软件包或者版本更新。

Apache可以用下面的命令来安装

1

sudoapt-get installapache2

安装mysql

mysql在Debian的源中也有,可以用这个命令来安装

1

sudoapt-get installmysql-server

安装过程中,会出现一个提示符让你输入一个密码。

这个密码是mysql root用户的密码。

安装PHP

Perl是系统预装的,所以我这里只写PHP的安装。

输入下面的命令,就可以安装PHP 5,以及PHP访问mysql数据库所需要的库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudoapt-get installphp5

sudoapt-get installphp5-mysql

配置完成

安装完成后,可以在浏览器中输入你路由器的IP或域名,就可以访问你的网站了。

你应该能看到一个页面显示“It works”,但是没有其它内容。

删掉/var/www/index.html,创建一个/var/www/index.php,可以测试服务器和PHP工作是否正常。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
树莓派4b入手(上篇)
树莓派需要资源: 电源(+电源线请选择5V 3A的电源+USB TypeC的数据线), 安装了树莓派系统的SD卡, 外壳
acc8226
2022/05/17
1.1K0
树莓派4b入手(上篇)
树莓派笔记
资源下载 使用VNC远程登陆树莓派 树莓派手动指定静态IP和DNS 终极解决大法 Multi-Cam Module Error 用wiki.js搭建自己的wiki知识库
tea9
2022/09/08
2.3K0
树莓派笔记
树莓派:漂洋过海来看你
给树莓派连上显示器和键盘鼠标,就可以像使用一台电脑一样使用它了。但很多时候,我们是把体积小巧的树莓派当做一个便携设备来使用的。这种时候,用户可不希望随身带着体积庞大的鼠标、键盘和显示器。如果能用手中的
Vamei
2018/01/18
2.5K0
树莓派:漂洋过海来看你
如何在树莓派上搭建运行 WordPress
WordPress 是一个非常受欢迎的开源博客平台和内容管理平台(CMS)。它很容易搭建,而且还有一个活跃的开发者社区构建网站、创建主题和插件供其他人使用。
星哥玩云
2022/07/24
1.3K0
如何在树莓派上搭建运行 WordPress
树莓派设置开机自启动详细_树莓派开机要多久
4、写入成功后,U盘会分为两个,打开boot的盘符,在里面新建一个txt空文件,改名为ssh同时删掉后缀
全栈程序员站长
2022/11/04
1.9K0
实现在外网SSH远程访问内网树莓派的详细教程
在使用树莓派 (Raspberry Pi) 可以做的所有事情中,将其用作为家庭网络中的服务器非常流行。微小的占地面积和低功耗使其成为运行轻量级服务器的完美设备。
iOS Magician
2023/10/11
1.4K0
实现在外网SSH远程访问内网树莓派的详细教程
树莓派 网络设置_树莓派4b教程
对于大多数的家庭网络来说,你就不需要再做任何进一步的配置了。但为了保证正常工作,你的路由器必须打开DHCP(Dynamic Host Configuration Protocal)配置。这个服务运行在你的路由器上,它会给任何通过网线或者WiFi连接到路由器上的设备分发IP地址。
全栈程序员站长
2022/09/30
3K0
树莓派 网络设置_树莓派4b教程
树莓派基础教程_树莓派从入门到精通
1.首先进入树莓派官网:https://www.raspberrypi.org/,点击Software
全栈程序员站长
2022/11/04
4.4K0
树莓派基础教程_树莓派从入门到精通
如何在局域网外SSH远程访问连接到家里的树莓派?
在使用树莓派 (Raspberry Pi) 可以做的所有事情中,将其用作为家庭网络中的服务器非常流行。微小的占地面积和低功耗使其成为运行轻量级服务器的完美设备。
iOS Magician
2023/10/11
7761
如何在局域网外SSH远程访问连接到家里的树莓派?
玩玩树莓派之自动连接无线路由器
前言:啥都没有,还是说说自己的心声,还是啥都没有,嘿嘿,又一段时间没有玩过树莓派了,连连接无线路由器都忘记啦,所以我是来记录记录此过程的。 ---- Step-One:手机安装Fing软件 安装此软件的目的是扫描局同一段域网的IP,想要ssh到树莓派必须知道IP的啦 ---- Step-Two:ssh到树莓派主机,既然都知道了树莓派IP那就ssh上去 ssh pi@172.16.168.125 #默认用户名为pi 密码为raspberry ---- Step-Three:修改网络配置文件/etc
AlicFeng
2018/06/08
6790
树莓派4B系统搭建(超详细版)
树莓派需要一个操作系统才能工作。树莓派操作系统(以前称为 Raspbian)是官方支持的操作系统,现在更名为Raspios,所以原先博客的Raspbian含有下载链接都失效了。 目前最新的是Buster版本,如果官网更新了就下载最新的即可,要注意后面修改软件源的时候要选择Buster的源。 附上下载链接: 点击下载提取码:vfq7 我下载的是这个
全栈程序员站长
2022/07/01
3.9K0
树莓派4B系统搭建(超详细版)
树莓派远程及文件传输:以呼吸参数测量及获取为例
在组装完树莓派以后,我们需要让我们的树莓派编程“中央空调”,即:让其他电脑都可以通过远程/局域网来访问控制我们的树莓派我们的树莓派。
代码咖啡
2018/08/28
1.7K0
树莓派远程及文件传输:以呼吸参数测量及获取为例
树莓派4b基础入门「建议收藏」
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨为学生计算机编程教育而设计,其系统基于Linux,由注册于英国的慈善组织“Raspberry Pi基金会”开发,Eben·Upton为项目带头人。别看其外表“娇小”,内“心”却很强大,上网、看视频、听音乐等功能都有,可谓是“麻雀虽小,五脏俱全”。自问世以来,受众多计算机发烧友和创客的追捧。 1.树莓派的家族
全栈程序员站长
2022/07/01
7.5K0
树莓派4b基础入门「建议收藏」
在使用 WLAN 联网的树莓派上安装 Proxmox VE 并创建虚拟机
  去年的这个时候收了一台树莓派 4B,到手之后宝塔建站一把梭之后就放在那里吃灰(没办法,技术太菜玩不了别的)。最近迷上了 PVE,想想手头也没有什么可以实践的物理设备,百般寻找之后便把目光锁定在了吃灰中的树莓派。   Proxmox 论坛的 https://forum.proxmox.com/threads/how-to-run-pve-7-on-a-raspberry-pi.95658/ 帖子讲的是在有线网络接入 (eth0) 时的安装过程,目前我手里没有网线,所以只能修修改改踩踩坑探索一下 WLAN 接入网络 (wlan0) 时的安装和配置。
Nyarime
2021/12/14
8.5K0
在使用 WLAN 联网的树莓派上安装 Proxmox VE 并创建虚拟机
树莓派搭建私有云Cloudreve
第一当然喜欢它的MD风格,其次支持Webdav,Aria2,而且可以对接阿里云OSS,腾讯云COS还有onedrive等等~速度上肯定有保障的
KINDYEAR
2022/07/12
6.7K0
树莓派搭建私有云Cloudreve
手把手教大家搭建一个低成本的多功能移动渗透测试站点
凡是搞过物联网开发的朋友们都应该知道树莓派这个东东吧?特别是RPI ZERO,小身材,大功能!
FB客服
2020/02/12
1.5K0
手把手教大家搭建一个低成本的多功能移动渗透测试站点
使用树莓派打造远程Web服务器
简介:基于树莓派3B打造个人的远程Web服务器完全教程,主要是各个帖子内容的集合,并非原创但经过实践验证保证其在最新的系统环境上有效。
星哥玩云
2022/07/27
2.1K0
使用树莓派打造远程Web服务器
教你入门树莓派
Raspberry Pi(中文名为“树莓派”,简写为 RPi,或者 RasPi/RPi)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于 Linux.
测试加
2022/03/24
2.5K0
教你入门树莓派
转 树莓派无显示器安装系统
1.选择、安装操作系统 LZ选择的是官方提供的Raspbian,官方提供的Raspberry Pi专用Debian。打开下载页后,选择Raspbian “wheezy”的Zip下载。 下载页面: h
霡霂
2018/06/04
1.6K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
对于很多程序员而言,树莓派如今已经如雷贯耳,对于我一个新入行AI领域研究的新人而言,树莓派激发了我极大的兴趣。最开始知道树莓派,是因为我之前做了一个语音对话机器人,然后在查询有关资料的时候发现有人用树莓派做了一个语音对话机器人,于是乎很惊奇,心中一直想自己动手实验一下。刚好那时候听说树莓派4B新上市,各方面的性能至少提升了3倍以上,好奇心害死猫,所以我决定入坑树莓派了。
全栈程序员站长
2022/07/01
9K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
相关推荐
树莓派4b入手(上篇)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验