اگر به دنبال این هستید که نصب Nextcloud را خودتان با سادهترین روش ممکن انجام دهید، این مقاله برای شماست. Nextcloud مجموعهای از نرم افزارهای ابری کلاینت سرور است که امکان مدیریت، همگامسازی و آپلود فایلها در سرور را میدهد. این مجموعه نرم افزاری به صورت منبع باز (open source) است و میتوانید بدون هیچ هزینهای، آن را بر روی سرور خصوصی خودتان نصب و اجرا کنید. در این آموزش، ما مراحل نصب Nextcloud بر روی لینوکس را قدم به قدم شرح میدهیم.
نصب Nextcloud بر روی لینوکس
در صورتی که ترجیح میدهید نصب Nextcloud در لینوکس را از طریق منبع tarball انجام دهید، میتوانید از ابتدا با استفاده از یک پلتفرم LAMP stack کلاسیک (مانند آپاچی، لینوکس، PHP یا MySQL/MariaDB) آن را راهاندازی نمایید. در این آموزش، ما با کمک آپاچی و MariaDB و با استفاده از آرشیو با فرمت tar (با کلیک بر روی + میتوانید به صفحه دانلود آرشیو بروید)، نصب Nextcloud را بر روی سرور اختصاصی اوبونتو LTS 18.04 انجام خواهیم داد.
اگر هیچ پکیجی برای توزیع لینوکس شما وجود ندارد و ترجیح میدهید از نصب خودکار Nextcloud استفاده کنید، میتوانید پکیج Snap را نصب کنید. این پکیج شامل استک آمادهی تولید است و گواهیهای HTTPs را برایتان نگهداری میکند. همچنین، در صورت نیاز به طور خودکار به روزرسانی میشود و سرور شما را ایمن نگه میدارد.
گزینههای دیگر برای نصب Nextcloud بر روی سرور اوبونتو شامل Nextcloud VM scripts و NextcloudPi scripts هستند. این پکیجها تمام تنظیمات لازم را انجام میدهند و شامل اسکریپتهایی برای نصب خودکار برنامههای پرکاربرد مانند OnlyOffice، Talk، Collabora و غیره هستند. توجه داشته باشید که این پکیجها به طور رسمی توسط شرکت خصوصی Nextcloud تایید و پشتیبانی نمیشوند. در این راهنما، سعی ما بر این است که یک نمای کلی از پیکربندی و موارد مورد نیاز برای نصب Nextcloud سرور لینوکس را خدمت شما عزیزان ارائه دهیم.
پیش نیازهای نصب Nextcloud
برای نصب Nextcloud، اول از همه به یک سرور مجازی نیاز دارید. پس از تهیه سرور، باید آرشیو با فرمت .tar را دانلود نمایید. این آرشیو شامل تمامی ماژولهای PHP مورد نیاز است. با این حال، ما در این بخش تمامی ماژولهای مورد نیاز و اختیاری PHP را لیست کردهایم تا با آنها بیشتر آشنا شوید. از هر سرور مجازی لینوکس یا توزیع لینوکسی که استفاده میکنید، باید مطمئن شوید که پکیجها برای تمام ماژولهای مورد نیاز را داشته باشد.
اگر مطمئن نیستید که یک ماژول موجود است، میتوانید با تایپ
با دستور
php -m | grep -i <module_name>
و جایگذاری نام ماژول در قسمت <module_name>
(بدون <>) بررسی کنید که آیا ماژول مورد نظر موجود است یا خیر.
موارد مورد نیاز (ضروری) برای نصب Nextcloud:
- سیستم مورد نیاز برای نسخههای پشتیبانی شده PHP؛
- PHP module ctype؛
- PHP module curl؛
- PHP module dom؛
- PHP module fileinfo (شامل PHP)؛
- PHP module filter (فقط بر روی Mageia و FreeBSD)؛
- PHP module GD؛
- PHP module hash (فقط بر روی FreeBSD)؛
- PHP module JSON ( شامل PHP نسخه بالاتر یا مساوی 8.0)؛
- PHP module libxml (پکیج لینوکس libxml2 باید نسخه بالاتر یا مساوی 2.7.0 باشد)؛
- PHP module mbstring؛
- PHP module openssl ( شامل PHP نسخه بالاتر یا مساوی 8.0)؛
- PHP module posix؛
- PHP module session؛
- PHP module SimpleXML؛
- PHP module XMLReader؛
- PHP module XMLWriter؛
- PHP module zip؛
- PHP module zliby.
رابطهای پایگاه داده برای نصب Nextcloud (از بین موارد زیر، یکی را برای پایگاه داده خود انتخاب نمایید):
- PHP module pdo_sqlite (نسخه بالاتر یا مساوی 3. معمولا به دلیل نوع عملکرد، این ماژول توصیه نمیشود)؛
؛PHP module pdo_mysql (MySQL/MariaDB)
؛PHP module pdo_pgsql (PostgreSQL)
پکیجهای پیشنهادی برای نصب Nextcloud:
- PHP module bz2 (برای استخراج برنامهها لازم است)؛
- PHP module intl (برای افزایش کارایی ترجمه زبان و اصلاح مرتبسازی کاراکترهای غیر ASCII).
موارد مورد نیاز برای برخی از برنامههای خاص:
- PHP module ldap (برای ادغام LDAP)؛
- PHP module smbclient (برای ادغام SMB/CIFS)؛
- PHP module ftp (برای ذخیرهسازی FTP / احراز هویت کاربران خارجی)؛
- PHP module imap (برای احراز هویت کاربران خارجی)؛
- PHP module bcmath (برای ورود بدون رمز عبور)؛
- PHP module gmp (برای ورود بدون رمز عبور)؛
موارد توصیه شده برای برخی از برنامههای خاص (برای نصب Nextcloud اختیاری است):
- PHP module gmp (برای ذخیرهسازی SFTP)؛
- PHP module exif ( برای چرخش تصویر در اپلیکیشن تصاویر)؛
برای بهبود عملکرد سرور مجازی ویندوز، میتوانید یکی از انواع حافظه پنهان زیر را انتخاب کنید (اختیاری است):
- PHP module apcu (نسخه بالاتر یا مساوی 4.0.6)؛
- PHP module memcached؛
- PHP module redis (نسخه بالاتر یا مساوی 2.2.6، برای قفل کردن فایل تراکنش الزامی است)؛
برای تولید پیشنمایش (اختیاری است):
PHP module imagick؛
avconv or ffmpeg؛
OpenOffice or LibreOffice.
برای پردازش خط فرمان در زمان نصب Nextcloud (اختیاری است):
PHP module pcntl (وقفه فرمان با فشار دادن دکمههای ctrl+c کیبورد، فعال میشود).
برای به روز رسانی خط فرمان ( اختیاری است):
· PHP module phar (Nextcloud را با اجرای کد sudo -u www-data php /var/www/nextcloud/updater/updater.phar
به روز رسانی میکند).
شما در زمان نصب Nextcloud، برای وب سرور خود به ماژول WebDAV (یا mod_webdav
آپاچی) نیازی ندارید؛ چرا که Nextcloud یک سرور WebDAV به نام SabreDAV دارد. در صورتی که mod_webdav فعال باشد، باید آن را برای Nextcloud غیر فعال نمایید.
پیکربندی وب سرور آپاچی
برای پیکربندی آپاچی، باید یک فایل پیکربندی واحد را ایجاد نمایید. در دبیان، اوبونتو و مشتقات این سیستم عاملها، این فایل باید در مسیر
"/…/apache2/sites-available/nextcloud.conf"
قرار داشته باشد. در سیستم عاملهای Fedora، CentOS، RHEL و تمامی سیستمهای مشابه آنها، فایل پیکربندی در مسیر
"/…/httpd/conf.d/nextcloud.conf"
خواهد بود.
اگر میخواهید پس از نصب Nextcloud، به آن از طریق زیر دامنهای شبیه به https://www.example.com/nextcloud/ دسترسی داشته باشید، میتوانید Nextcloud را در فهرست وب سرور خود و یا در هاست مجازی نصب کنید.
برای استفاده از نصب Nextcloud مبتنی بر دایرکتوری، کد زیر را در فایل nextcloud.conf قرار داده و مسیرهای فایل Directory و Alias که با رنگ آبی مشخص شدهاند را با مسیر فایل مناسب برای سیستمتان عوض کنید:
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
برای استفاده از نصب هاست مجازی، کد زیر را در فایل nextcloud.conf جایگذاری کرده و مواردی نظیر مسیرهای ServerName، DocumentRoot و Directory را که با رنگ آبی مشخص شدهاند، با مسیرهای مناسب جایگزین کنید:
<VirtualHost *: 80>
DocumentRoot /var/www/nextcloud/
ServerName your.server.com
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
در سیستمهای دبیان، اوبونتو و مشتقاتشان، برای فعال کردن پیکربندی، باید دستور زیر را اجرا کنید:
a2ensite nextcloud.conf
تنظیمات اضافی آپاچی
برای اینکه پس از نصب Nextcloud، Nextcloud به درستی کار کند، به ماژول mod_rewrite نیاز خواهیم داشت. میتوانید این ماژول را با دستور زیر فعال کنید:
a2enmod rewrite
ماژولهای دیگری که پیشنهاد میشود فعال کنید عبارتند از mod_headers
، mod_env
، mod_dir
و mod_mime.
برای فعالسازی این ماژولها، دستورات زیر را اجرا کنید:
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
در صورتی که به جای mod_php استاندارد، ماژول mod_fcgi را اجرا کردهاید، باید با استفاده از دستور زیر، آن را فعال کنید:
a2enmod setenvif
در ادامهی نصب Nextcloud، باید تمامی احراز هویتهای پیکربندی شده توسط سرور را برای Nextcloud غیر فعال کنید. این کار به این دلیل انجام میشود که Nextcloud از احراز هویت اولیهی داخلی برای سرویسهای DAV استفاده میکند. در صورتی که گزینه احراز هویت را در یک پوشه والد (مثلا از طریق AuthType Basic) روشن کردهاید، میتوانید آن را برای ورودی Nextcloud خاموش کنید.
در ادامه ی تغییرات پیکربندی بالا، خط زیر را به بخش <Directory> اضافه کنید:
Satisfy Any
هنگام استفاده از گواهی SSL در وب سایت خود، به قسمت ServerName دقت کنید. این نام را باید در پیکربندی سرور و همچنین در قسمت CommonName گواهی مشخص کنید. در صورتی که میخواهید Nextcloud ازطریق اینترنت قابل دسترسی باشد، این دو مورد را روی دامنهای که میخواهید به سرور Nextcloud دسترسی داشته باشد، تنظیم کنید.
حالا آپاچی را با دستور زیر، ریستارت کنید:
service apache2 restart
در صورتی که پس از نصب Nextcloud، آن را در یک زیرشاخه اجرا میکنید و میخواهید از کلاینتهای CardDAV یا CalDAV استفاده کنید، مطمئن شوید که Service discovery URLs را به درستی پیکربندی کردهاید.
Pretty URLs
کار Pretty URLs این است که بخشهای index.php را در تمامی URLهای Nextcloud حذف میکند. به عنوان مثال، در صورتی که قصد به اشتراک گذاری پیوندی طولانی
مانند “https: //example.org/nextcloud/index.php/s/Sv1b7krAUqmF8QQ” را داشته باشید، Pretty URLs میتواند این URL را کوتاهتر و در نهایت زیباتر کند.
برای این کار، در ادامه مراحل نصب Nextcloud، باید مطمئن شوید که ماژولهای mod_env و mod_rewrite بر روی وب سرور شما نصب بوده و .htaccess توسط کاربر HTTP قابل نوشتن (writable) باشد. برای فعالسازی mod_env و mod_rewrite باید کد sudo a2enmod env
و sudo a2enmod rewrite
را در ترمینال اجرا کنید. سپس، میتوانید در config.php دو متغیر زیر را تنظیم کنید:
'overwrite.cli.url' => 'https: //example.org/nextcloud',
'htaccess.RewriteBase' => '/nextcloud',
اگر تنظیمات شما در “https: //example.org/nextcloud” فعال بود و یا:
'overwrite.cli.url' => 'https: //example.org/',
'htaccess.RewriteBase' => '/',
این به این معناست که در یک زیرپوشه نصب نیست. در پایان، دستور occ زیر را برای به روزرسانی فایلهای .htaccess خود اجرا کنید:
sudo -u www-data php /var/www/nextcloud/occ maintenance: update: htaccess
فعالسازی گواهی SLL
فایل آپاچیای که قبلا تحت اوبونتو نصب شده بود، با یک گواهی نامه ساده و خود-امضا راهاندازی شده است. تنها کاری که شما باید انجام دهید این است که ماژول SSL و سایت پیشفرض خود را فعال نمایید. برای این کار، یک ترمینال باز کرده و دستور زیر را اجرا کنید:
a2enmod ssl
a2ensite default-ssl
service apache2 reload
نصب wizard
پس از راهاندازی آپاچی، باید مراحل نصب Nextcloud را با اجرای نصب wizard گرافیکی و یا اجرای دستور occ در خط فرمان، تکمیل کنید. برای فعالسازی این گزینه، مالکیت دایرکتوریهای Nextcloud را با دستور زیر به کاربر HTTP تغییر دهید:
chown -R www-data: www-data /var/www/nextcloud/
نکاتی پیرامون پیکربندی php.ini
قبل از هر چیزی، به خاطر داشته باشید که ممکن است لازم باشد برای نصب Nextcloud، تغییرات php.ini را بر روی بیش از یک فایل ini انجام دهید. به عنوان مثال، یکی از قسمتهایی که میبایست تنظیم شوند date.timezone است. php.ini که توسط وب سرور استفاده شده است:
/…/php/7.4/apache2/php.ini
or
/…/php/7.4/fpm/php.ini
or …
php.ini که توسط php-cli و همچنین توسط Nextcloud CRON jobs استفاده میشود:
/…/php/7.4/cli/php.ini
نکاتی پیرامون پیکربندی php-fpm
متغیرهای محیطی سیستم
زمانی که برای نصب Nextcloud از php-fpm استفاده میکنید، متغیرهای محیطی سیستم مانند TMP، PATH یا سایر موارد، مانند زمانی که از php-cli استفاده میکنید، به صورت خودکار تکمیل نمیشوند. در نتیجه، یک فراخوانی PHP مانند getenv(‘PATH’);، احتمالا یک نتیجه خالی را برمی گرداند. در نتیجه، ممکن است لازم باشد که متغیرهای محلی را به صورت دستی در مسیر فایل ini/config متعلق به php-fpm مجددا پیکربندی کنید.
در اینجا، چند نمونه از رایجترین مسیرها برای فایلهای ini/config را معرفی میکنیم:
در سیستمهای Debian/Ubuntu/Mint | در سیستمهای CentOS/Red Hat/Fedora |
/…/php/7.4/fpm/ | /…/php/7.4/fpm/ |
در هر دو مسیر بالا، پس از نصب Nextcloud فایلهای ini/config به صورت www.conf نامگذاری شدهاند. بسته به نسخه توزیع یا سفارشیسازی هایی که انجام دادهاید، ممکن است این فایل در زیرشاخهای مانند pool.d قرار داشته باشد.
به طور معمول، برخی یا تمام متغیرهای محیطی را میتوانید در این فایل پیدا کنید که به صورت زیر تعریف شدهاند:
env[HOSTNAME] = $HOSTNAME; env[PATH] = /usr/local/bin: /usr/bin: /bin; env[TMP] = /tmp env[TMPDIR] = /tmp; env[TEMP] = /tmp;
در صورتی که هر یک از متغیرهای محیطی سیستم شما در این فایل قرار ندارد، باید آن را به صورت دستی مانند نمونه زیر اضافه کنید:
$ printenv PATH
/home/user/bin: /usr/local/sbin: /usr/local/bin: /usr/sbin: /usr/bin:
/sbin: /bin: /
برای لغو هر خط، میتوانید از کد دستور زیر استفاده کنید:
/…/php/7.4/fpm/pool.d/www.conf
زمانی که از هاستینگ اشتراکی یا یک کنترل پنل برای مدیریت ماشین مجازی یا سرور Nextcloud خود استفاده میکنید، فایلهای پیکربندی اغلب به دلایل امنیتی یا انعطافپذیری بیشتر، در محل دیگری قرار داده میشوند. بنابراین، شما باید پس از نصب Nextcloud از درست بودن مکان اسناد خود مطمئن شوید.
لطفا به خاطر داشته باشید که امکان ایجاد تنظیمات مختلف برای php-cli، php-fpm و دامنهها و وبسایتهای مختلف وجود دارد. بهترین راه برای بررسی این تنظیمات این است که با تایپ عبارت “localhost/phpinfo.php” در مرورگر خود و سپس فشار دادن کلید Enter، نسخه و اطلاعات PHP را مشاهده نمایید.
حداکثر اندازه آپلود
برای افزایش حداکثر اندازه آپلود، باید به پیکربندی php-fpm مراجعه کرده و مقادیر upload_max_filesize و post_max_size را بیشتر کنید. برای تکمیل چنین تغییراتی، باید php-fpm و سرور HTTP را مجددا راهاندازی نمایید.
نکاتی پیرامون htaccess. برای آپاچی
Nextcloud فایل nextcloud/.htaccess خودش را دارد. از آنجایی که php-fpm نمیتواند به طور مستقیم تنظیمات PHP را در فایل htaccess. بخواند، چنین تنظیمات و مجوزهایی، باید در فایل nextcloud/.user.ini نصب و تنظیم شوند.
نصب Nextcloud بر روی ماشین مجازی
در صورتی که از سیستم عامل ویندوز استفاده میکنید، سادهترین راه برای نصب Nextcloud و اجرای آن، استفاده از ماشین مجازی است. برای این کار، 2 گزینه پیش روی خود دارید:
1. ابزار Enterprise/SME
شرکت خصوصی Nextcloud، بر روی Univention Corporate Server (UCS)، یک ابزار رایگان با راهاندازی گرافیکی آسان و مدیریت مبتنی بر وب را نگهداری میکند. این ابزار، شامل مدیریت کاربر از طریق LDAP است و میتواند جایگزین راهاندازی Active Directory موجود شود. همچنین، دارای ONLYOFFICE، ادغام آنلاین Collabora و بسیاری از برنامههای کاربردی دیگر که برای نصب آسان و سریع تعبیه شدهاند، است. میتوانید این ابزار را بر روی سخت افزار نصب کرده و یا با استفاده از VirtualBox، VMWare (ESX) و KVM images، آن را بر روی ماشین مجازی خود اجرا کنید.
برای دانلود این ابزار و استفاده از آن برای نصب Nextcloud، بر روی این لینک (+) کلیک نمایید.
2. ابزار Home User/SME
ماشین مجازی Nextcloud توسط T&M Hansson IT نگهداری میشود و تاکنون، چندین نسخه مختلف از آن ارائه شده است. Collabora، OnlyOffice، Full Text Search و سایر برنامههای مختلف را میتوانید به راحتی با اسکریپتهای همراه نصب کرده و در اولین فرصت، آنها را اجرا کنید. در صورت لزوم، میتوانید این برنامهها را بعدا دانلود و اجرا کنید. در حال حاضر، تمامی نصبهای خودکار برنامههای موجود، در سایت گیت هاب قرار دارند.
همچنین، ماشینهای مجازی در نسخههای مختلفی ساخته و عرضه شدهاند. شما میتوانید به وسیله یکی از راههای زیر، نسخه دلخواه خود پیدا و نصب کنید و در ادامه، نصب Nextcloud را دنبال کنید:
- Nextcloud VM (گیت هاب)
- Nextcloud VM (T&M Hansson IT)
نصب از طریق پکیجهای Snap
Snap یک فایل فشرده حاوی برنامههای کاربردی است که تمامی ملزومات، توضیحات درباره نحوه اجرای ایمن برنامهها در سیستم و روشهای مختلف تعامل با نرم افزارهای دیگر را در خود دارد. Snap به گونهای طراحی شده است که دارای برنامههای کاربردی ایمن، sandboxed و اپلیکشنهای کانتینری شده ایزوله از سیستم زیربنایی و سایر برنامهها باشد.
برای نصب پکیج Nextcloud Snap و استفاده از آن در نصب Nextcloud، کد دستوری زیر را در ترمینال ویندوز اجرا کنید:
sudo snap install nextcloud
نصب از طریق web installer بر روی یک VPS یا فضای وب
در زمانهایی مانند استفاده از یک وب هاستینگ یا VMPS که به خطر فرمان دسترسی ندارید، میتوانید از نصب کنندههای خودکار نظیر web installer استفاده نمایید.
چنین اسکریپتهایی، وابستگیها و ملزومات سیستم را به راحتی پیدا کرده، Nextcloud را از سرور رسمی دانلود و آن را با مجوزها و حساب کاربری مناسب، باز میکنند. در نهایت، شما برای نصب Nextcloud به نصب کننده Nextcloud هدایت میشوید و میتوانید از آن استفاده کنید.
برای این کار، میتوانید از دستورالعمل عمومی زیر استفاده نمایید:
- فایل را از صفحه نصب دانلود کنید.
- setup-nextcloud.php را در فضای وب خود آپلود نمایید.
- مرورگر وب خود را در فضای وب، بر روی setup-nextcloud.php قرار دهید.
- دستورالعملها را دنبال کرده و Nextcloud را پیکربندی نمایید.
- به Nextcloud جدید خود وارد شوید.
نصب از طریق install script
یک راه ساده برای نصب Nextcloud این است که از اسکریپتهای Nextcloud VM یا NextcloudPI استفاده کنید. این نصب دو مرحله اصلی دارد:
- آخرین نسخه اسکریپت نصبی را دانلود کنید.
- اسکریپت را با استفاده از کد دستوری زیر، اجرا کنید:
sudo bash nextcloud_install_production.sh
و یا:
- آخرین نسخه اسکریپت نصبی را دانلود کنید.
- اسکریپت را با استفاده از کد دستوری زیر اجرا کنید:
sudo bash install.sh
یک پاسخ
بسیار متشکرم
آموزش نصب و راه اندازی و اتصال به NEXTCLOUD سرویس OPEN PROJECT رو هم لطفا منتشر بفرماییئ.