一柴墩、初始設(shè)置
1.軟件源更換為國內(nèi)源
sudo nano /ect/apt/sources.list 進入軟件源列表編輯
注釋原來的deb開頭內(nèi)容(官方軟件源,粘貼下面內(nèi)容)
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
一定要注意這個坑(wheezy-->buster)翩概,查看自己樹莓派的版本:
lsb_release -c
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
sudo reboot 重啟
sudo apt-get update 更新
2.設(shè)置時區(qū)
sudo dpkg-reconfigure tzdata 進入configuring tzdata界面選擇Asia牲距,Shanghai,回車確認
date 查看現(xiàn)在的時間
二钥庇、服務(wù)器搭建
1.安裝nginx服務(wù)器牍鞠、php
傳統(tǒng)LAMP組合對raspberry顯得較為笨重,為了保證服務(wù)器的高效運行评姨,
這里選擇LNMP(linux+nginx+MariaDB+php)
sudo apt-get install nginx 安裝nginx服務(wù)器
(安裝完會自動開啟nginx难述,默認開機啟動Nginx,如果不想開機啟動Nginx吐句,修改/etc/init.d/nginx文件)
sudo /etc/init.d/nginx start 啟動nginx
sudo apt-get install php5-fpm php5-sqlite 樹莓派4不支持php5,我們來安裝php7
sudo apt-get update 目前官方源已經(jīng)有PHP7.3的版本胁后,不用添加其它下載源就能安裝。首先更新軟件列表
sudo apt install -y -t buster (php7.3-fpm php7.3-curl php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-imap php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-xmlrpc php7.3-zip) 安裝PHP7.3
php -v 查看php版本號
php -i|grep "Loaded Configuration File" 查看php.ini配置文件位置
Loaded Configuration File => /etc/php/7.3/cli/php.ini 顯示配置文件位置(通過命令行調(diào)用php時使用此位置)
配置文件有兩個嗦枢,另外一個在/etc/php/7.3/fpm/php.ini(通過fpm調(diào)用php(例如nginx)使用)
在瀏覽器輸入樹莓派的IP地址攀芯,可以看到“Welcome to nginx!”。
或者使用命令行:
curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
.....
能夠輸出html說明nginx安裝成功文虏。
php-fpm常用管理命令
sudo systemctl start php7.3-fpm 開啟php-fpm
sudo systemctl stop php7.3-fpm 關(guān)閉php-fpm
sudo systemctl restart php7.3-fpm 重啟php-fpm
vi /etc/php/7.3/fpm/php-fpm.ini 編輯php-fpm配置文件
默認的網(wǎng)站根目錄:/var/www/html
nginx配置文件目錄:/etc/nginx/
nginx主配置文件位置:/etc/nginx/nginx.conf
nginx常用管理命令
sudo systemctl start nginx 啟動nginx
sudo systemctl stop nginx 關(guān)閉nginx
sudo systemctl enable nginx 設(shè)置nginx開機啟動
2.配置nginx解析php
sudo vi /etc/nginx/sites-enabled/default 編輯配置nginx文件
index index.php index.html index.htm index.nginx-debian.html; 添加index.php
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
sudo systemctl restart nginx 保存后重啟nginx
sudo vi /var/www/html/index.php 在網(wǎng)站根目錄創(chuàng)建一個php文件
<?php
phpinfo(); 寫入以下代碼并保存侣诺,在瀏覽器中輸入樹莓派的IP地址即可看到phpinfo
3.安裝Mairadb數(shù)據(jù)庫
sudo apt-get install mariadb-server mariadb-client 安裝mariadb
sudo mysql_secure_installation 數(shù)據(jù)庫安全/初始化設(shè)置(根據(jù)提示設(shè)置數(shù)據(jù)庫root用戶密碼-pi、是否允許外網(wǎng)訪問等)
mysql -u root -p 嘗試登錄數(shù)據(jù)庫
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’ 輸入上一步設(shè)置的密碼择葡,發(fā)現(xiàn)無法登錄
原因: 數(shù)據(jù)庫默認使用系統(tǒng)用戶登錄紧武,需要修改為使用密碼登錄剃氧。
sudo mysql -u root 登入數(shù)據(jù)庫依次執(zhí)行以下SQL:
use mysql #切換到mysql數(shù)據(jù)庫
update user set plugin='mysql_native_password'; #修改plugin字段
flush privileges; #刷新mysql的系統(tǒng)權(quán)限相關(guān)表敏储,保證在不重啟mysql服務(wù)器下直接生效
exit; #退出數(shù)據(jù)庫
mysql -u root -p 再次執(zhí)行即可通過密碼登錄數(shù)據(jù)庫,無需root權(quán)限執(zhí)行
mariadb配置文件保存在多個位置
/etc/mysql/mariadb.cnf
/etc/mysql/mariadb.conf.d/
/etc/mysql/conf.d/
mariadb常用命令
sudo systemctl start mariadb 啟動mariadb
sudo systemctl stop mariadb 關(guān)閉mariadb
sudo systemctl enable mariadb 設(shè)置mariadb開機啟動
4.配置數(shù)據(jù)庫MariaDB朋鞍、遠程連接
默認情況下MariaDB安裝好后都沒有配置訪問用戶的密碼已添,因此如果需要遠程連接時會無法連接妥箕。
因此需要先對root用戶設(shè)置密碼。
數(shù)據(jù)庫更舞,設(shè)置root密碼
sudo mysql -u root -p 回車進入數(shù)據(jù)庫畦幢,常規(guī)操作需要輸入密碼
use mysql; 切換到mysql數(shù)據(jù)庫
UPDATE user SET password=password('root') WHERE user='root'; 用戶root密碼設(shè)置為root
UPDATE user SET plugin='mysql_native_password' WHERE user = 'root'; 重啟mysql必須輸入正確密碼才能進入
flush privileges; 刷新
exit
sudo cat /etc/mysql/debian.cnf 查看默認密碼,一開始為空
sudo systemctl restart mariadb 重啟數(shù)據(jù)庫
mysql -u root -p 測試一下:密碼登錄mariadb缆蝉,驗證是否修改成功
允許遠程登錄
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf 數(shù)據(jù)庫MariaDB默認只監(jiān)聽127.0.0.1這個IP地址
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1 只監(jiān)聽了127.0.0.1這個IP宇葱,注釋起來就監(jiān)聽所有IP
sudo /etc/init.d/mysql restart 重啟服務(wù)
設(shè)置賬號權(quán)限,遠程登錄
此時從外部連不上刊头,先用mysql命令連接到MariaDB黍瞧,授予主機訪問權(quán)限
mysql -u root -p
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 授予任意主機(%)訪問數(shù)據(jù)庫的所有權(quán)限,密碼root
#GRANT ALL PRIVILEGES ON *.* TO 'user'@'remoteip' IDENTIFIED BY 'password' WITH GRANT OPTION; 如果需要指定訪問主機原杂,可以把%替換為主機的IP或者主機名
#update user set host='%' where user='root' and host='localhost'; 上一條在user表中增加一條記錄印颤,若只想訪問而不想增加記錄可用此行
FLUSH PRIVILEGES; --更新權(quán)限
不能遠程的,嘗試打開數(shù)據(jù)庫服務(wù)器防火墻(CentOS7)
exit 退出數(shù)據(jù)庫 mysql
#sudo service mysql restart 重啟數(shù)據(jù)庫穿肄,配置生效
樹莓派數(shù)據(jù)庫基本指令---注意分號
update user set password=password(”xueok654123″) where user=’root’; 修改數(shù)據(jù)庫的密碼
show databases; 查看當前已經(jīng)建立的數(shù)據(jù)庫
create database xxx; 新建一個數(shù)據(jù)庫和表單(完成后使用show databases查看有沒有新建成功)
drop database xxx; 刪除xxx的數(shù)據(jù)庫
create table xx(id int(10),name varchar(10)); 新建一個table名字叫xx,和他的兩個域
show tables; 查看表單
describe xx; 查看表單有什么域
select * from xx; 查看相關(guān)表單信息
insert into xx(id,name) values (%d,%s)",[“1”,“sss”]) 插入數(shù)據(jù)
5.p上傳下載
生成一個網(wǎng)站管理員用戶年局,用于ftp上下載網(wǎng)站文件
sudo useradd webadmin 增加一個用戶,用戶名為webadmin
sudo passwd webadmin 修改用戶webadmin的密碼(密碼:webadmin)
sudo chown -R webadmin /var/www/html 讓用戶webadmin擁有www根目錄的所有權(quán)
sudo usermod -d /var/www/html webadmin 將用戶webadmin的登錄目錄更改為www根目錄
sudo apt-get install vsftpd 安裝vsftpd服務(wù)器 (約400KB)
sudo service vsftpd start 啟動ftp服務(wù)
sudo vi /etc/vsftpd.conf 編輯vsftdp的配置文件
找到以下行咸产,定義一下
anonymous_enable=NO 表示:不允許匿名訪問
local_enable=YES 設(shè)定本地用戶可以訪問矢否。
write_enable=YES 設(shè)定可以進行寫操作
local_umask=022 設(shè)定上傳后文件的權(quán)限掩碼。
sudo service vsftpd restart 重啟vsftpd
OK脑溢,配置完成兴喂,用戶webadmin登錄ftp后,將直接進入www根目錄焚志,并可上下載文件\創(chuàng)建目錄\刪除文件等等.
存盤退出
測試一下:
使用Xftp衣迷,輸入主機IP,用戶名pi酱酬,密碼pi壶谒,F(xiàn)TP的路徑:/home/pi
主機IP,用戶名webadmin膳沽,密碼webadmin汗菜,F(xiàn)TP的路經(jīng):/var/www/html
三、排錯
nginx故障
配置好服務(wù)器重啟挑社,nginx無法啟動陨界,打不開php
nginx -t 檢測所修改的配置文件是否有語法錯誤。排錯先確定問題再逐一驗證痛阻,重點關(guān)注[emerg]
sudo service nginx restart 重啟nginx
sudo service nginx status 查看nginx的狀態(tài)
可通過xftp登錄查看/比較內(nèi)容
參考鏈接
https://www.notion.so/web-03acaa94022d476fbdadeda1436e7a2b#66912ad2180f4d01822df0773571ec33
https://www.notion.so/web-03acaa94022d476fbdadeda1436e7a2b#a357ea1719794d5cb7ce4e43165ac2af
https://www.notion.so/web-03acaa94022d476fbdadeda1436e7a2b#38d15c18982a47558c87c7f3d58cbb4a
https://www.notion.so/web-03acaa94022d476fbdadeda1436e7a2b#d92c6f05c3c2440ab6a900f9f63395b5
https://www.notion.so/web-03acaa94022d476fbdadeda1436e7a2b#4b037432315e4adca491d70b3cf7446c