日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

在树莓派上搭建PHP家庭相册管理程序

發(fā)布時(shí)間:2024/3/24 php 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在树莓派上搭建PHP家庭相册管理程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

家里的照片實(shí)在是太多了,找了很多軟件,都達(dá)不到想要的查看圖片的效果,現(xiàn)分享一個(gè)在在樹莓派上搭建一個(gè)PHP家庭相冊(cè)程序,可以按文件夾方式查看,可以按日歷方式查看,還可以用關(guān)鍵字查詢,查詢到的照片可以全屏幻燈片播放,相信有很多同學(xué)跟我一樣,想搭建一個(gè)PHP相冊(cè)程序,可以隨時(shí)隨地查看自己的照片。OK,廢話不說(shuō),先看看下面是效果圖

登錄窗口
文件夾方式看圖

日歷方式看圖

頁(yè)面設(shè)置

可以全屏幻燈片播放查詢到的所有圖片

其它的功能,待同學(xué)們安裝好的自己去發(fā)現(xiàn)了。

接下來(lái),詳細(xì)介紹搭建過程,大致分為,在樹莓派上先搭建PHP環(huán)境,python3運(yùn)行環(huán)境,samba共享文件夾環(huán)境,ssh遠(yuǎn)程訪問樹莓派功能,再copy我的相冊(cè)管理程序源代碼放到自己的樹莓派上加簡(jiǎn)單的設(shè)置,即可使用 了。

一、樹莓派上先搭建PHP環(huán)境
硬件需求:
1、樹莓派3B或以上版本,樹莓派4有USB3.0,網(wǎng)絡(luò)也跟快。
2、樹莓派電源(5V 2A)
3、16GB TF卡或以下(裝樹莓派系統(tǒng), CLASS 10以上,速度會(huì)快一點(diǎn))
4、USB讀卡器(用于將Linux系統(tǒng)鏡像燒錄到TF卡)
5、顯示器轉(zhuǎn)接線(調(diào)試的時(shí)候用,當(dāng)SSH遠(yuǎn)程訪問搭建好就可以不用了)
6、移動(dòng)硬盤(或其它的代替品,用于存放照片)

我自己的移動(dòng)硬盤

軟件需求
1、樹莓派鏡像
2019-09-26-raspbian-buster-full.img 下面是下載地址
https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-09-30/2019-09-26-raspbian-buster-lite.zip
2、Win32 Diski Mager,下面是下載地址
https://sourceforge.net/projects/win32diskimager/

安裝直接下一步,選擇上面解壓鏡像 2019-09-26-raspbian-buster-lite.img 設(shè)備選擇 SD卡 設(shè)備

安裝完成后,將TF卡取出裝到樹莓派上,準(zhǔn)備開啟樹莓派之旅。如果安裝成功,通電樹莓派,等待一會(huì)就有畫面出來(lái),新版本的系統(tǒng)要求先進(jìn)行設(shè)置,如下圖

點(diǎn)Next進(jìn)行國(guó)家設(shè)置,我的設(shè)置如下

下一步設(shè)置系統(tǒng)的登錄密碼

下一步是設(shè)置屏幕顯示,隨便設(shè)置都行,我的設(shè)置如下

下一步是設(shè)置WiFi和密碼
設(shè)置好后,系統(tǒng)會(huì)檢測(cè)更新,發(fā)果沒有更新源,很有可能更新不上,先不管能不能更新,稍后更新源列表后再更新。

最后一點(diǎn),設(shè)置好后點(diǎn)Restart

再等一會(huì)就可進(jìn)入系統(tǒng)了。進(jìn)入系統(tǒng)后,建議將IP設(shè)置為靜態(tài),再設(shè)置SSH

有線網(wǎng)絡(luò)選eth0,無(wú)線網(wǎng)絡(luò)選wlan0

然后跟據(jù)自己的實(shí)際情況填寫靜態(tài)IP地址

再進(jìn)行SSH設(shè)置,菜單->Preferences->Raspberry Pi Configuration

再選擇Interfaces下面的SSH啟用,如下圖

重新啟動(dòng)后,可以不用顯示器了,接下來(lái)用遠(yuǎn)程連接工具Putty即可。百度一下,隨處可下載.
配置好下面的IP,PORT再選擇SSH,點(diǎn)Open,如果上面的設(shè)置沒有問題,就可以遠(yuǎn)程連接樹莓派了。

輸入用戶名:pi 和剛才設(shè)置的密碼后,進(jìn)行樹莓派的后臺(tái)

接下來(lái),需要先更新源列表,因國(guó)外的源速度太慢,下面是我的源列表。
先后輸入下面的命令
#備份源列表

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

#用nano打開源列表

sudo nano /etc/apt/sources.list

下面的我的源列表:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib rpi deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main non-free contrib rpideb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib rpi deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib rpideb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib rpideb http://mirrors.scau.edu.cn/raspbian/raspbian/ jessie main contrib non-free deb http://mirrors.scau.edu.cn/raspbian/raspbian/ stretch main contrib non-free deb http://mirrors.scau.edu.cn/raspbian/raspbian/ buster main contrib non-freedeb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ jessie main contrib non-free deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ stretch main contrib non-free deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ buster main contrib non-free


修改完成后,按Ctrl+x退出nano,退出之前點(diǎn)Y確認(rèn)保存。
源列表修改完后,需要更新源,升級(jí),這個(gè)過程需要一定時(shí)間,可以去煮開水喝口茶了。
命令如下 :

sudo apt-get update sudo apt-get upgrade -y

更新過程中,如下圖片

升級(jí)過程中

升級(jí)過程中,可能會(huì)有一些軟件包下載不到位等情況,建議多執(zhí)行幾次上面的2條命令,再執(zhí)行

sudo apt autoremove sudo reboot

接下來(lái)是軟件安裝,搭建運(yùn)行環(huán)境

  • Install PHP
  • sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache php5-mysql php5-mcrypt php5-gd -y
  • Install Mysql
  • sudo apt-get install mysql-server mysql-client -y

    #for debian buster 用下面的命令.

    sudo apt-get install default-mysql-server -y

  • Install phpmyadmin
  • sudo apt-get install phpmyadmin -y


    配置的時(shí)候選擇apache2再點(diǎn)OK

    這里點(diǎn)Yes

    輸入數(shù)據(jù)庫(kù)的密碼

    需要執(zhí)行下面的命令才能在網(wǎng)頁(yè)打開

    sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
  • Set Mysql Password
  • sudo mysql mysql> use mysqlmysql> # update user set password=PASSWORD("root") where user='root';mysql> update user set authentication_string=password('admin') where user='root'; Query OK, 0 rows affected (0.00 sec) Rows matched: 4 Changed: 0 Warnings: 0 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql>quit


    到此,如果一切正常,打開瀏覽器,輸入樹莓派的IP/phpmyadmin,即可訪問phpMyAdmin了

    但這時(shí),我們輸入用戶名和密碼的時(shí)候發(fā)現(xiàn)出錯(cuò)了。 #1698 - Access denied for user ‘root’@‘localhost’


    我們還需要做以下配置

    Fix #1698 - Access denied for user ‘root’@‘localhost’ issue.

    sudo mysql -u root -p #輸入密碼后,連續(xù)輸入以下命令 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'admin'; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; exit


    再去瀏覽器打開phpmyadmin,已經(jīng)可以正常登錄

    下面是給數(shù)據(jù)庫(kù)增加遠(yuǎn)程訪問的,我們的相冊(cè)管理程序不需要使用。
    /*********************************************************

    #增加新用戶并設(shè)置其它主機(jī)可訪問 sudo mysql -u root -p create user 'admin'@'%' identified by 'Admin*2018'; flush privileges; grant all privileges on *.* to 'admin'@'%' identified by 'Admin*2018'; flush privileges; #修改mysql的配置文件 sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf bind-address = 127.0.0.1 #注釋掉這一行就可以遠(yuǎn)程登錄了 #再重新啟動(dòng)mysql sudo service mysql restart

    ***************************************************************************************************************/

    接下來(lái),是配置sudo,讓php程序可能以管理員的身份調(diào)用python腳本

    # 當(dāng)我們?cè)赑HP中調(diào)用pyhon時(shí)如果出現(xiàn)錯(cuò)誤: sudo: no tty present and no askpass program specified # 還需要修改sudo配置文件,直接鍵如visudo命令編輯配置文件:sudo visudo # 將Defaults requiretty修改為 #Defaults requiretty, 表示不需要控制終端。 # 否則會(huì)出現(xiàn)sudo: sorry, you must have a tty to run sudo# 增加行 Defaults visiblepw # 否則會(huì)出現(xiàn) sudo: no tty present and no askpass program specified# 賦予www-data用戶執(zhí)行svn權(quán)限 # 如,增加行: www-data ALL=(ALL) NOPASSWD: ALL # 注:NOPASSWD可以使在命令執(zhí)行時(shí)不需要交互輸入www 用戶的密碼# www用戶為nginx或apache的運(yùn)行用戶


    按Ctrl+x再輸入Y保存并退出

    如果這里把sudo文件的語(yǔ)法搞錯(cuò)了就麻煩了,很多權(quán)限的命令都不能執(zhí)行,不幸的是,我就搞錯(cuò)了,不過下面是解決方法,同學(xué)們?nèi)绻麤]有出現(xiàn)這樣的問題,以下5步可以SKIP

  • 連接兩個(gè)ssh會(huì)話.
  • 在第一個(gè)ssh會(huì)話中執(zhí)行"echo $$"并記下PID
  • 在第二個(gè)ssh會(huì)話中執(zhí)行"pkttyagent --process PID"
  • 在第一個(gè)ssh會(huì)話中執(zhí)行"pkexec visudo"然后再第二個(gè)ssh會(huì)話中輸入密碼。
  • 在第一個(gè)會(huì)話中修改錯(cuò)誤后保存。
  • 重啟nginx或apache,讓用戶重新獲得權(quán)限。

    sudo service apache2 restart

    接下來(lái)是安裝samba網(wǎng)絡(luò)共享環(huán)境
    將我們的移動(dòng)硬盤連接到樹莓派,并給我們放照片的文件設(shè)置共享

  • 硬盤掛載
    安裝NTFS-3G,用來(lái)掛載我們NTFS文件格式的移動(dòng)硬盤
  • sudo apt-get install ntfs-3g -y

    # 新建掛載點(diǎn) sudo mkdir /mnt/usbdisk1 # 修改開機(jī)自支掛載硬盤 # 查找硬盤UUID sudo blkid

    我的UUID如下圖

    修改配置文件

    sudo nano /etc/fstab # 增加后面一行 UUID=FC02C14402C1051C /mnt/usbdisk1 ntfs defaults 0 2

    如下圖

    安裝 samba

    sudo apt-get install samba -y

    到下面的時(shí)候可以直接點(diǎn)No

    增加共享用戶

    sudo useradd gunnar pdbedit -a gunnar


    /*************************************
    刪除一個(gè)共享用戶

    pdbedit -x user

    ***************************************/
    配置Samba

    sudo nano /etc/samba/smb.conf

    可以直接復(fù)制下面的文本即可,因?yàn)槊總€(gè)用戶都有一個(gè)配置文件,下面global后的第一行

    [global]config file = /etc/samba/smb.conf.%Uworkgroup = WORKGROUPlog file = /var/log/samba/log.%mmax log size = 1000logging = filepanic action = /usr/share/samba/panic-action %dserver role = standalone serverobey pam restrictions = yesunix password sync = yespasswd program = /usr/bin/passwd %upasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .pam password change = yesusershare allow guests = nosecurity = userpassdb backend = tdbsambrowseable = no[homes]comment = Home Directoriesbrowseable = noread only = yescreate mask = 0700 directory mask = 0700 valid users = %S [printers]comment = All Printersbrowseable = nopath = /var/spool/sambaprintable = yesguest ok = noread only = yescreate mask = 0700[print$]comment = Printer Driverspath = /var/lib/samba/printersbrowseable = yesread only = yesguest ok = no

    配置個(gè)人文件

    sudo nano /etc/samba/smb.conf.gunnar

    可以直接復(fù)制下面的文本做一點(diǎn)適當(dāng)?shù)男薷募纯?/p> [global]workgroup = WORKGROUP config file = /etc/samba/smb.conf.%Ulog file = /var/log/samba/log.%mmax log size = 1000logging = filepanic action = /usr/share/samba/panic-action %dserver role = standalone serverobey pam restrictions = yesunix password sync = yespasswd program = /usr/bin/passwd %upasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .pam password change = yesmap to guest = bad userusershare allow guests = yessecurity = userpassdb backend = tdbsambrowseable = no[homes]comment = Home Directoriesbrowseable = noread only = yescreate mask = 0700directory mask = 0700valid users = %S[printers]comment = All Printersbrowseable = nopath = /var/spool/sambaprintable = yesguest ok = noread only = yescreate mask = 0700 [print$]comment = Printer Driverspath = /var/lib/samba/printersbrowseable = yesread only = yesguest ok = no[Album]comment = My Picture Filespath = /mnt/usbdisk1/album #這里的路徑最好不要改動(dòng),后面python需要從這里找所有文件夾browseable = yesavailable = yesvalid users = gunnarwrite list = gunnarpublic = nocreate mask = 750directory mask = 750

    下面兩條命令都可以重啟samba服戶

    sudo /etc/init.d/samba restart sudo service smbd restart

    如果一切正常,在Windos命令行下輸入樹莓派的IP地址,就可以看到我們的共享文件了


    如果配置有問題,請(qǐng)自行百度,下面幾條測(cè)試命令供參考
    /**********************************************************************
    測(cè)試samba配置文件

    sudo testparm -s /etc/samba/smb.conf

    Test share folder in Linux

    sudo apt-get install smbclient -y smbclient -L //localhost/mnt/data -U root # 列出所有共享 smbclient -L localhost -U user%password

    **********************************************************************/
    到目錄為止,我們有了共享文件夾,然后所我們的照片全部放到這個(gè)文件夾下
    /mnt/usbdisk1/album 這個(gè)文件夾下最好放文件夾,不要放照片,照片放在這個(gè)文件夾的文件夾下。
    另外,這個(gè)文件夾下如果有一個(gè)文件夾叫photo,那么,只有PHP相冊(cè)管理的登錄用戶的id=1才能查看,其他任何用戶都不能看到,也算是一種隱藏吧。但要在文件共享里設(shè)置為不共享就更完美,請(qǐng)自行研究。

    接下來(lái)是搭建PYTHON所需要的第三方庫(kù)
    pymysql, exifread

    sudo pip3 install pymysql sudo pip3 install exifread

    等安裝安成,將我的源代碼
    鏈接: https://pan.baidu.com/s/111LQFZ0wNcifNFoBlUD5TA 提取碼: dwme
    解壓后放到
    /var/www/html/下,再執(zhí)行:

    sudo chmod -R 777 /var/www

    如果沒有操作失誤,恭喜你成功了!開始檢驗(yàn)吧!

    如果需要外網(wǎng)訪問,注冊(cè)花生殼再做適當(dāng)處理就好了,請(qǐng)自行百度。

    如有什么問題,可以與我討論!pg2222@163.com

    G. Peng
    20200301

    總結(jié)

    以上是生活随笔為你收集整理的在树莓派上搭建PHP家庭相册管理程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。