關於自建NextCloud的過程詳解
關於自建NextCloud的過程詳解(連結: [link](https://zhuanlan.zhihu.com/p/47135562.)
使用Centos系統
//需要安裝以下元件
NGINX
PHP
PHP-FPM
NEXTCLOUD
更新Centos yum源
//如果系統中沒有安裝wget,就需要安裝 yum -y install wget ******************** mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache yum -y update
在安裝之前,需要清除系統中存在的PHP
yum -y remove php*
yum install nginx
yum install php
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
必須安裝php-intl,否則在執行過程中會一直報錯
yum install php72w-php-intl
systemctl start nginx systemctl start php-fpm
vi /etc/php-fpm.d/www.conf
設定執行的賬號全部為nginx
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
listen的方式和埠一定要正確,此處的配置與NGINX一定要對應。
listen = 127.0.0.1:9000
啟用此處幾個配置
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
建立session目錄,並且修改許可權。
mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/
安裝和配置 MariaDB
yum install mariadb mariadb-server
create database nextcloud_db;
啟動mariadb服務
systemctl start mariadb
開機啟動
systemctl enable mariadb
配置mariadb
mysql_secure_installation
會提示設定root的密碼
Remove anonymous users? [Y/n] <– 是否刪除匿名使用者,Y回車
Disallow root login remotely? [Y/n] <–是否禁止root遠端登入,n回車,
Remove test database and access to it? [Y/n] <– 是否刪除test資料庫,y回車
Reload privilege tables now? [Y/n] <– 是否重新載入許可權表,y回車
mysql -uroot -p
然後執行下面兩條命令。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
其中123456換成你的密碼。
重新整理許可權
flush privileges;
最後就成功了。
use mysql;
select * from user;
就可以看到現在遠端主機登入的許可權情況。
#安裝解壓縮軟體
yum install unzip
#下載,此處連結可以直接開啟,選擇最新版本14.0.3
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip
#解壓
unzip nextcloud-10.0.2.zip
#移動到nginx的root目錄
mv nextcloud/ /usr/share/nginx/html/
#建立一個存放檔案的Data目錄
cd /usr/share/nginx/html/
mkdir -p nextcloud/data/
#變更 nextcloud 目錄的擁有者為 nginx 使用者和組
chown nginx:nginx -R nextcloud/
cd /etc/nginx/conf.d/
vi nextcloud.conf
upstream php-handler {
server 127.0.0.1:9000;
#server unix:ar/run/php5-fpm.sock;
}
server {
listen 80;
server_name localhost;
access_log /home/pan/log/nginx/access.log;
error_log /home/pan/log/nginx/error.log;
# Path to the root of your installation
root /home/pan/www;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ /index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-handler;
}
# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
# -t引數進行配置檔案的檢測
nginx -t
#檢測配置成功之後,可以啟動服務
systemctl restart nginx
要正確設定PHP和ningx的特別是監聽服務的方式。否則會出現500.502錯誤。在出現這些錯誤的時候,要使用nginx和php-fpm的日誌進行判斷。它們的存放位置一般都在var/log下面。
要設定目錄許可權,否則會提示無法安裝,正確的設定許可權可以是nginx或者是www-data,這裡使用nginx,如果是apache的話可能就要選擇www-data。只要前後保持一致即可。
如果提示非安全域名的話,進入nextclou/config/config.php中增加trust_domain,格式參考上面一行即可。
docker pull rootlogin/nextcloud
docker run -d --name nextcloud -p 8111:80 -v /usr/local/nextcloud:/data rootlogin/nextcloud
1).進入到安裝的nextcloud的apps目錄下(我的是在容器中的 /opt/nextcloud/apps )
cd apps
2).將onlyoffice.tar.gz拷貝到此目錄並解壓(可以使用docker cp)
下載地址:https://apps.nextcloud.com/apps/onlyoffice
tar -zxvf onlyoffice.tar.gz
3).更改所有者以直接從Nextcloud Web介面更新應用程式:
chown -R www-data:www-data onlyoffice
4).在nextcloud管理端: 應用-已禁用應用 中找到onlyoffice並啟用
5).在nextcloud管理端: 設定-ONLYOFFICE,下面可以選擇哪
onlyoffice的轉載於: https://blog.csdn.net/xiao_____wu/article/details/103390622.