如何建立一個免費電影網站?免費搭建電影網站蘋果cms搭建教學課程
蘋果cms搭建教學 免費搭建電影網站 。如何在Linux環境下快速搭建電影網站,在網路上查詢了一番後,發現蘋果CMS開源且功能符合基本電影網站需求。下面記錄一下蘋果CMS搭建過程。首先伺服器上搭建好LNMP環境,也可以使用各種傻瓜面板來安裝。
- Windows 平台: IIS/Apache/Nginx/等+ PHP(5.5 +) + MySQL(5.5 +)
- Linux/Unix 平台: Apache/Nginx/等+ PHP (5.5 +) + MySQL(5.5 +) (PHP必須在非安全模式下運作)
- 注意:PHP版本不要使用PHP8,PHP8下方會有很多報錯,建議安裝PHP7.2
什麼是蘋果CMS
蘋果CMS程式是一套採用PHP+MYSQL環境下運作的完善且強大的快速建置系統。經過近多年的開發經驗和技術積累,蘋果CMS程式已逐步走向成熟,在易用性和功能上已成為同行中的佼佼者。程式體積小、運作速度快、經過最佳化程式碼、有效率快取處理後,只要普通的虛擬主機就可以完美搭建起來,建站成本非常低。仿MVC模板分離,內建標籤,自訂函數標籤接口,強大的自訂採集功能,只要你會HTML就可以輕鬆做出個人化的網站。程序易用性和功能上一直以來都積極採納廣大站長提出的各種好的建議,迅速響應各種緊急問題,我們的服務理念貫穿其中,保證每一位站長每一個環節都可以從容應對。
蘋果cms搭建教程 Github原始碼:https://github.com/magicblack
蘋果CMS:http://www.maccms.la
蘋果cms搭建教學安裝蘋果CMS
透過SSH登入伺服器後,使用cd 指令進入web存放目錄,一般位置是/home/www
cd /home/www
進入到www目錄後,開始複製拉取蘋果CMS網站原始碼。
git clone https://github.com/magicblack/maccms10.git
chown nginx:nginx -R /home/uzbox/maccms10
接下來開始進行安裝操作,在Nginx中修改設定檔中的server模組,將網站存放目錄修改成/home/uzbox/maccms10 之後修改location / 根目錄內容,具體修改給容如下:
#偽靜態頁location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin. php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } }
server.conf 的完整程式碼:
#網域連接埠301重定向https #uzbox.tk server { listen 80; listen [::]:80; server_name uzbox.tk www.uzbox.tk; return 301 https://uzbox.tk$request_uri.tk; return 301 https://uzbox.tk$request_uri; }tk; return 301 https://uzbox.tk$request_uri; } 1115T網站配置核心塊{ listen 443 ssl http2; listen [::]:443 http2; server_name uzbox.tk; index index.php index.html index.htm; root /home/vod; include /etc/nginx/default.d/*.conf ; # 從/etc/nginx/default.d 載入預設伺服器區塊的設定檔。 # Config for 0-RTT in TLSv1.3 ssl_certificate /data/uzbox.tk.crt; ssl_certificate_key /data/uzbox.tk.key; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CC28-CCM-8-SHA256:TLS13-AES-128-CC28-SHA256:EEHCHA20-CDM draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EE+RSA3+32/ !MD5; ssl_early_data on; ssl_stapling_verify on; add_header Strict-Transport-Security "max-age=31536000"; #偽靜態頁location / { if (!-e $request_filename) { 靜態頁location / { if (!-e $request_filename) { index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last ; rewrite ^(.*)$ /index.php?s=$1 last; break; }
Nginx修改完畢後,重啟啟動Nginx服務或reboot重新啟動伺服器後,輸入 nginx -t 驗證一下設定資訊。
下面輸入你Nginx中設定的網站域名,開始安裝蘋果CMS-V10。
點擊藍色按鈕,同意協議並安裝系統。
目錄權限一定要配置正確,否則會提示無法讀取,例如伺服器上安裝的Nginx服務的用戶群組是nginx,然後Web網站存放目錄的用戶群組和用戶,也要改成nginx,目錄的資料夾權限默認755。
PHP的函數擴充這裡,如果有沒有安裝的,需要在伺服器上使用 dnf install 命令安裝。具體安裝方法可以參考:安裝PHP8
點擊立即執行安裝,只需要三步驟設置,蘋果CMS就已經安裝好了。接下來更改admin.php檔案。
目錄結構
- application: 標準tp5 應用目錄,存放程式所有模型、控制器和設定檔。
- application/extra/maccms.php: 後台所有設定參數。
- application/extra/addons.php: 已安裝的第三方應用程式設定。
- application/extra/domain.php: 站群組網域設定。
- application/extra/timming.php: 自訂任務設定。
- application/extra/vodplayer.php: 已安裝播放器設定。
- application/extra/voddowner.php: 已安裝下載器設定。
- application/data/backup: 備份資料目錄,後台備份資料就在這個目錄裡面。
- application/data/config: 背景自訂選單配置。
- application/data/install: 初始安裝目錄,如需重新安裝,把裡面的install.lock刪除即可重播就如安裝步驟。
- application/route.php: 偽靜態路由文件,如果後台寫錯路由導致後台無法訪問,刪除這個文件即可正常。
- application/database.php: MySQL資料庫連線設定檔。
- addons: 用於存放大三方應用外掛目錄,購買的插件可以放在這裡。
- template: 主題模板目錄,用於存放前台模板的目錄。
- static: 用於儲存預設css 和js 等靜態檔案。
安全設定
為了程式更安全,建議將下列資料夾禁止執行PHP程式檔案。
- /application :限制php檔案存取。
- /addons :限制php檔案存取。
- /extend :限制php檔案存取。
- /thinkphp :限制php檔案存取。
- /vendor :限制php檔案存取。
- /upload :限制php檔案存取。
Nginx停用目錄下的php腳本存取:
Nginx下禁止制定目錄運行php腳本,在server設定中增加設定參數,可以透過location條件比對定位後進行權限禁止。
注意:下面的程式碼要放置在PHP解析程式碼Fastcgi的上面才會生效。
#單一目錄禁止location ~* ^/upload/.*\.(php|php5)$ { deny all; } # 多目錄禁止location ~* ^/(upload|vendor|thinkphp|extend|addons|application)/ .*\.(php|php5)$ { deny all; }
到這裡蘋果CMS就安裝完畢了,Web網站的框架已經搭建好了,接下來需要加入各種採集規則與前台模板。
蘋果cms搭建教學安裝模板
蘋果cms 預設是沒有前端模板的,需要你自己製作或使用第三方模板,有了模板才能算是一個完成的網站,安裝模板也非常的簡單。
首先下載一個蘋果CMS的模板:海螺模板V4.0裡面有一些小問題,都已經修復,可以正常使用了。很多js問題都是hlexpand.js,hlhtml.js,hlstem.js這三個檔案。 JS檔案被加密了,網路上找了一些替換的。海螺模板必須要安裝PHP的sg11擴充才可以使用,由於模板比較老了,現在的sg版本已經出到12了,沒有測試是否支援sg12。
點擊下載:海螺模板v4.0完美修復版+Dplayer播放器無錯誤版本下載
- 上傳模板至template目錄內
- PHP必須安裝sg11擴充
- 後台快捷選單配置新增:
海螺主題設定,/admin.php/admin/conch/theme - 網站模板和手機模板都是【conch】模板目錄【moban】,清理快取。
- 注意微信觀看功能要在conch/js/jquery.stem.js 這個資料夾修改對應的內容第301行
- 投影片推薦9 大圖模式需要上傳海報圖,建議尺寸1680px*580px 小圖模式需設定3個推薦才顯示
- 熱播推薦1 建議建議18個最佳(適配換一換功能)。
將模板文件解壓縮後,上傳到 template 目錄下,上傳時候請將範本檔案目錄改名,然後更改範本檔案目錄使用者與使用者群組,預設上傳的擁有者是root 使用者。
上傳之後,更改文件目錄的存取權限。
chown nginx:nginx -R /home/uzbox/maccms10/template/movie
更改好模板檔案擁有者後,訪問蘋果CMS後台,系統> 網站參數配置>基本設定的頁面找到網站模板選項。下拉式選單,選擇movie,測試的網站模板是自適應手機的,這裡選擇單域,之後點選儲存。模板加完畢!
有一些模板需要安裝PHP的SG11擴展,SG11是SourceGuardian的縮寫,11代表版本,SourceGuardian是一個可以對PHP進行加密的工具,因此用戶可以快速安全地對PHP程式進行編碼和編譯。 SG11擴充需要手動安裝,先下載SG11的擴充包。
點擊下載SG11擴充包:SG11 WIN LINUX.ZIP
在伺服器上使用uname -a 指令查看系統版本,64位元會顯示x86_64。
然後在下載的擴充包中找到對應的擴充功能。例如:伺服器上安裝的是php7.2版本,就找Linux x64 目錄下的ixed.7.2.lin 檔。
將ixed.7.2.lin 檔案上傳到伺服器上的/usr/lib64/php 目錄中。
上傳完畢後,儲存一下ixed.7.2.lin 的位置,下面要用到。 /usr/lib64/php/ixed.7.2.lin
編輯/etc/php.ini 文件,在文件的最下面一行,加入extension=/usr/lib64/php/ixed.7.2.lin
extension=/usr/lib64/php/ixed.7.2.lin
php.ini編輯完成後,儲存上傳,然後重新啟動PHP服務,或reboot重新啟動伺服器。
驗證SG11是否安裝成功:
php --ri sourceguardian
蘋果cms的模板檔案已經安裝完畢了,進行一些簡單的設定後,前台就可以訪問Web頁面了。這時候你會發現前台Web頁面上空空如也。接下來是資料的採集輸入。
蘋果cms搭建教學資料採集
蘋果CMS在網路上有很多的資料採集資源網站,設定好採集接口,一鍵採集即可導入數據。
下面是一個採集導入的例子:
首先在網路上搜尋蘋果CMS採集資源站,然後在蘋果cms採集資源站中找到採集介面的URL連結。
天空資源網綜合資源:
https://api.tiankongapi.com/api.php/provide/vod/at/xml/
m3u8資源:
https://m3u8.tiankongapi.com/api.php/provide/vod/at/xml/
在採集資料之前,需要先新增資源站的播放器,如果不新增播放器,採集資料之後沒有播放位址。每個資源站都有自己對應的播放器,播放器不通用!
可以在採集資源站下載解壓縮後,在蘋果cms後台匯入播放器,超級控制台>影片>播放器>匯入:
播放器導之後,在蘋果cms後台再進行採集介面添加,具體步驟如下:
超級控制台>採集>自訂介面>新增:
資源名稱可以自訂填寫,介面位址填寫上面取得的採集介面的URL鏈接,介面類型選擇 xml,介面類型這裡主要看你API介面位址的類型而定,如果你的擷取介面位址是json的,在介面類型這裡要選擇json。資源類型選擇 影片 ,數據操作選擇 新增+更新,過濾地址默認 不過濾。設定完畢後,點選儲存。
在自訂介面頁面,選擇你要採集的資源站,在採集選項中,先點選採集當天。
在分類後面點選綁定,這裡的分類是在基礎>分類管理中建立的。如果你還沒有建立分類,需要按照採集網站的分類來建立。
分類都建立好後,回到自訂介面的分類綁定頁面上,點選分類後面的綁定,然後選擇分類,進行分類綁定。
分類綁定之後,關閉自訂接口,從新開啟採集>自訂接口,進行採集。注意:分類中沒有綁定的分類,不會採集未綁定分類的內容。
等待影片資料擷取完成後,擷取播放清單資料。
如果之前沒有新增資源站的專用播放器,採集資料之後沒有辦法顯示播放清單。需要進行播放器添加,然後再重新採集一遍數據,這樣才可以添加播放清單。
超級控制台>採集>自訂接口,點擊進入你所採集的資源站鏈接,進入資源庫。在電影清單的左下方,點選採全部。
影片的播放清單已經採集入庫了,接下來耐心等待就好了。
播放器
設定蘋果cmsV10自動播放下一集,那麼該如何操作呢?
增加蘋果cmsV10自動播放下一集,增加記憶播放,P2P播放,但是該方法只能播放格式為m3u8的視頻,首先替換一下dplayer播放器代碼,替換路徑為:static/player/dplayer.html
程式碼修改完畢之後,還需要在背景設定播放器,超級控制台>影片>播放器>添加
新增一個新的播放器,編碼不要填寫錯誤,例如增加一個編碼是tkm3u8的播放器。播放器加入完畢後,在播放器代碼中填寫以下代碼。之後清空快取。
數據採集中遇到的問題
錯誤:SQLSTATE[22001]:字串數據,右截斷:1406 第1 行「vod_actor」列的資料太長
錯誤原因:MySQL資料庫中select mode(嚴格模式)插入欄位長度超過設定的長度,
解決方法:設定sql_mode。
mysql -u root -p
在伺服器上登入MySQL,輸入MySQL的密碼後,進入到mysql>命令列。
select @@sql_mode;
sql_mode主要是用來校驗資料和合法性:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
你可以將STRICT_TRANS_TABLES,去掉,或是清空sql_mode中的參數。
SET @@global.sql_mode=''; SET @@sql_mode='';
清空之後使用指令查詢一下
select @@global.sql_mode; select @@sql_mode;
設定完畢後,quit 退出MySQL,上面的方法如果重新啟動MySQL服務的話就會失效,想永久生效,還需要更改MySQL的設定檔。
vi /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
VI 編輯mysql-default-authentication-plugin.cnf 設定文件,在[mysqld] 下方新增:
key_buffer_size=16M max_allowed_packet=8M sql_mode=ANSI
- key_buffer_size:用來指定索引緩衝區的大小
- max_allowed_packet:設定一次訊息傳輸的最大值
- sql_mode:表示SQL 模式的參數,透過這個參數可以設定檢驗SQL 語句的嚴格程度
新增之後,儲存退出VI模式,然後重新啟動MySQL。
systemctl restart mysqld
最後查看一下,sql_mode的模式設定成功,已經變成ANSI寬鬆模式了。
sql_mode 模式:
sql_mode 一共分為三種模式,分別是 ANSI、TRADITIONAL 和 STRICT_TRANS_TABLES。
ANSI模式:寬鬆模式,改變語法和行為,使其更符合標準SQL。對插入資料進行校驗,如果不符合定義類型或長度,對資料類型調整或截斷保存,報warning警告。對於本文開頭中提到的錯誤,可以先把sql_mode設定為ANSI模式,這樣便可以插入數據,而對於除數為0的結果的欄位值,資料庫將會用NULL值取代。資料庫將會用NULL值代替。
TRADITIONAL模式:嚴格模式,當向mysql資料庫插入資料時,進行資料的嚴格校驗,保證錯誤資料不能插入,報error錯誤,而不僅僅是警告。用於事物時,會進行事物的回滾。註:一旦發現錯誤立即放棄INSERT/UPDATE。如果你使用非事務儲存引擎,這種方式不是你想要的,因為出現錯誤前進行的資料更改不會“滾動”,結果是更新“只進行了一部分”。
STRICT_TRANS_TABLES模式:嚴格模式,進行資料的嚴格校驗,錯誤資料不能插入,報error錯誤。如果不能將給定的值插入到交易表中,則放棄該語句。對於非交易表,如果值出現在單行語句或多行語句的第1行,則放棄該語句。
sql_mode 詳解:
ONLY_FULL_GROUP_BY
對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,因為列不在GROUP BY子句中。
NO_AUTO_VALUE_ON_ZERO
該值會影響自增長列的插入。預設設定下,插入0或NULL代表產生下一個自增長值。如果使用者希望插入的值為0,而該列又是自增長的,那麼這個選項就有用了。
STRICT_TRANS_TABLES
如果一個值不能插入到一個事務中,則中斷目前的操作,對非事務表不做限制。
NO_ZERO_IN_DATE
不允許日期和月份為零。
NO_ZERO_DATE
mysql資料庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
ERROR_FOR_DIVISION_BY_ZERO
在insert或update過程中,如果資料被零除,則產生錯誤而非警告。如果未給出該模式,那麼資料被零除時Mysql傳回NULL。
NO_AUTO_CREATE_USER
禁止GRANT創建密碼為空的使用者。
NO_ENGINE_SUBSTITUTION
如果需要的儲存引擎被停用或未編譯,那麼拋出錯誤。不設定此值時,用預設的儲存引擎替代,並拋出一個異常。
PIPES_AS_CONCAT
將”||”視為字串的連接操作符而非或運算符,這和Oracle資料庫是一樣是,也跟字串的拼接函數Concat想類似。
ANSI_QUOTES
不能用雙引號來引用字串,因為它被解釋為識別符。
蘋果cms搭建教學過程中,需要注意的幾點問題
錯誤:致命錯誤: Call to undefined function curl_init()
PHP缺少curl模組,安裝php-curl 擴充
yum install php-curl
錯誤:Fatal error: Uncaught Error: Call to undefined function mb_check_encoding() in
如果提示mb_check_encoding() 錯誤,安裝:
yum install php-mbstring
然後修改php.ini:執行vim /etc/php.ini,加入extension=/usr/lib64/php/modules/mbstring.so ,根據mbstring.so存放的目錄做對應的修改即可。一般是不用更改的。
錯誤:Interface 'JsonSerializable' not found
造成無錯原因是PHP缺少JSON擴充或JSON擴充未開啟
linux下安裝JSON擴充:
yum -y install php-json
錯誤:cms後台驗證碼無效
輸入了無數次正確的驗證碼,都是提示驗證碼錯誤,是PHP的小問題。
修改session路徑(例如/var/lib/php/session)的使用者群組以及權限,然後去到對應session路徑。
cd /var/lib/php chown nginx:nginx ./session chmod -R 777 ./session
錯誤:致命錯誤: Call to undefined function app\common\model\simplexml_load_string()
這個錯誤是因為沒有安裝php-xml,安裝php-xml即可解決問題
dnf install php-xml
除了首頁之外,其它頁面顯示不存在,404找不到頁面。
nginx下除了首頁其他都是404怎麼辦?添加偽靜態規則,一般都可以解決了。如果修改了後台檔案入口admin.php,則改為對應的檔案名稱。例如你的後台管理修改成dianyingzhanhoutai.php,那麼偽靜態頁中的admin.php也需要替換成對應的檔名。
location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin_yingyinjia.php(.*)$ /admin_yyinjia.php? $1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } }
關於sg11的安裝問題,不支援PHP更高版本的加密文件
SG11 是SourceGuardian 11的簡稱,目前 SourceGuardian官方版本已經更新到SourceGuardian 13 而SG11 對PHP加密最高版本是PHP 7.3,所以需要安裝SG11 的web程式時,PHP的版本不能高於7.3 。
注意:海螺模板是使用SourceGuardian 11進行加密的,SourceGuardian 13版本安裝海螺模板會報錯誤。
如果php版本高於7.3,那麼就需要在線上安裝解密文件,先新建一個phpinfo的探針頁面。
https://www.sourceguardian.com/loaders/download.php
php7.2綁定了模組流,只能安裝nginx1.14,無法安裝更高版本怎麼辦
可以先安裝Nginx1.20,再安裝php7.2.如果先安裝php7.2,就只能安裝Nginx1.14