首页资源分类嵌入式开发嵌入式系统 > 在树莓派上搭建LAMP(Linux Apache Mysql PHP)服务器

在树莓派上搭建LAMP(Linux Apache Mysql PHP)服务器

已有 460221个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

文档信息举报收藏

标    签: 树莓派RaspberryPi

分    享:

文档简介

在树莓派上搭建LAMP(Linux Apache Mysql PHP)服务器

文档预览

本文将详细介绍如何在树莓派上配置服务器,和《教你在 Xubuntu 上搭建 LAMP 服务器》 【http://www.penguintutor.com/linux/installing-lamp】有些类似,多了一些介绍在树莓派上的不同步骤的地方。 这种服务器的配置被称为 LAMP,是最流行的服务器配置之一,LAMP 的含义是: Linux - 操作系统 Apache - 网络服务器(HTTP)软件 Mysql - 数据库服务 PHP or Perl - 编程语言 这种配置对于大多数树莓派用户来说,可能过于重量级了,但是大多数用户能学到服务器的配置过程,是 一种学习配置服务器的好方法。我可能会在以后写一篇轻量级服务器的配置文章。 所有的配置都在命令行下完成。这可能会比点鼠标难一些,但是也会有很多优势,例如可以远程管理、配 置服务,CPU 时间可以用在提供网页服务上,而不是用来渲染图形界面,毕竟网络服务器的唯一目的就是 网页服务。 为什么要用树莓派? 除了极客式的回答“因为我能这么做”之外,我认为还有其他一些很好的理由。 可以学习 Linux 本站的主要目的是传授 Linux 技巧。学 Linux 最好的方式是用 Linux 做些什么。搭建服务器 是一个好的起点。 学习网络编程 树梅派基金会的目标是教孩子编程。网络编程是非常有用的技能。虽然对于先学桌面编程好, 还是先学网络编程好,一直以来是有争议的,但是毫无疑问网络编程非常实用。 作为一个接口 树莓派适合从各种感应器中收集数据,可以搭建一个服务器,来访问这些数据。 专用网络设备 可以做成一个家中使用的专用网络设备,例如流媒体设备等。 当作测试或开发服务器 开发 web 应用的时候,有一个专用的测试用服务器比较好。理想状态下,测试服 务器的软硬件应该和生产环境下一致,但如果不现实,可以用树莓派来代替,开销很低。 当作生产环境的服务器 最初我会说,把树莓派当作生产环境服务器是很傻的事。 但我回忆了下,我最初的个人博客【http://www.watkissonline.co.uk/】的服务器的配 置也不比树莓派强多少,那是在2007年之前的事情。那台服务器的内存比树莓 派多一点,就可以跑一个完整的 WordPress 站点,以及其它一些 CGI 脚本。现 在的网站动态内容更多,站点上的文件也更大,但是如果是个人网站,用树莓派 也够用了。 Debian Linux 服务器的配置基于树莓派下载页上[http://www.raspberrypi.org/downloads] 的 Debian 树莓派镜像。 本文需要树莓派能连接到外网,下文假设树莓派是用网线连接到家用路由器上 的。 安全性 首先要让树莓派的安全等级更高一些。这个镜像中的系统有默认的用户名和密 码,连上外网后,任何人都可以登陆,然后随意使用这个树莓派。 要更改密码,在登陆后输入 passwd 然后在之后出现的提示符后输入新密码。 你可能想要添加一个帐户。我在下文中用的账户名是 user1,通常来说,账户名应 该是个人名。如果你不想添加帐户,可以跳过这一部分,直接去看 性能/网络 那一步。 下面的命令可以添加一个新帐户,并且设定密码。 sudo useradd -m user1 sudo passwd user1 这是本文中第一次用 sudo 命令,在余下的部分中还会用很多次。使用 sudo 命令, 用户可以以管理员的身份来执行一个命令,就像上面的例子里一样。如果不使用 sudo,命令就会运行失败,因为普通用户不可以创建其它帐户。这是一个防止系 统被盗用的安全特性,也可以防止用户误用某些命令破坏系统(虽然说前面加上 sudo 就不能防止误用了)。 新帐户必须被加入到特定的用户组中,才能有 pi 帐户的某些权限。 你可以用 usermod 命令添加用户组,也可以直接更改配置文件。我在下面会直接 改配置文件,这样你就能看一下配置文件了(一般来说,如果要做好几个改动, 直接改配置文件会快一些)。请注意,如果在编辑配置文件的时候出错,有可能 这个帐户会不能登陆。 有两个常用的命令行下的文本编辑器,对于新用户来说 nano 比较容易使用(所 以我在下文用的是 nano),但是我强烈推荐学习 vi,因为它很有用,并且在所有 linux 上都是预装的。如果你会用 vi,那么下面使用 nano 的地方,你都可以用 vi。 sudo nano /etc/group 浏览整个文件,找到 pi 所在的那一行,然后把,user1加到行尾。 例如 adm:x:4:pi,user1 编辑完成后,CTRL-O 保存文件,CTRL-X 退出。 重要的地方在于,如果一个帐户不在 admin 那一行,这个帐户就不能使用 sudo, 从而不能进行任何系统管理。当然,如果你想要添加一个帐户,然后不给管理权 限,那么就不用改动/etc/group 文件。 输入 exit 注销,然后用新建的帐户登陆,检查一下是否设置正确。 新帐户默认的 Shell 是 bourne shell。bash 是 bourne shell 的改进版,用户可以在 命令行使用方向键自动补全。 为新帐户设置默认 shell,输入: chsh -s /bin/bash 如果以后不用 pi 这个帐户了,可以删掉它。 userdel pi 这只是提升 Pi 的安全级别的第一步。Linux 安全还包含其它方面,例如当安全补 丁发布后,安装这些补丁(例如用 apt-get update)。 调节系统性能 通常来说,调整服务器性能是之后要做的事情。但是对于树莓派来说,做一个调 整,就能提升系统的性能。我们在这里设置,保存重启后生效,之后可以省去一 次重启。 树莓派有256MB(后来的版本是512MB)内存。但这个内存是图形和主系统共 用的。默认情况下64MB 分配给图形系统。对于不准备跑图形界面,或者很少跑 图形界面的设备,例如服务器这种情况下,64MB 内存太多了。将图形系统的内 存减少到32MB,输入下面的命令。 sudo cp /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 分配给树莓派的地址——下面是输出内容的一部分 … 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 命令 $ route Kernel IP routing table Destination Use Iface Gateway Genmask Flags Metric Ref default 0 eth0 192.168.1.1 0.0.0.0 UG 0 0 192.168.1.0 * 0 eth0 255.255.255.0 U 0 0 这是在说,路由器的 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 地址 cd /etc/network sudo nano interfaces 把 iface eth0 inet dhcp 改成 iface eth0 inet static address 192.168.1.4 netmask 255.255.255.0 gateway 192.168.1.1 你可以看一眼/etc/resolv.conf 中的配置,其中有一条记录(很可能是指向你的默 认网关的) nameserver 192.168.1.1 你也可以把这一项直接指向网络服务商的 DNS 服务器地址。虽然可以不重启, 重新连接网络接口,我建议在这一步重启,确保配置正确。 sudo reboot 登陆之后,用 ifconfig 确认服务器有一个静态 ip 地址 … 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 的电脑,就可以在终端运行 ssh 192.168.1.4 然后会以同样的用户名登陆。如果想用用户名不同的帐户,在 ip 前输入用户名, 并且用@来分隔。例如 ssh user1@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 可以用下面的命令来安装 sudo apt-get install apache2 安装 mysql mysql 在 Debian 的源中也有,可以用这个命令来安装 sudo apt-get install mysql-server 安装过程中,会出现一个提示符让你输入一个密码。 这个密码是 mysql root 用户的密码。 安装 PHP Perl 是系统预装的,所以我这里只写 PHP 的安装。 输入下面的命令,就可以安装 PHP 5,以及 PHP 访问 mysql 数据库所需要的库。 sudo apt-get install php5 sudo apt-get install php5-mysql 配置完成 安装完成后,可以在浏览器中输入你路由器的 IP 或域名,就可以访问你的网站 了。 你应该能看到一个页面显示“It works”,但是没有其它内容。 删掉/var/www/index.html,创建一个/var/www/index.php,内容是这个链接 [http://www.penguintutor.com/otherfiles/index.php.txt]内的内容,可以测 试服务器和 PHP 工作是否正常。 注意,这个链接的文件扩展名是 txt,是为了不让我的服务器执行这个文件,你 应该把下载下来的文件扩展名改为 php,让服务器把它当成 PHP 脚本来执行。

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。