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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

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

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

登錄窗口
文件夾方式看圖

日歷方式看圖

頁面設置

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

其它的功能,待同學們安裝好的自己去發現了。

接下來,詳細介紹搭建過程,大致分為,在樹莓派上先搭建PHP環境,python3運行環境,samba共享文件夾環境,ssh遠程訪問樹莓派功能,再copy我的相冊管理程序源代碼放到自己的樹莓派上加簡單的設置,即可使用 了。

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

我自己的移動硬盤

軟件需求
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 設備選擇 SD卡 設備

安裝完成后,將TF卡取出裝到樹莓派上,準備開啟樹莓派之旅。如果安裝成功,通電樹莓派,等待一會就有畫面出來,新版本的系統要求先進行設置,如下圖

點Next進行國家設置,我的設置如下

下一步設置系統的登錄密碼

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

下一步是設置WiFi和密碼
設置好后,系統會檢測更新,發果沒有更新源,很有可能更新不上,先不管能不能更新,稍后更新源列表后再更新。

最后一點,設置好后點Restart

再等一會就可進入系統了。進入系統后,建議將IP設置為靜態,再設置SSH

有線網絡選eth0,無線網絡選wlan0

然后跟據自己的實際情況填寫靜態IP地址

再進行SSH設置,菜單->Preferences->Raspberry Pi Configuration

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

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

輸入用戶名:pi 和剛才設置的密碼后,進行樹莓派的后臺

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

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,退出之前點Y確認保存。
源列表修改完后,需要更新源,升級,這個過程需要一定時間,可以去煮開水喝口茶了。
命令如下 :

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

更新過程中,如下圖片

升級過程中

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

sudo apt autoremove sudo reboot

接下來是軟件安裝,搭建運行環境

  • 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


    配置的時候選擇apache2再點OK

    這里點Yes

    輸入數據庫的密碼

    需要執行下面的命令才能在網頁打開

    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了

    但這時,我們輸入用戶名和密碼的時候發現出錯了。 #1698 - Access denied for user ‘root’@‘localhost’


    我們還需要做以下配置

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

    sudo mysql -u root -p #輸入密碼后,連續輸入以下命令 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,已經可以正常登錄

    下面是給數據庫增加遠程訪問的,我們的相冊管理程序不需要使用。
    /*********************************************************

    #增加新用戶并設置其它主機可訪問 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 #注釋掉這一行就可以遠程登錄了 #再重新啟動mysql sudo service mysql restart

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

    接下來,是配置sudo,讓php程序可能以管理員的身份調用python腳本

    # 當我們在PHP中調用pyhon時如果出現錯誤: sudo: no tty present and no askpass program specified # 還需要修改sudo配置文件,直接鍵如visudo命令編輯配置文件:sudo visudo # 將Defaults requiretty修改為 #Defaults requiretty, 表示不需要控制終端。 # 否則會出現sudo: sorry, you must have a tty to run sudo# 增加行 Defaults visiblepw # 否則會出現 sudo: no tty present and no askpass program specified# 賦予www-data用戶執行svn權限 # 如,增加行: www-data ALL=(ALL) NOPASSWD: ALL # 注:NOPASSWD可以使在命令執行時不需要交互輸入www 用戶的密碼# www用戶為nginx或apache的運行用戶


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

    如果這里把sudo文件的語法搞錯了就麻煩了,很多權限的命令都不能執行,不幸的是,我就搞錯了,不過下面是解決方法,同學們如果沒有出現這樣的問題,以下5步可以SKIP

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

    sudo service apache2 restart

    接下來是安裝samba網絡共享環境
    將我們的移動硬盤連接到樹莓派,并給我們放照片的文件設置共享

  • 硬盤掛載
    安裝NTFS-3G,用來掛載我們NTFS文件格式的移動硬盤
  • sudo apt-get install ntfs-3g -y

    # 新建掛載點 sudo mkdir /mnt/usbdisk1 # 修改開機自支掛載硬盤 # 查找硬盤UUID sudo blkid

    我的UUID如下圖

    修改配置文件

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

    如下圖

    安裝 samba

    sudo apt-get install samba -y

    到下面的時候可以直接點No

    增加共享用戶

    sudo useradd gunnar pdbedit -a gunnar


    /*************************************
    刪除一個共享用戶

    pdbedit -x user

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

    sudo nano /etc/samba/smb.conf

    可以直接復制下面的文本即可,因為每個用戶都有一個配置文件,下面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

    配置個人文件

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

    可以直接復制下面的文本做一點適當的修改即可

    [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 #這里的路徑最好不要改動,后面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地址,就可以看到我們的共享文件了


    如果配置有問題,請自行百度,下面幾條測試命令供參考
    /**********************************************************************
    測試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

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

    接下來是搭建PYTHON所需要的第三方庫
    pymysql, exifread

    sudo pip3 install pymysql sudo pip3 install exifread

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

    sudo chmod -R 777 /var/www

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

    如果需要外網訪問,注冊花生殼再做適當處理就好了,請自行百度。

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

    G. Peng
    20200301

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。