在 CentOS 7 上安裝 Seafile

在 CentOS 7 上安裝 Seafile 的步驟如下:

  1. 更新系統(tǒng)并安裝必要的依賴:
sudo yum update -y
sudo yum install -y python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3
  1. 安裝 MySQL(如果尚未安裝):
sudo yum install -y mariadb mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
  1. 創(chuàng)建 Seafile 數(shù)據(jù)庫(kù):
mysql -u root -p
CREATE DATABASE `seafile-db` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `ccnet-db` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `seahub-db` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON `seafile-db`.* TO `seafile`@`localhost`;
GRANT ALL PRIVILEGES ON `ccnet-db`.* TO `seafile`@`localhost`;
GRANT ALL PRIVILEGES ON `seahub-db`.* TO `seafile`@`localhost`;
  1. 下載并解壓 Seafile:
cd /opt
wget https://download.seadrive.org/seafile-server_7.1.5_x86-64.tar.gz
tar -xzf seafile-server_7.1.5_x86-64.tar.gz
  1. 安裝 Seafile:
cd seafile-server-*
./setup-seafile-mysql.sh

按照提示完成安裝過(guò)程。

  1. 啟動(dòng) Seafile:
./seafile.sh start
./seahub.sh start
  1. 配置防火墻:
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent
sudo firewall-cmd --reload
  1. 設(shè)置開(kāi)機(jī)自啟:

創(chuàng)建文件 /etc/systemd/system/seafile.service

[Unit]
Description=Seafile
After=network.target mysql.service

[Service]
Type=oneshot
ExecStart=/opt/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target

創(chuàng)建文件 /etc/systemd/system/seahub.service

[Unit]
Description=Seahub
After=network.target seafile.service

[Service]
Type=oneshot
ExecStart=/opt/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile-server-latest/seahub.sh stop
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target

啟用服務(wù):

sudo systemctl enable seafile.service
sudo systemctl enable seahub.service

現(xiàn)在,Seafile 應(yīng)該已經(jīng)在您的 CentOS 7 系統(tǒng)上安裝并運(yùn)行了。您可以通過(guò)訪問(wèn) http://your-server-ip:8000 來(lái)訪問(wèn) Seafile Web 界面。

注意:這些步驟可能需要根據(jù)您的具體環(huán)境和 Seafile 的最新版本進(jìn)行調(diào)整。始終建議查閱 Seafile 的官方文檔以獲取最新的安裝說(shuō)明。

報(bào)錯(cuò)

CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'seafile-';
ERROR 1396 (HY000): Operation CREATE USER failed for 'seafile'@'localhost'

這個(gè)錯(cuò)誤通常意味著用戶 'seafile'@'localhost' 已經(jīng)存在。在這種情況下,您可以嘗試以下步驟:

  1. 首先,檢查用戶是否已存在:

    SELECT User, Host FROM mysql.user WHERE User = 'seafile';
    
  2. 如果用戶確實(shí)存在,您有兩個(gè)選擇:

    a. 刪除現(xiàn)有用戶,然后重新創(chuàng)建:

    DROP USER 'seafile'@'localhost';
    CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'seafile-';
    

    b. 或者,如果您只想更改密碼,可以使用:

    ALTER USER 'seafile'@'localhost' IDENTIFIED BY 'seafile-';
    
  3. 如果以上操作仍然失敗,可能是權(quán)限問(wèn)題。確保您使用的是具有創(chuàng)建用戶權(quán)限的賬戶(通常是 root 用戶)。

  4. 如果還是遇到問(wèn)題,可以嘗試刷新權(quán)限后再操作:

    FLUSH PRIVILEGES;
    

    然后重試創(chuàng)建用戶或更改密碼的操作。

  5. 最后,不要忘記為新用戶或修改后的用戶授予必要的權(quán)限:

    GRANT ALL PRIVILEGES ON seafile_db.* TO 'seafile'@'localhost';
    GRANT ALL PRIVILEGES ON ccnet_db.* TO 'seafile'@'localhost';
    GRANT ALL PRIVILEGES ON seahub_db.* TO 'seafile'@'localhost';
    FLUSH PRIVILEGES;
    

請(qǐng)根據(jù)實(shí)際情況選擇適合的操作。如果還遇到問(wèn)題,可能需要檢查 MySQL 的錯(cuò)誤日志以獲取更多信息。

Error: Failed to connect to mysql database ccnet-db: Access denied for user 'seafile'@'localhost' (using password: YES)

這個(gè)錯(cuò)誤表明 MySQL 用戶 'seafile' 沒(méi)有訪問(wèn) 'ccnet-db' 數(shù)據(jù)庫(kù)的權(quán)限。讓我們來(lái)解決這個(gè)問(wèn)題:

  1. 首先,確保 'ccnet-db' 數(shù)據(jù)庫(kù)存在:

    SHOW DATABASES;
    

    如果不存在,創(chuàng)建它:

    CREATE DATABASE `ccnet-db` CHARACTER SET utf8 COLLATE utf8_general_ci;
    
  2. 然后,為 'seafile' 用戶授予訪問(wèn) 'ccnet-db' 的權(quán)限:

    GRANT ALL PRIVILEGES ON `ccnet-db`.* TO 'seafile'@'localhost';
    
  3. 同樣,確保 'seafile' 用戶也有訪問(wèn)其他必要數(shù)據(jù)庫(kù)的權(quán)限:

    GRANT ALL PRIVILEGES ON `seafile-db`.* TO 'seafile'@'localhost';
    GRANT ALL PRIVILEGES ON `seahub-db`.* TO 'seafile'@'localhost';
    
  4. 刷新權(quán)限:

    FLUSH PRIVILEGES;
    
  5. 驗(yàn)證權(quán)限是否正確授予:

    SHOW GRANTS FOR 'seafile'@'localhost';
    
  6. 確保在 Seafile 的配置文件中使用了正確的數(shù)據(jù)庫(kù)名稱、用戶名和密碼。通常這些配置在 ccnet.conf 文件中,路徑可能是 /opt/seafile/conf/ccnet.conf 或類似位置。檢查以下行:

    [Database]
    ENGINE = mysql
    HOST = 127.0.0.1
    PORT = 3306
    USER = seafile
    PASSWD = seafile-
    DB = ccnet-db
    
  7. 如果以上步驟都正確,但仍然出現(xiàn)錯(cuò)誤,可以嘗試重新啟動(dòng) MySQL 服務(wù):

    sudo systemctl restart mysql
    
  8. 最后,重新啟動(dòng) Seafile 服務(wù):

    ./seafile.sh restart
    ./seahub.sh restart
    

如果還是遇到問(wèn)題,可能需要檢查 MySQL 的錯(cuò)誤日志(通常在 /var/log/mysql/error.log)以獲取更多信息。也可以嘗試使用 'seafile' 用戶手動(dòng)連接 MySQL 來(lái)測(cè)試連接是否成功:

mysql -u seafile -p'seafile-' ccnet-db

如果這個(gè)命令成功連接,那么問(wèn)題可能出在 Seafile 的配置上。如果失敗,則可能是 MySQL 的權(quán)限或網(wǎng)絡(luò)配置問(wèn)題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容