您好,登錄后才能下訂單哦!
樹莓派3怎么安裝archlinux配置web與samba還有aria2,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
英文文檔比較豐富:https://wiki.archlinux.org/index.php/Apache_HTTP_Server
pacman -Sy php php-apache php-gd
【上面命令會自動安裝Apache、PHP】
先啟動一下Apache看報什么錯誤
[root@alarm alarm]# apachectl AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::ba27:ebff:fe34:38d5. Set the 'ServerName' directive globally to suppress this message
配置apache:
vi /etc/httpd/conf/httpd.conf
查找ServerName,會看到#ServerName www.example.com:80。把前面的注釋#去掉,然后改成你自己的主機名,如果是本機可以改成:
SeverName localhost:80
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
在 /etc/httpd/conf/httpd.conf中找到下面這行,并注釋掉
:
#LoadModule mpm_event_module modules/mod_mpm_event.so
找到下面這行,把前面的#去掉。
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
To enable PHP, add these lines to /etc/httpd/conf/httpd.conf
:
在 LoadModule
列表末尾加上下面兩句(我的是在185行后面,不同版本的配置文件不同,自己看):
LoadModule php7_module modules/libphp7.so AddHandler php7-script .php
在 Include
列表末尾加上下面這句:
Include conf/extra/php7_module.conf
sytemctl重啟 httpd.service
服務.
sytemctl httpd.service restart
測試PHP的配置: 在你的Apache DocumentRoot
目錄 (譬如 /srv/http/
or ~/public_html
) 中創建test.php
文件,內容如下:
<?php phpinfo(); ?>
可以通過如下命令直接創建
echo "<?php phpinfo(); ?>" /srv/http/test.php
注意目錄的文件權限屬性
sudo chmod +x -R /srv/http/
瀏覽器中輸入:
http://localhost/test.php
具體配置見:https://wiki.archlinux.org/index.php/MySQL
pacman -Sy mariadb
安裝完mariadb后,先別急著啟動mariadb.service服務,先運行如下命令:
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
現在可以啟動mariadb.service服務了。
systemctl start mysqld
然后需要將MySQL設置開機啟動:
systemctl enable mysqld
接下來給mariadb進行安全設置
mysql_secure_installation
先回車,然后一路y下去,期間兩次需要輸入root的密碼
$ mysql -u root -p
MariaDB> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; MariaDB> GRANT ALL PRIVILEGES ON mydb.* TO 'monty'@'localhost'; MariaDB> FLUSH PRIVILEGES; MariaDB> quit
GRANT ALL PRIVILEGES ON *.* TO 'bysu'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION; GRANT PROXY ON ''@'%' TO 'bysu'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
顯示授權信息,我是按照root的來授權的。
SHOW GRANTS FOR 'yangfan'@'localhost';
在 /etc/php/php.ini
文件中取消其注釋(刪掉行首的;號即可):
extension=pdo_mysql.so extension=mysqli.so
注意: mysql.so
在 PHP 7.0中已經被移除了.
vi /srv/html/conn.php #新建一個conn.php文件
把下面的內容輸入conn.php文件中。
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } else{ echo 'successful'; } ?>
curl http://192.168.31.146/conn.php #其中192.168.31.146為你本機的ip,請自行更改
不出意外的話,那么你會看到頁面輸入successful
如果需要通過上面這種方式(終端curl命令)查看php的版本號
更改上面的conn.php的內容為
<? phpinfo(); ?> 或者使用phpversion()函數 <? echo phpversion(); ?>
其他配置參考官方文檔。下面從官方文檔摘選一部分。
MariaDB configuration options are read from the following files in the given order (according to mysqld --help --verbose
output):
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
Depending on the scope of the changes you want to make (system-wide, user-only...), use the corresponding file. See this entry of the KnowledgeBase for more information.
Warning: This is not considered as best practice and may cause security issues. Consider using Secure Shell, VNC or VPN, if you want to maintain the MySQL-server outside and/or inside your LAN.
If you want to access your MySQL server from other LAN hosts, you have to edit the following lines in /etc/mysql/my.cnf
:
[mysqld] ... #skip-networking bind-address = <some ip-address> ...
Grant any MySQL user remote access (example for root):
$ mysql -u root -p
Check current users with remote access privileged:
SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
Now grant remote access for your user (here root)::
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'my_optional_remote_password' WITH GRANT OPTION;
You can change the '%' wildcard to a specific host if you like. The password can be different from user's main password.
The MySQL server is accessible from the network by default. If MySQL is only needed for the localhost, you can improve security by not listening on TCP port 3306. To refuse remote connections, uncomment the following line in /etc/mysql/my.cnf
:
skip-networking
You will still be able to log in from the localhost.
安裝samba
sudo pacman -S samba
查看samba的狀態
[bysu@centos-rpi3 ~]$ sudo systemctl status samba
samba服務設為開機啟動
systemctl enable smb systemctl start smb #啟動samba服務 systemctl restart smb #重啟samba服務 systemctl stop smb #停止samba服務
使用testparm測試samba配置是否正確
testparm
在Linux上測試
smbclient -L localhost #root賬戶不用密碼
創建samba用戶,可以使用Linux原本的用戶
smbpasswd -a bysu
創建共享目錄
[root@base samba]# mkdir -p /smb/{guest,bysu} [root@base samba]# chown nobody:nobody /media/samba/guest/ [root@base samba]# chown bysu:bysu /media/samba/bysu/
注意設置屬性,不然訪問不了。
配置samba的配置文件
sudo vi /etc/samba/smb.conf
Samba 的配置文件 /etc/samba/smb.conf 分為兩大部分,一部分是 [global] ,即全局配置,另一部分是 [home] 、[printer] 、[自定義共享名] ,這些都是共享的部分,共享部分的設置優先級高于全局配置,另外,Samba 默認開啟本地用戶家目錄 [home] 和打印機 [printer] 的共享,如果不需要你也可以關閉這兩個共享,然后在末行自己重新創建一個共享,下面是詳細的配置,你可以自定義一個共享,然后自己選擇需要哪些配置:
[pzk] # 自定義共享名 comment = Home Directories # 描述符,是給系統管理員看的 path = /tmp # 共享的路徑 public = yes # 是否公開,也就是是否能在網上鄰居看到該共享 browseable = yes # 共享的目錄是否讓所有人可見 writable = yes # 是否可寫 guest ok = no # 是否拒絕匿名訪問,僅當安全級別為 share 時才生效 workgroup = WORKGROUP # 工作組,要設置成跟 Windows 的工作組一致 server string = Samba Server Version %v # 其他 Linux 主機查看共享時的提示符 netbios name = MYSERVER # 用于在 Windows 網上鄰居上顯示的主機名 hosts allow = 127. 192.168.12. 192.168.13. EXCEPT 192.168.13.13 # 指定允許訪問 samba 服務器的主機 security = share # 定義安全級別 log file = /var/log/samba/log.%m # 定義日志文件,每個訪問的主機會產生獨立的日志文件,%m 是客戶端主機名 max log size = 50 # 定義單個日志的最大容量(KB) passdb backend = tdbsam # Samba 用戶的存儲方式,smbpasswd 表示明文存儲,tdbsam 表示密文存儲 deadtime = 10 # 客戶端在10分鐘內沒有打開任何 Samba 資源,服務器將自動關閉會話,在大量的并發訪問環境中,這樣的設置可以提高服務器性能 display charset = UTF8 # 設置顯示的字符集 max connections = 0 # 設置最大連接數,0表示無限制,如果超過最大連接數則拒絕連接 guest account = nobody # 設置匿名賬戶為nobody load printers = yes # 是否在啟動 Samba 時就共享打印機 cups options = raw # 設置打印機使用的方式 valid users = user1 user2 user3 # 指定哪些用戶可以訪問,如果不指定則所有用戶都可訪問 invalid users = user1 user2 # 指定哪些用戶不可以訪問 create mask = 0775 # 客戶端上傳文件的默認權限 directory mask = 0775 # 客戶端創建目錄的默認權限 write list = user1 user2 user3 # 設置可對文件進行寫操作的用戶 admin users = user1 # 設置共享目錄的管理員,具有完全權限
安全級別: share :表示匿名用戶,不需要 samba 賬戶就可登陸 samba 服務器 user :系統賬戶要先添加進 samba 庫然后變成 samba 用戶,使用 samba 用戶來登陸,簡單來講就是需要使用用戶密碼登錄 server :由另外一臺 samba 服務器來對用戶進行身份驗證 domain :把 samba 服務器加入到 NT 域,由 NT 的域控制器來進行身份驗證 ADS :(Active Directory Service,活動目錄服務),是 samba3.0 中新增的身份驗證方式,采用 ADS 驗證方式,samba 服務器集成到活動目錄中
sudo pacman -S aria2
創建aria2.conf和aria2.session
sudo vi /etc/aria2.conf sudo vi /etc/aria2.session
編輯文件aria2.con,寫入如下內容
# dir=/data/download #下載文件保存目錄,建議掛載移動硬盤,SD卡經不住這么玩兒 #因為我們是以 pi 用戶執行的aria2c 進程,所以這里此目錄的讀寫權限 # sudo chown -R pi:pi /data/download #打開rpc的目的是為了給web管理端用 #configuration file for aria2c enable-rpc=true rpc-allow-origin-all=true rpc-listen-all=true #rpc-listen-port=6800 file-allocation=none disable-ipv6=true disk-cache=32M plit=3 max-concurrent-downloads=3 max-connection-per-server=3 max-file-not-found=3 ## 最大重試次數,0代表可以無限次重試 max-tries=5 retry-wait=3 continue=true check-integrity=true log-level=error log=/var/log/aria2.log input-file=/etc/aria2/aria2.session save-session=/etc/aria2/aria2.session dir=/media/pi/bysu
創建aria2.service文件(開機啟動文件)
sudo vi /usr/lib/systemd/system/aria2.service #加入如下內容 [Unit] Description=Aria2 Service After=network.target [Service] ExecStart=/usr/bin/aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all --save-session /etc/aria2/aria2.session --input-file /etc/aria2/aria2.session --conf-path=/etc/aria2/aria2.conf #ExecStart=/usr/bin/aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all --save-session %h/.config/aria2/session.lock --input-file %h/.config/aria2/session.lock --conf-path=%h/.config/aria2/aria2.conf [Install] WantedBy=default.target
啟動aria2服務
sudo systemctl start aria2 #設為開機啟動 sudo sytemctl enable aria2
終端輸入:
aria2c --enable-rpc --rpc-listen-all #啟用監聽RPC
安裝aria2的頁面端webui
cd /srv/html git clone https://github.com/ziahamza/webui-aria2.git
用瀏覽器訪問 http://pi的IP地址或主機名 即可看到webui的界面,在此界面添加下載任務測試即可
在電腦上的chrome瀏覽器上安裝『百度云導出到aria2』插件,以方便在電腦上直接將百度云盤上的文件添加至aria2,插件下載地址為:
https://github.com/acgotaku/BaiduExporter
初次安裝完成后需要配置aria2 PRC地址,一般來說是
http://192.168.31.42/webui-aria2/index.html
完成后使用導出按鈕來測試效果:
添加定時下載的腳本
cd /etc/aria2 wget https://github.com/bostoneboy/raspberry_pi_stuff/raw/master/aria2/aria2_auto.py crontab -e * * * * /usr/bin/python2 /etc/aria2/aria2_auto.py
此腳本的作用是每天晚上6時暫停所有正在下載的任務,每天凌晨3時開始所有的下載任務,即上班時候和凌晨才會開啟脫機下載功能,腳本里面的時候可以根據需要自己來修改。
(該節點內容參考《開源硬件創客.15個酷應用玩轉樹莓派》和朝聞道)
因為用到python腳本,所以要配置好相關環境(前提已經安裝好python,如果需要可以參考我前面的教程)。
安裝pip。
sudo pacman -Syyu #更新系統 sudo pacman -S python-pip #安裝python的pip包管理工具 sudo pip install rpi.gpio #安裝python的GPIO庫 sudo pip install requests #安裝python的Requests庫
下載百度云python客戶端
sudo git clone https://github.com/lyhonk/bypy.git #我通過這種方式授權不成功 或者可以通過pip來安裝bypy sudo pip install bypy #通過這種方式安裝,我的授權成功了
下載完成之后,進入bypy目錄
cd bypy
執行
sudo python bypy.py info
如果報如下錯誤,需要更改系統的編碼
[bysu@alarm bypy]$ sudo python bypy.py -m info !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING: Can't detect the system encoding, assume it's 'UTF-8'. Files with non-ASCII names may not be handled correctly. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[bysu@alarm bypy]$ sudo vi /etc/locale.conf LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:en_GB:en" [bysu@alarm bypy]$ sudo locale-gen
更改系統編碼之后,繼續運行
[bysu@alarm bypy]$ sudo python bypy.py info Please visit: https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE....lgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk And authorize this app Paste the Authorization Code here within 10 minutes. Press [Enter] when you are done
如果修改系統的編碼還是不行的話,可以試著按照下面來設置python的編碼,先看一下python的編碼,可以看到使用的編碼卻是是跟上述提示的編碼一直,都是ANSI_X3.4-1968。
Python 3.5.3 (default, Jan 19 2017, 14:11:04) [GCC 6.3.0 20170118] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import locale >>> locale.getpreferredencoding() 'ANSI_X3.4-1968' >>> import sys >>> sys.getfilesystemencoding() 'ascii' >>>
可以通過export來設置,不過聽說只能當前環境有效,我就是通過這種方式臨時處理了一下
export PYTHONIOENCODING=UTF-8
網上針對python2.7的持久解決方案,python3.3+的暫時沒找到解決方案,我能想到的方案就是把系統的默認python版本暫時更改為python2.7.
在python2.7的目錄新建文件 sudo vi /usr/lib/python2.7/site-packages/sitecustomize.py 內容為: import sys reload(sys) sys.setdefaultencoding('utf8')
在瀏覽器中登錄你的百度云盤,然后新建一個標簽,把上面的
https://openapi.baidu.com...basic+netdisk行的內容(鏈接),在新建的瀏覽器標簽的地址欄訪問,得到一串授權碼,并于剛剛的linux終端中輸入,回車...可以看到successfully和云盤的總容量和使用空間的大小。
Authorizing,please be patient,it may take upto None seconds... Authorizing/refreshing with the OpenShift server... OpenShift server failed,authorizing/refreshing with the Heroku server... Successfully authorized Quota:3.011TB Used:2.928TB
如果提示相關授權的問題,可以運行bypy.py -c,刪除令牌文件,然后重新授權一次。如果還不行,去百度應用授權里刪除bypy再重新授權。
上傳到百度云盤后,可以到云盤一下目錄查看
/我的應用數據/bypy
到了這一步,差不多。最近熬夜甚多,為免猝死,暫且放下吧!
關于樹莓派3怎么安裝archlinux配置web與samba還有aria2問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。