树莓派3B+ Web服务器(NGINX+PHP+MYSQL5.7)

之前写过 树莓派3B+ Web服务器(LAMP)服务搭建,现在想补充一个基于NGINX的。


1.安装 Nginx 和 PHP7

在 Pi 的终端运行以下命令。

# 安装Nginx
sudo apt install -y nginx
sudo systemctl restart nginx
# 安装PHP7
sudo apt install -y php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi php7.0-mysql
sudo systemctl restart php7.0-fpm

如果安装成功,可通过 http://树莓派IP 访问到 Nginx 的默认页。Nginx 的根目录在 /var/www/html。
接下来配置 Nginx 来让 Nginx 能处理 PHP。

# 进入编辑
sudo vim /etc/nginx/sites-available/default
# 将其中的如下内容
		# Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
# 替换为
        index index.html index.htm index.nginx-debian.html index.php;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
        location ~\.php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
        client_max_body_size 256m;

修改一下上传文件大小限制:

# 打开配置文件
sudo vim /etc/php/7.0/fpm/php.ini
# 每个脚本运行的最长时间,单位秒,0为无限
max_execution_time = 0

# 每个脚本可以消耗的时间,单位也是秒
max_input_time = 300
# 脚本运行最大消耗的内存
memory_limit = 256M
# 表单提交最大数据为 8M,针对整个表单的提交数据进行限制的
post_max_size = 20M
# 上载文件的最大许可大小
upload_max_filesize = 10M

最后重启 Nginx 即可sudo service nginx restart

#添加一个PHP测试文件 
sudo vim /var/www/html/index.php
# 添加如下内容:
<?php
phpinfo();
?>

访问 http://192.168.1.120/index.php 结果如下:

这里写图片描述

当然你也可以放一个图形界面,监控树莓派运行状态(可选)

sudo apt install -y git
cd /var/www/html
sudo git clone https://github.com/spoonysonny/pi-dashboard.git
sudo mv pi-dashboard status

用浏览器访问http://192.168.1.120/status 可看到如下内容:

这里写图片描述

2.编译安装mysql

由于树莓派官方源安装的版本太低,所以选择编译安装。
但编译安装耗时近6个小时,所以我把自己编译好的打包了。你们只需要进入相应目录,执行sudo make install(别忘了安装依赖sudo apt install -y libncurses5-dev)即可。
(注:本人raspbian版本2018-04-18-raspbian-stretch-lite)
下载地址(1.34G):mysql-all.tar.gz

# 首先下载安装cmake
wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
tar -zxvf cmake-3.7.2.tar.gz
cd cmake-3.7.2
# 编译安装
./bootstrap --prefix=/usr/local/cmake
# 树莓派上不能加-j参数,容易报错
make
sudo make install
# 然后下载mysql,因为官方下载地址速度太慢了,所以换成搜狐镜像站下载
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.17.tar.gz
# 解压
tar -zxvf mysql-boost-5.7.17.tar.gz
# 进入
cd mysql-5.7.17
# 安装依赖
sudo apt install -y libncurses5-dev
# 编译准备,加上boost库
/usr/local/cmake/bin/cmake . -DWITH_BOOST=boost/boost_1_59_0
# 编译准备,扩展交换空间(由于编译需要占用大量内存,树莓派1G内存不够用)
# 以下3部分别是 创建swap文件、格式化、启用swap空间
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
# 查看swap空间(可以看到swap有1G多空间)
free -m
# 清屏
clear
# 开始编译
make
# 然后安装
sudo make install

3.配置mysql

由于编译安装mysql占版面太多,就将配置mysql分到第3部分。

cd /usr/local/
sudo chown -R pi mysql
sudo chgrp -R pi mysql
# 初始化mysql配置表
cd mysql
sudo bin/mysqld --initialize --user=pi
# 然后看输出的最后一行的密码(upu.e,s3X!f?)
2018-05-14T02:58:38.726560Z 1 [Note] A temporary password is generated for root@localhost: upu.e,s3X!f?

# 然后初始化SSL安全连接MySQL数据库(这个看需求)
# sudo bin/mysql_ssl_rsa_setup

# 将mysql/目录下除了data/目录的所有文件,改回root用户所有,pi用户只需作为mysql/data/目录下所有文件的所有者
sudo chown -R root .
sudo chown -R pi data

# 复制配置文件
sudo cp support-files/my-default.cnf /etc/my.cnf
sudo vim /etc/my.cnf
# 在最后一行`sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`前添加如下内容

#--mysql目录
basedir = /usr/local/mysql
#--数据库目录
datadir = /usr/local/mysql/data
#--数据库端口
# port = 3306
character_set_server=utf8
init_connect='SET NAMES utf8'

# 之后启动mysql
bin/mysqld_safe --user=pi &
# 登录mysql
bin/mysql -u root -p
# 然后设置密码
set PASSWORD = PASSWORD('0000');
# 设置用户永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
# 生效
flush privileges;

# 修改密码
update mysql.user set authentication_string=password('0000') where user='root';
# 为root开启远程登录
update mysql.user set host='%' where user='root' and host='localhost';
# 生效
flush privileges;
quit

# 设置开机自启
sudo sed -i '/exit 0/ i nohup /usr/local/mysql/bin/mysqld --user=pi >/dev/null 2>&1 &' /etc/rc.local

4.安装phpMyAdmin

用过这个的,应该都会安装一下,这是个mysql图形化管理工具,要求在PHP环境下。

# 下载
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.0.1/phpMyAdmin-4.8.0.1-all-languages.tar.gz
tar zxvf phpMyAdmin-4.8.0.1-all-languages.tar.gz
# 移动到WEB目录下
sudo mv phpMyAdmin-4.8.0.1-all-languages /var/www/html/mysql
# 复制一个配置文件
sudo cp config.sample.inc.php config.inc.php 
# 并将host的 `localhost` 修改为`127.0.0.1`
sudo vim config.inc.php
# 安装php7.0-mbstring
sudo apt install -y php7.0-mbstring

浏览器打开:http://192.168.1.120/mysql/
输入相应帐号密码。即可进入!!

这里写图片描述

Logo

更多推荐