نحوه نصب Hubzilla در اوبونتو 16.04

Hubzilla یک بستر مبتنی بر وب منبع باز برای ایجاد وب سایتهای داخلی است. در اکوسیستم Hubzilla ، سروری که Hubzilla را اداره می کند "هاب" نامیده می شود و گروهی از هاب های متعدد "شبکه" نامیده می شوند. هاب های درون یک شبکه برای به اشتراک گذاشتن اطلاعاتی مانند هویت با یکدیگر ارتباط برقرار می کنند. هر کس می تواند مطالب را به صورت عمومی یا خصوصی با استفاده از "کانال" منتشر کند ، که می تواند یک شخص ، یک وبلاگ یا یک انجمن باشد. از یک چارچوب Zot مبتنی بر JSON برای پیاده سازی امن ارتباطات و خدمات غیر متمرکز استفاده می کند. Hubzilla مملو از امکاناتی همچون موضوعات بحث در شبکه های اجتماعی ، ذخیره سازی فایل های ابری ، تقویم و مخاطبین ، میزبانی وب صفحه با سیستم مدیریت محتوا ، ویکی و موارد دیگر می باشد.

پیش نیازها

  • به عنوان مثال سرور Vultr اوبونتو 16.04.
  • کاربران از sudo .
  • نام دامنه به عنوان مثال نشان داده شده است.

برای این آموزش ، ما به hubzilla.example.com عنوان نام دامنه که به سمت نمونه Vultr اشاره شده است ، استفاده خواهیم کرد. لطفاً حتماً تمام وقایع نام دامنه را با نمونه واقعی جایگزین کنید.

سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی اوبونتو 16.04 به روز کنید . پس از به روزرسانی سیستم ، نصب وابستگی ها را انجام دهید.

Nginx را نصب کنید

Nginx یک وب سرور تولیدی است که برنامه های وب را اجرا می کند.

Nginx را نصب کنید.

sudo apt -y install nginx

Nginx را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت اجرا شود.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1 را نصب کنید

Hubzilla از نسخه های PHP بالاتر از 5.6 پشتیبانی می کند. ما PHP 7.1 را برای اطمینان از حداکثر سرعت ، امنیت و سازگاری نصب خواهیم کرد. مخزن اوبونتو را برای PHP 7.1 اضافه کنید.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

نسخه PHP 7.1 را به همراه ماژول های مورد نیاز Hubzilla نصب کنید.

sudo apt -y install php7.1 php7.1-mysql php7.1-curl php7.1-json php7.1-cli php7.1-gd php7.1-xml php7.1-mbstring php7.1-fpm imagemagick php7.1-zip

پرونده پیکربندی PHP را ویرایش کنید.

sudo nano /etc/php/7.1/fpm/php.ini

خط زیر را پیدا کنید. آن را اظهارنظر کنید و منطقه زمانی مناسب را تنظیم کنید.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone

یک مقدار حافظه مناسب را در تنظیمات بعدی تنظیم کنید. تنظیم آن به -1 حافظه نامحدود در دسترس به یک اسکریپت می دهد. همچنین ، حداکثر محدودیت بارگذاری پرونده را افزایش دهید.

memory_limit = -1
upload_max_filesize = 100M
post_max_size = 100M

بعد ، خط زیر را پیدا کنید و 0 بعد از عدم اظهار نظر ، مقدار آن را تنظیم کنید.

cgi.fix_pathinfo=0

آن را شروع کرده php7.1-fpm و فعال کنید تا به طور خودکار در زمان بوت شروع شود.

sudo systemctl restart php7.1-fpm
sudo systemctl enable php7.1-fpm

دایرکتوری جلسه ایجاد کنید و مجوزهای نوشتن را ارائه دهید.

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

اکنون ، به نصب MariaDB بروید.

MariaDB را نصب کنید

MariaDB یک چنگال از MySQL است. مخزن MariaDB را به سیستم خود اضافه کنید ، زیرا مخزن پیش فرض اوبونتو دارای نسخه قدیمی MariDB است.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update

MariaDB را نصب کنید.

sudo apt -y install mariadb-server

در صورت درخواست یک رمزعبور قوی برای کاربر ریشه MariaDB تهیه کنید. MariaDB را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.

sudo systemctl start mariadb
sudo systemctl enable mariadb

قبل از پیکربندی پایگاه داده ، باید MariaDB را ایمن کنید. با اجرای mysql_secure_installation اسکریپت می توانید آن را ایمن کنید .

sudo mysql_secure_installation

از شما گذرواژه اصلی rootDD MariaDB خواسته می شود. گذرواژه ای را که هنگام نصب تنظیم کرده اید ، تهیه کنید. از شما سؤال می شود که آیا می خواهید رمزعبور موجود کاربر اصلی سرور MariaDB خود را تغییر دهید. می توانید از یک گذرواژه جدید صرفنظر کنید ، زیرا قبلاً در هنگام نصب یک رمزعبور قوی ارائه داده اید. Yبه همه سؤالهای دیگر "" پاسخ دهید .

به عنوان root وارد پوسته MySQL شوید.

mysql -u root -p

رمز ورود را برای کاربر root MariaDB فراهم کنید تا وارد سیستم شود.

برای ایجاد یک بانک اطلاعاتی و کاربر پایگاه داده برای نصب Hubzilla سؤالات زیر را اجرا کنید.

CREATE DATABASE hubzilla_data;
CREATE USER 'hubzilla_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON hubzilla_data.* TO 'hubzilla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

می توانید نام hubzilla_data و نام کاربری داده را hubzilla_user مطابق انتخاب خود جایگزین کنید. لطفاً مطمئن شوید که StrongPassword به یک رمزعبور بسیار قوی تغییر دهید .

Hubzilla را نصب کنید

Git را نصب کنید. Git برای کلون کردن مخزن Hubzilla از Github مورد نیاز است.

sudo apt -y install git

به فهرست دایرکتوری وب بروید و مخزن Hubzilla را کلون کنید.

cd /var/www
sudo git clone https://github.com/redmatrix/hubzilla.git hubzilla

برای ذخیره داده های Hubzilla یک فهرست جدید ایجاد کنید.

cd hubzilla
sudo mkdir -p "store/[data]/smarty3"
sudo chmod -R 777 store

افزونه های Hubzilla را کلون کرده و نصب کنید.

sudo util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
sudo util/update_addon_repo hzaddons

مالکیت دایرکتوری و پرونده ها را به کاربر Nginx ارائه دهید.

sudo chown -R www-data:www-data /var/www/hubzilla

یک میزبان مجازی ایجاد کنید

مهم است که SSL را در سایت Hubzilla نصب کنید ، زیرا در صورت رمزگذاری ، ورود به سیستم و سایر داده ها به خطر می افتد. در این آموزش ، ما از گواهینامه های SSL به دست آمده توسط مرجع صدور گواهینامه رمزگذاری استفاده خواهیم کرد.

مخزن Certbot را اضافه کنید.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Certbot را نصب کنید ، که برنامه مشتری برای Let Encrypt CA است.

sudo apt -y install certbot

توجه: برای به دست آوردن گواهینامه ها از Let Encrypt CA ، دامنه تولید شده برای صدور گواهینامه ها باید به سمت سرور هدایت شود. در این صورت ، تغییرات لازم را در سوابق DNS دامنه ایجاد کرده و منتظر انتشار DNS قبل از درخواست مجوز مجدد باشید. Certbot قبل از ارائه گواهینامه ها ، دامنه را بررسی می کند.

صدور گواهینامه SSL را ایجاد کنید.

sudo certbot certonly --webroot -w /var/www/html -d hubzilla.example.com

گواهینامه های تولید شده احتمالاً در آنها ذخیره می شوند /etc/letsencrypt/live/hubzilla.example.com/. گواهینامه SSL ذخیره می شود fullchain.pem و کلید خصوصی نیز به عنوان ذخیره می شود privkey.pem.

بیایید مجوزهای رمزگذاری در مدت 90 روز منقضی شوند ، از این رو توصیه می شود با استفاده از مشاغل Cron ، تمدید خودکار گواهینامه ها را تنظیم کنید.

پرونده کار cron را باز کنید.

sudo crontab -e

در انتهای پرونده خط زیر را اضافه کنید.

30 5 * * * /usr/bin/certbot renew --quiet

کار cron فوق هر روز در 5:30 دقیقه صبح انجام می شود. اگر گواهی برای انقضا موقت باشد ، به طور خودکار تمدید می شود.

یک فایل پیکربندی جدید برای Hubzilla Server ایجاد کنید.

sudo nano /etc/nginx/sites-available/hubzilla

پرونده را جمع کنید.

server {
  listen 80;
  server_name hubzilla.example.com;

  index index.php;
  root /var/www/hubzilla;
  rewrite ^ https://hubzilla.example.com$request_uri? permanent;
}

server {
  listen 443 ssl;
  server_name hubzilla.example.com;

  ssl on;
  ssl_certificate /etc/letsencrypt/live/hubzilla.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hubzilla.example.com/privkey.pem;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
  ssl_prefer_server_ciphers on;

  fastcgi_param HTTPS on;

  index index.php;
  charset utf-8;
  root /var/www/hubzilla;
  access_log /var/log/nginx/hubzilla.log;
  client_max_body_size 20m;
  client_body_buffer_size 128k;

  location / {
    if ($is_args != "") {
        rewrite ^/(.*) /index.php?q=$uri&$args last;
    }
    rewrite ^/(.*) /index.php?q=$uri last;
  }

  location ^~ /.well-known/ {
    allow all;
    rewrite ^/(.*) /index.php?q=$uri&$args last;
  }

  location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
    expires 30d;
    try_files $uri /index.php?q=$uri&$args;
  }

  location ~* \.(tpl|md|tgz|log|out)$ {
    deny all;
  }

  location ~* \.php$ {

    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;    
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;    
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location ~ /\. {
    deny all;
  }

    location ~ /store {
        deny  all;
    }
}

پیکربندی را فعال کنید.

sudo ln -s /etc/nginx/sites-available/hubzilla /etc/nginx/sites-enabled/hubzilla

پیکربندی سرور وب Nginx را تست کنید.

sudo nginx -t

خروجی زیر را مشاهده خواهید کرد.

user@vultr:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

اگر خطایی در پیکربندی مشاهده نشد ، Nginx را مجدداً راه اندازی کنید تا پیکربندی جدید بتواند اثر بگذارد.

sudo systemctl restart nginx

بسته بندی کردن

به https://hubzilla.example.comاستفاده از مرورگر مورد علاقه خود بروید و صفحه وب رابط کاربری "بررسی سیستم" را مشاهده خواهید کرد. خواهید دید که هر موردی در بررسی سیستم عبور می کند. در رابط بعدی جزئیات بانک اطلاعاتی را که قبلاً ایجاد کرده اید ، تهیه کنید. بعد ، ایمیل سرپرست ، URL وب سایت و منطقه زمانی را تهیه کنید. Hubzilla اکنون روی سرور شما نصب شده است ، می توانید با استفاده از ایمیل سرپرستی که در حین نصب از آن استفاده کرده اید ، کاربر سرپرست خود را ایجاد کنید.

سرانجام ، شما نیاز به تنظیم cron برای انجام کارهای برنامه ریزی شده در هر ده دقیقه دارید.

یک پرونده جدید برای کار cron ایجاد کنید.

sudo nano /etc/cron.d/hubzilla

پرونده را با موارد زیر جمع کنید.

*/10 * * * * www-data cd /var/www/hubzilla; /usr/bin/php Zotlabs/Daemon/Master.php Cron

سرویس Cron را مجدداً راه اندازی کنید.

sudo systemctl restart cron

اگر می خواهید مجموعه ای از اسناد محلی را ایجاد کنید ، دستورات زیر را اجرا کنید.

cd /var/www/hubzilla
util/importdoc
sudo chown www-data:www-data -R /var/www/hubzilla

Hubzilla اکنون نصب و پیکربندی شده است ، می توانید دوستان خود را دعوت کرده و طبق دلخواه از این سکو استفاده کنید.



نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد