sajjadsec
May 28th, 2018, 16:00
ownCloud برنامه تحت سرور برای هماهنگ سازی داده ها و به اشتراک گذاری فایل است ،و برای استفاده راحتر یک رابط کاربری تحت وب در اختیار کاربران خود قرار داده است البته میتوانید برنامه client برای دسکتاپ را نیز دانلود کنید و حتی برنامه ownCloud برای اندروید و ios در دسترس میباشد.
به راحتی میتوان ownCloud را برروی ویندوز سرور و لینوکس نصب کرد کردو با توجه به داکیومنت کاملی که در اختیار ما قرار داده است میتوانیم آن را کانفیگ کنیم.
قبل اینکه شروع به نصب nginx و php7-fpm کنیم ابتدا باید EPEL repository را به centos 7 اضافه کنیم.
yum -y install epel-release
حال میتوانیم nginx را از EPEL repository نصب کنیم .
yum -y install nginx
برای نصب php7-fpm هم میتوانیم از یه ریپوزیتوری دیگر جهت نصب استفاده کنید به شکل زیر :
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json
بعد از نصب میتوانید ورژن php را با استفاده از اپشن –v بررسی کنید :
php -v
کانفیگ PHP7-FPM
برای تغییر تنظیمات به مسیر زیر برید :
vim /etc/php-fpm.d/www.conf
در خط 8 و 10 قسمت user و group را به nginx تغییر دهید.
user = nginx
group = nginx
در خط 22 مطمئن بشید که پورت سرور برروی 9000 قرار گرفته است .
listen = 127.0.0.1:9000
و مقادیر مربوط به خط 366 تا 370 را به شکر زیر از حالت کامنت خارج کنید:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
در انتها فایل را ذخیره کنید و از ادیتور خارج بشید.
در مرحله بعد یک دایرکتوری جدید به اسم session در مسیر '/var/lib/' درست کنید و owner را به nginx تغییر دهید .
mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/
در نهایت سرویس های مربوط به nginx و php-fpm را اجرا کنید .
sudo systemctl start php-fpm
sudo systemctl start nginx
sudo systemctl enable php-fpm
sudo systemctl enable nginx
نصب و راه اندازی mariadb
با استفاده از دستورات زیر ابتدا اقدام به نصب و کانفیگ اولیه mariadb میکنیم سپس یک دیتابیس جدید برای owncloud درست میکنیم
جهت نصب میتوانید از دستور زیر استفاده کنید :
yum -y install mariadb mariadb-server
کانفیگ mariadb
systemctl start mariadb
mysql_secure_installation
پسورد روت دیتابیس را تایپ کنید
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
سپس برای ساخت دیتابیس برای owncloud وارد دیتابیس شده و دستورات مربوط به ساخت دیتابیس را با توجه به شکل زیر وارد میکنیم
mysql -u root -p
Type Password
create database owncloud_db;
create user ownclouduser@localhost identified by 'ownclouduser@';
grant all privileges on owncloud_db.* to ownclouduser@localhost identified by 'ownclouduser@';
flush privileges;
با توجه به دستورات بالا دیتابیس owncloud_db با یوزر ownclouduser و پسورد 'ownclouduser@ درست شد.
دانلود ownCloud
برای دانلود فایل ownCloudبرروی سرور از wget استفاده میکنیم و برای اکسترکت فایل از unzip پس ابتدا این دو برنامه رو دانلود میکنیم به شکل زیر :
yum -y install wget unzip
در دایرکتوری tmp فایل رو دانلود میکنیم و سپس بعد از اکسترکت، فایل را به مسیر /usr/share/nginx/html/ انتقال میدیم. سپس در مسیر مربوطه یه دایرکتوری جدید به اسم دیتا در دایرکتوری owncloud ایجاد میکنیم سپس owner دایرکتوری owncloudرو به nginx تغییر میدیم :
cd /tmp
wget https://download.owncloud.org/community/owncloud-9.1.2.zip
unzip owncloud-9.1.2.zip
mv owncloud/ /usr/share/nginx/html/
cd /usr/share/nginx/html/
mkdir -p owncloud/data/
chown nginx:nginx -R owncloud/
در مرحله آخر نیاز به کانفیگ nginx خواهیم داشت پس باید به مسیر /etc/nginx/conf.d/ بریم و یه فایل به اسم owncloud.conf ایجاد کنیم و دستورات زیر را وارد کنیم
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name data.owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name data.owncloud.co;
ssl_certificate /etc/nginx/cert/owncloud.crt;
ssl_certificate_key /etc/nginx/cert/owncloud.key;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this topic first.
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /usr/share/nginx/html/owncloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/acme-challenge { }
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.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_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into this topic first.
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}
فایل رو ذخیره میکنیم و با استفاده از دو دستور زیر کانفیگ nginx رو تست میکنیم که اروری نداشته باشد و سپس nginx رو ریستارت میکنم :
nginx -t
systemctl restart nginx
درنهایت دامنه خود یا ip سرور خود را باز کنید و اطلاعات درخواستی را پر کرده و در انتها برروی Finish Setup کلیک کنید .
به راحتی میتوان ownCloud را برروی ویندوز سرور و لینوکس نصب کرد کردو با توجه به داکیومنت کاملی که در اختیار ما قرار داده است میتوانیم آن را کانفیگ کنیم.
قبل اینکه شروع به نصب nginx و php7-fpm کنیم ابتدا باید EPEL repository را به centos 7 اضافه کنیم.
yum -y install epel-release
حال میتوانیم nginx را از EPEL repository نصب کنیم .
yum -y install nginx
برای نصب php7-fpm هم میتوانیم از یه ریپوزیتوری دیگر جهت نصب استفاده کنید به شکل زیر :
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json
بعد از نصب میتوانید ورژن php را با استفاده از اپشن –v بررسی کنید :
php -v
کانفیگ PHP7-FPM
برای تغییر تنظیمات به مسیر زیر برید :
vim /etc/php-fpm.d/www.conf
در خط 8 و 10 قسمت user و group را به nginx تغییر دهید.
user = nginx
group = nginx
در خط 22 مطمئن بشید که پورت سرور برروی 9000 قرار گرفته است .
listen = 127.0.0.1:9000
و مقادیر مربوط به خط 366 تا 370 را به شکر زیر از حالت کامنت خارج کنید:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
در انتها فایل را ذخیره کنید و از ادیتور خارج بشید.
در مرحله بعد یک دایرکتوری جدید به اسم session در مسیر '/var/lib/' درست کنید و owner را به nginx تغییر دهید .
mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/
در نهایت سرویس های مربوط به nginx و php-fpm را اجرا کنید .
sudo systemctl start php-fpm
sudo systemctl start nginx
sudo systemctl enable php-fpm
sudo systemctl enable nginx
نصب و راه اندازی mariadb
با استفاده از دستورات زیر ابتدا اقدام به نصب و کانفیگ اولیه mariadb میکنیم سپس یک دیتابیس جدید برای owncloud درست میکنیم
جهت نصب میتوانید از دستور زیر استفاده کنید :
yum -y install mariadb mariadb-server
کانفیگ mariadb
systemctl start mariadb
mysql_secure_installation
پسورد روت دیتابیس را تایپ کنید
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
سپس برای ساخت دیتابیس برای owncloud وارد دیتابیس شده و دستورات مربوط به ساخت دیتابیس را با توجه به شکل زیر وارد میکنیم
mysql -u root -p
Type Password
create database owncloud_db;
create user ownclouduser@localhost identified by 'ownclouduser@';
grant all privileges on owncloud_db.* to ownclouduser@localhost identified by 'ownclouduser@';
flush privileges;
با توجه به دستورات بالا دیتابیس owncloud_db با یوزر ownclouduser و پسورد 'ownclouduser@ درست شد.
دانلود ownCloud
برای دانلود فایل ownCloudبرروی سرور از wget استفاده میکنیم و برای اکسترکت فایل از unzip پس ابتدا این دو برنامه رو دانلود میکنیم به شکل زیر :
yum -y install wget unzip
در دایرکتوری tmp فایل رو دانلود میکنیم و سپس بعد از اکسترکت، فایل را به مسیر /usr/share/nginx/html/ انتقال میدیم. سپس در مسیر مربوطه یه دایرکتوری جدید به اسم دیتا در دایرکتوری owncloud ایجاد میکنیم سپس owner دایرکتوری owncloudرو به nginx تغییر میدیم :
cd /tmp
wget https://download.owncloud.org/community/owncloud-9.1.2.zip
unzip owncloud-9.1.2.zip
mv owncloud/ /usr/share/nginx/html/
cd /usr/share/nginx/html/
mkdir -p owncloud/data/
chown nginx:nginx -R owncloud/
در مرحله آخر نیاز به کانفیگ nginx خواهیم داشت پس باید به مسیر /etc/nginx/conf.d/ بریم و یه فایل به اسم owncloud.conf ایجاد کنیم و دستورات زیر را وارد کنیم
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name data.owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name data.owncloud.co;
ssl_certificate /etc/nginx/cert/owncloud.crt;
ssl_certificate_key /etc/nginx/cert/owncloud.key;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this topic first.
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /usr/share/nginx/html/owncloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/acme-challenge { }
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.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_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into this topic first.
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}
فایل رو ذخیره میکنیم و با استفاده از دو دستور زیر کانفیگ nginx رو تست میکنیم که اروری نداشته باشد و سپس nginx رو ریستارت میکنم :
nginx -t
systemctl restart nginx
درنهایت دامنه خود یا ip سرور خود را باز کنید و اطلاعات درخواستی را پر کرده و در انتها برروی Finish Setup کلیک کنید .