ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نحوه نصب و راه اندازی ownCloud 9.1 همراه با Nginx و MariaDB در CentOS 7



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 کلیک کنید .