前期需要軟件
- 遠程SSH控制台軟件(本教程使用 Remote Terminal 此為win10商店軟件)[點我下載(此軟件為Xshell)]
- 支持Sftp的FTP軟件(本教程使用 FileZilla)[點我下載]
- Centos或Ubuntu主機一台 (教程使用 centos7.7)
注意事項
- 推薦Ubuntu系統(由於個人偏向,本教程使用Centos)
- 未標注哪個系統指令則兩者都可適用
- 若標題注釋了哪個系統那只能適用那個系統或另一個系統不需要輸此指令
環境部署
系統更新
-
首先你要確保你的系統是最新的
yum update # (Centos)
//Ubuntu需要兩條指令來升級
apt-get update -y # (Ubuntu)
apt-get upgrade -y # (Ubuntu)
寶塔安裝
-
使用指令安裝
//Centos指令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
//Ubuntu指令
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh -
安裝所需環境
- 首次進入會讓你安裝基礎程序【這里選LAMP個人喜歡這個,並且不需要自己添加偽靜態】
- 這里選擇版本為:
- Apache 2.4
- MySQL 5.7
- Pure-Ftpd 1.0.49
- PHP 7.3(並安裝擴展名: fileinfo)
- phpMyAdmin 4.7
- 這里最好選編譯安裝,極速安裝雖說快,但他不穩定,很不推薦.
- 下載速度日常很慢(根據服務器性能,我這里就是晚上弄然后睡覺去了)
- 刪除PHP中的禁用函數(現在的PHP和以前相比已經不需要禁用函數了,反而導致程序錯誤)
- 按下鍵盤Ctrl+F開啟搜索功能搜索
disable_functions
,並刪除后面的禁用函數,隨后重啟PHP。
- 新建網站+數據庫,並將數據庫賬戶密碼記錄,在下文會使用到
- 在SSH部署時需手動
cd
到網站目錄並保證目錄為空。(都面板化了,手動刪除4個文件應該不費事吧)
安裝Nextcloud
- 克隆Nextcloud文件到本地
-
對於網盤系統有seafile、可道雲,國外NextCloud,在自我衡量之后發現NextCloud更適合做網盤系統
-
[前往Nextcloud下載頁]下載NextCloud安裝包,並上傳至服務器或
cd
到你要部署的文件夾自行下方命令 -
注意! 鏈接非統一性,在官方隨時更新版本鏈接隨時變更,鏈接最好前往官方獲取鏈接
wget -c https://download.nextcloud.com/server/releases/nextcloud-18.0.1.zip
- 解壓壓縮包
nextcloud-18.0.1.zip
- 移動
nextcloud
內安裝文件,遷移至網站目錄
-
刪除無用文件的
nextcloud``nextcloud-18.0.1.zip
,不刪除容易出錯rm -rf nextcloud
rm -rf nextcloud-18.0.1.zip -
變更權限組合權限,權限選擇「755」+用戶組選擇「www」,最后確定即可
- 直接打開自己綁定的域名,將上面用記下來的數據庫用戶名和密碼寫入相應的位置
- 點擊安裝后就安裝好啦
維護模式指令
sudo -u www php occ maintenance:mode --on
sudo -u www php occ maintenance:mode --off
解決后續問題
- 在「設置」中「管理欄」的選項中有「安全與設置警告」,實際上沒多大事,如果有強迫症,下方可以解決
PHP 內存限制低於建議值 512MB
寶塔php點擊配置修改,編輯
腳本內存限制
,給512M即可
PHP 的 OPcache 模塊未載入。推薦開啟獲得更好的性能。
按照提示在php配置文件中搜索Zend ZendGuard Loader,添加:
zend_extension=opcache.so
PHP 的組件 OPcache 沒有正確配置。 為了提供更好的性能,我們建議在 php.ini中使用下列設置:
按照提示在php配置文件中搜索opcache.enable=1,對應修改成:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
該實例缺失了一些推薦的 PHP 模塊。為提高性能和兼容性,我們強烈建議安裝它們。imagick
寶塔php點擊安裝
imagemagick
。
內存緩存未配置,為了提升使用體驗,請盡量配置內存緩存。
寶塔php點擊安裝
redis
,編輯/config
下的config.php
在);
前加入以下代碼:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
### 數據庫中的一些列由於進行長整型轉換而缺失。
> cd到nextcloud目錄,執行
```sh
sudo -u www php occ db:convert-filecache-bigint
數據庫丟失了一些索引。
cd到nextcloud目錄,執行
sudo -u www php occ db:add-missing-indices
美化URL,去除入口文件index.php
使用config.php+OCC命令生成
.htaccess
。編輯/config/config.php
添加規則:
'htaccess.RewriteBase' => '/',
然后使用occ命令生成.htaccess文件:
sudo -u www php occ maintenance:update:htaccess
通過 HTTP 訪問網站不安全。強烈建議您將服務器設置成要求使用HTTPS 協議
去證書網站申請證書即可。
HTTP的請求頭 “Strict-Transport-Security” 未設置為至少 “15552000” 秒。為了提高安全性,建議參照security tips 中的說明啟用HSTS。
在站點配置文件里面添加如下代碼,然后重啟Apache即可。
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
安裝后無法掛載外部共享目錄
-
安裝PHP smbclient模塊
-
在php.ini里面啟用smb模塊
vim /usr/local/php/etc/php.ini
//文件最后添加如下內容:
[smb]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/smbclient.so
性能優化
定時任務配置為 ‘Cron’
sudo -u www crontab -e
# 添加
*/5 * * * * php -f /站點的絕對路徑/cron.php
# 這是我添加的,你們可以進行參考
*/5 * * * * php -f /www/wwwroot/cloud.vlssu.com/cron.php
lnmp restart