设为首页 收藏本站
查看: 2022|回复: 0

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-16 02:17:14 | 显示全部楼层 |阅读模式
  参考 在树莓派上搭建LAMP(Linux Apache Mysql PHP)服务器
  

  
在树莓派上搭建LAMP(Linux Apache Mysql PHP)服务器
孔垂瑾2013 年 8 月 14 日1条评论 标签:RaspberryPi ,树莓派 5本文由 极客范 - 孔垂瑾 翻译自 Watkiss Online Group。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

  
  本文将详细介绍如何在树莓派上配置服务器,和《教你在Xubuntu上搭建LAMP服务器》有些类似,多了一些介绍在树莓派上的不同步骤的地方。
  这种服务器的配置被称为LAMP,是最流行的服务器配置之一,LAMP的含义是:
Linux - 操作系统
Apache - 网络服务器(HTTP)软件
Mysql - 数据库服务
PHP or Perl - 编程语言
  这种配置对于大多数树莓派用户来说,可能过于重量级了,但是大多数用户能学到服务器的配置过程,是一种学习配置服务器的好方法。我可能会在以后写一篇轻量级服务器的配置文章。
  所有的配置都在命令行下完成。这可能会比点鼠标难一些,但是也会有很多优势,例如可以远程管理、配置服务,CPU时间可以用在提供网页服务上,而不是用来渲染图形界面,毕竟网络服务器的唯一目的就是网页服务。
为什么要用树莓派?
  除了极客式的回答“因为我能这么做”之外,我认为还有其他一些很好的理由。
DSC0000.jpg
可以学习Linux 本站的主要目的是传授Linux技巧。学Linux最好的方式是用Linux做些什么。搭建服务器是一个好的起点。
  学习网络编程 树梅派基金会的目标是教孩子编程。网络编程是非常有用的技能。虽然对于先学桌面编程好,还是先学网络编程好,一直以来是有争议的,但是毫无疑问网络编程非常实用。
  作为一个接口 树莓派适合从各种感应器中收集数据,可以搭建一个服务器,来访问这些数据。
  专用网络设备 可以做成一个家中使用的专用网络设备,例如流媒体设备等。
  当作测试或开发服务器 开发web应用的时候,有一个专用的测试用服务器比较好。理想状态下,测试服务器的软硬件应该和生产环境下一致,但如果不现实,可以用树莓派来代替,开销很低。
  当作生产环境的服务器 最初我会说,把树莓派当作生产环境服务器是很傻的事。但我回忆了下,我最初的个人博客的服务器的配置也不比树莓派强多少,那是在2007年之前的事情。那台服务器的内存比树莓派多一点,就可以跑一个完整的WordPress站点,以及其它一些CGI脚本。现在的网站动态内容更多,站点上的文件也更大,但是如果是个人网站,用树莓派也够用了。
Debian Linux
  服务器的配置基于树莓派下载页上的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     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设置是下面这个样子的:
DSC0001.png
  这个例子中,局域网有效的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转发中。
DSC0002.png
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,内容是这个链接内的内容,可以测试服务器和PHP工作是否正常。
  注意,这个链接的文件扩展名是txt,是为了不让我的服务器执行这个文件,你应该把下载下来的文件扩展名改为php,让服务器把它当成PHP脚本来执行。


原文链接: Watkiss Online Group 翻译: 极客范- 孔垂瑾

译文链接: http://www.geekfan.net/3066/

[ 转载请保留原文出处、译者和译文链接。]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139625-1-1.html 上篇帖子: lamp Error403 Forbidden access解决策略 下篇帖子: Ubuntu 10.04下LAMP环境的简易搭建,配置与使用教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表