这篇文章上次修改于 2288 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
这次使用树莓派来搭建一个小型Web服务器进行功能测试,比起云服务器有些细节的不同,便记录了下来。
1.全局配置
- 烧录好官方镜像,并在boot分区创建"ssh"的文件以激活SSH功能
- 首次登录用户名
pi
,密码raspberry
,使用sudo passwd pi
可以修改pi用户密码 - 使用
sudo passwd root
并重启来启动root用户,以下使用root进行操作 - 修改软件源,文件
/etc/apt/sources.list
中替换http://mirrors.aliyun.com/raspbian/raspbian/
,取消deb-src
的注释并替换两个链接 - 更新软件库
apt-get update
并更新软件apt-get upgrade
2.Nginx安装
默认镜像中没有自带Apache,如自带了先卸载
参考Shell:
apt-get remove --purge apache* -y
apt-get autoremove --purge -y
Nginx安装
参考Shell:
apt-get install nginx
稍后再讲Nginx的配置
3.PHP7及其插件安装
使用apt-get默认安装php的5.6版本,我们这里安装PHP7
参考Shell:
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-common
- 前两行是在安装php7的ppa源
- 更新源列表后才可安装PHP7(PHP7.0或PHP7.1)
- 最后安装PHP7.0主体、Nginx对接php7.0-fpm插件、mysql对接php7.0-mysql插件,常用函数工具php7.0-common插件
4.MySQL(MariaDB)安装
使用apt-get默认安装MySQL是MariaDB发行版,与MySQL区别不大
参考Shell:
apt-get install mysql-server mysql-client
5.配置Nginx+PHP7+MySQL(MariaDB)
5.1.重启服务
参考Shell:
/etc/init.d/nginx restart
/etc/init.d/php7-fpm restart
service mysql restart
5.2.配置php-fpm
此处需确定Nginx连接php服务的形式,tcp或socket
首先找到www.conf
文件,注意不同的平台文件位置不同,我的在/etc/php/7.0/fpm/pool.d
定位到www.conf
文件中listen = /run/php/php7.0-fpm.sock
行
若参数是xxx.sock说明php-fpm是通过socket模式与Nginx通信。
若参数是127.0.0.1说明php-fpm是通过tcp模式与Nginx通信
记录好该通信模式,开始下一步
5.3.配置Nginx
apt-get安装的Nginx配置文件比较分散
正常情况下修改nginx.conf
总配置文件就好,但我平台上的nginx.conf
又通过include
引入了其他配置文件
最终修改定位到了被引入的/etc/nginx/sites-available/default
文件中
修改server
根下的两个location
参考修改:
location / {
index index.html index.htm index.php default.html default.htm default.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;
}
注:fastcgi_pass
参数对应上面提到的php-fpm连接方式
若是tcp模式,应修改为对应的地址和端口
Tip:
若测试时出现404 Not found,一般情况是对应路径设置错误
若测试时出现502 Bad Gateway,一般情况是fastcgi_pass参数设置错误
5.4.配置MySQL(MariaDB)
- 请正确安装php7.0-mysql插件并在Mysql内分配正确的用户名和权限
- Shell登录:
mysql:mysql -u root -p
默认无密码 - 远程连接:修改数据库中的
user
表,参考UPDATE mysql.user SET host=% WHERE user='root'; FLUSH PRIVILEGES;
终
到这里树莓派小型Web服务器就搭建好了
树莓派在家里毕竟没有公网IP,后续会考虑在树莓派上做Frp来内网穿透
没有评论