本篇文章将介绍从一个新的raspberryPi主板装机到完成web服务器搭建的全过程,文章将分为三个较大的部分:U盘装机篇、初始设置篇,以及服务器搭建篇。当你完成本文的所有操作后将会拥有一个稳定运行的raspberry pi服务器,可为下一步的网站搭建提供基础。
为此你应该准备的工具如下:
1.Raspberry主板(这里选用Raspberry Pi 3 Model B)
2.U盘一个(建议选用8G及8G以上的U盘)
3.SD卡(用于设置U盘启动,比20M大点即可)
4.计算机(用于镜像写入与调试)以及必要的5V 2.5A电源,显示器等
U盘装机篇
首先你需要下载需要的系统镜像文件 raspberry pi官网下载通道
因为是作为服务器使用所以不需要桌面等效果,因此下载命令行系统即可,选择RASPBIAN STRETCH LITE,如果你觉得ZIP的下载链接过于缓慢,建议更换为Torrent下载方式。
下载完成后使用Win32DiskImager进行写入镜像,点击蓝色文件夹选择镜像文件,注意要将镜像文件解压,得到img为扩展名的文件。Device选择你的U盘盘符即可。点击Write进行写入镜像。
写入完成后,为方便今后使用SSH通过计算机端进行访问,在U盘boot下直接创建空白文件ssh
注意不要带有扩展名,如果扩展名隐藏,请在控制面板-文件夹选项-查看-高级设置-隐藏已知文件类型的扩展名。(有很多新手创建txt文件后忘记或看不到txt扩展名,因此通过以下设置显示txt文件名进行删除txt扩展名创建空白文件ssh即可)
到这里后,将SD卡插入计算机进行读取,将U盘根目录下的所有文件复制到SD卡根目录。将SD卡插入Rspberry Pi开发板,插好显示器HDMI线,接上电源启动树莓派。登录时输入raspberrypi默认账户进行登录(注意在linux下密码输入不会显示):
raspberrypi login:pi
Password:raspberry
为了输入代码的方便更改键盘设置:
sudo raspi-config
进入Raspberry Pi Software Configuration Tool (raspi-config),选择 4 Localisation Options
选择13 Change Keyboard Layout
进入Configuring keyboard-configuration,在Keyboard model选择Generic 104-key PC
选择other
选择English(US)
选择English(US)- English (US,alternative international)
之后的一律选择默认的即可
回到Raspberry Pi Software Configuration Tool (raspi-config)界面后,按Tab键跳出选择,→方向键选择Finish退出即可。
之后输入以下代码:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
这行代码将'program_usb_boot_mode=1'插入到/boot/cinfig.txt文件的末尾。
使用sudo reboot命令重启树莓派后,用以下命令检查OTP设置:
vcgencmd otp_dump | grep 17:
如果得到的是如下结果则说明设置成功,如果不是该数字(比如17:1020000a),请重启设备再输入OTP检查代码即可。
17:3020000a
至此设置完毕,断电或关机(输入 sudo shutdown),拔出SD卡,插入U盘,开机等待的时间需要稍微长一点,最开始会有两次重启,建议树莓派USB端口只插入U盘。到出现raspberrypi login:的出现说明已经设置成功,此时可以进行wifi设置以进行ssh的访问。以后更换镜像也不用再做以上操作,只烧录U盘镜像即可。
初始设置篇
首先为了能够ssh访问(注意你是否已在之前写完镜像创建空白文件ssh),我们需要进行wifi设置。
输入以下命令,确认是否你的wif可以被raspberry pi检测到(由于U盘启动后之前在SD卡设置的键盘又被初始化,建议回到前面再进行一次键盘调整):
sudo iwlist wlan0 scan | grep SSID
在这里可以看到我的wifi:“LX-WIFI”,对于校园网的同学建议用电脑或手机开热点以避开校园网认证。
通过更改配置文件直接写入WIF信息来使raspberry pi连接wif,输入以下代码:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
可以看到该配置文件下的信息为:
添加wifi信息
设置完wif之后输入 sudo reboot 重新启动,可以看Rapberry pi已经连接到wifi了,并且知道Raspberry pi的ip地址了,比如我的是: 192.168.253.2
至此可以拔掉显示器,通过ssh来访问Raspberry pi了。打开PuTTY进行ssh访问,输入IP地址192.168.253.2(视自己的情况而定),点击open PuTTY下载通道
第一次访问服务器的警告,点击是
输入账户名和密码(raspberry pi默认账户名为pi,密码为raspberry)
登陆成功
为了方便今后软件的安装,我们需要将软件源更换为国内源:
输入以下代码
sudo nano /etc/apt/sources.list
进入sources.list的文档nano编辑界面
删除原来的deb开头的内容(官方软件源),一次粘贴(在nano下粘贴只需鼠标右键点击以下就可以了)以下内容:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
ctrl+o键进行保存,回车确认,再ctrl+x退出
输入sodu reboot重启,待重启后再重新用PuTTY进行ssh连接。
输入以下代码进行系统文件更新:
sudo apt-get update
更新完毕,国内的软件源还是较为好用的。为了方便使用,这里还要介绍如何去将raspberry pi的时间更改为国内时间(因为默认时间是英国时间),请输入以下代码:
sudo dpkg-reconfigure tzdata
进入configuring tzdata界面
通过方向键选择Asia,并通过Pg Dn键快速移动并配合方向键选择Shanghai,回车确认即可。
设置完成,可输入date来看现在的时间。
到此为止,我们就完成装机和最基本的设置,接下来将介绍web服务器的搭建。
服务器搭建篇
传统LAMP组合对于raspberry pi显得较为笨重,为了保证服务器的高效运行,这里选择了nginx + php + sqlite的组合。
输入以下命令,安装nginx服务器,遇到Do you want to continue输入y:
sudo apt-get install nginx
输入以下代码,启动nginx服务器:
sudo /etc/init.d/nginx start
出现绿色的ok说明启动成功,nginx安装成功。
输入以下代码,安装php以及sqlite
sudo apt-get install php5-fpm php5-sqlite
同样,输入y以继续安装过程。
输入以下代码修改nginx配置文件
sudo nano /etc/nginx/sites-available/default
通过方向键,找到listen 80行,将其前面的#号注释去掉
继续找到index行,加入index.php
找到php的定义段,将这些行的注释去掉,修改后内容如下(注意有几行的#不去掉)
ctrl+o保存,回车确认,ctrl+x退出即可。
输入以下代码重新加载nginx配置:
sudo /etc/init.d/nginx reload
显示绿色ok说明成功。
测试可通过,在浏览器地址栏直接输入raspberry pi的ip地址即可:
测试php可通过以下操作完成:
输入以下代码创建测试文件
sudo nano /usr/share/nginx/www/test.php
在文档中写入以下代码
<?php phpinfo(); ?>
ctrl+o保存,回车确认,ctrl+x退出即可。在浏览器地址栏输入类似以下的地址:
192.168.253.2/test.php
如果你看到的该界面说明php服务已经成功安装到raspberry pi上了,接下来为了传输的方便我们要进行FTP服务器设置。
输入以下代码,安装vsftpd服务
sudo apt-get install vsftpd
输入以下代码,开启vsftpd服务
sudo service vsftpd start
输入以下代码,编辑vsftp的配置文件
sudo nano /etc/vsftpd.conf
找到anonymous_enable行更改为anonymous_enable=NO
找到local_enable=YES行,将#号去掉
找到write_enable=YES行,将#去掉
找到local_umask=022行,将#去掉
ctrl+o保存,回车确认,ctrl+x退出即可,输入以下代码重启服务
sudo service vsftpd restart
增加一个用于ftp的用户webadmin
sudo useradd webadmin
输入以下代码,修改webadmin密码
sudo passwd webadmin
输入以下代码,让用户webadmin拥有www根目录的所有权
sudo chown -R webadmin /usr/share/nginx/www
输入以下代码,将用户webadmin的登录目录更改为www根目录
sudo usermod -d /usr/share/nginx/www webadmin
输入以下,重启vsftpd
sudo service vsftpd restart
使用winscp登录即可。 winscp下载通道
到此为止一个web服务器的搭建全过程到此为止,接下来就可以进行php网站的相关制作了(请查看我的另一篇文章)。需要通过云服务器搭建博客的同学可以访问这里:传送门
参考资料
感谢各大论坛的Raspberry pi爱好者的帮助,现将本文用到的资料地址在以下位置列出,供各位参考。本文基于这些资料进行甄别整理外加一些自我思考和实践完成。
更改树莓派键盘设置 https://www.jianshu.com/p/8c474339a238
Raspberry Pi(树莓派)国内软件源 https://www.whatled.com/post-1399.html
树莓派 Raspberry Pi 更换国内源 http://blog.csdn.net/wanshiyingg/article/details/52887019
如何在树莓派中设置本地时区的问题解决 https://www.cnblogs.com/maoguy/p/5678563.html
树莓派连接wifi配置 https://www.jianshu.com/p/e22331d62a16
无显示器使用PC远程控制树莓派方案(有线&无线)https://qiita.com/Bark/items/d1ad4e53373935701b1a
【手把手教你树莓派3 (二)】 启动wifi模块 http://blog.csdn.net/u010900754/article/details/53041791
从u盘启动树莓派3 http://blog.csdn.net/xukangkeke/article/details/77414119?%3E
树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器 http://www.cnblogs.com/jikexianfeng/p/5867858.html
树莓派(raspberry pi)学习之安装ftp服务器http://www.cnblogs.com/jikexianfeng/p/5867858.html
RioTboard 【上手试玩】成功安装FTP服务 http://www.eeboard.com/bbs/thread-30778-1-1.html
nano编辑器使用教程 http://www.vpser.net/manage/nano.html
apt-get install php5时报错: 没有可用的软件包,但是它被其他软件包引用了 https://zhidao.baidu.com/question/1927185934672969387.html
新手入门树莓派必做的四件事 http://blog.csdn.net/a_lpha/article/details/53116767