بهمن 18, 1398لینوکس
سیستم مدیریت محتوا چیست؟
سیستم مدیریت محتوا (CMS) نرمافزاری است که به کاربران اجازه افزودن، انتشار، ویرایش و حذف محتوای یک وبسایت را با استفاده از مرورگر وب موجود در گوشی هوشمند، تبلت یا رایانه رومیزی میدهد. معمولا، نرمافزار CMS به یک زبان اسکریپتی نوشته میشود و اسکریپتهای آن روی رایانهای که پایگاهداده و سرور وب نیز در آن است، نصب میگردد. محتوا و تنظیمات وبسایت معمولا در پایگاهداده ذخیره میشوند و به ازای درخواست هر صفحهای که به سرور وب میشود، اسکریپت اطلاعات مورد نیاز را از پایگاهداده و فایلهای ایستا (فایلهای تصویری، جاوااسکریپت، CSS که جزوی از CMS هستند یا به آن وارد شدهاند) ترکیب میکند تا صفحه مورد نظر ساخته شود.
ترکیب سیستمعاملی که CMS روی آن اجرا میشود، زبان برنامهنویسی که به آن نوشته شده، پایگاهدادهای که اطلاعات آن را ذخیره میکند و سرور وبی که درخواستهای دریافتی را پردازش میکند با نام پشته شناخته میشود؛ متداولترین ترکیب سیستمعامل لینوکس، سرور وب Apache، پایگاهداده MySQL و زبان برنامهنویسی PHP با نام LAMP Stack شناخته میشود.
دروپال چیست؟

دروپال یکی از قویترین سیستمهای مدیریت محتوا کدباز (OpenSource) و رایگان در جهان میباشد که با PHP نوشته شده و تحت مجوز GNU منتشر گردیده ، به همراه طراحی ماژولار که امکان افزودن و حذف قابلیتها را با نصب و حذف افزونهها و امکان تغییر ظاهر وبسایت را با نصب و حذف قالبها دارد. دروپال برنده چندین جشنواره بین المللی اپن سورس است و چند سال متوالی عنوان بهترین سیستم مدیریت محتوا را از آن خود کرده است.
از نظر امنیتی، علاوه بر اینکه می توان عنوان یکی از ایمنترین سیستم های مدیریت محتوایی را به دروپال داد، تیم امنیتی دروپال به دقت پیگیر هرگونه گزارش از مشکلات امنیتی آن می باشند و به سرعت این مشکلات در نسخه های اصلاحیه، برطرف میگردند. اولین ایده دروپال در سال ۲۰۰۱ شکل گرفته است و اکنون به نسخه پایه ۸ و هزاران ماژول و انتشار کاربردی متنوع رسیده است.
دانلود دروپال، که با نام هسته شناخته میشود، شامل اسکریپتهای PHP برای اجرای قابلیتهای اولیه CMS است، به همراه برخی افزونهها و قالبها و بسیاری فایلهای جاوااسکریپت و CSS و تصویر. بسیاری از افزونهها و قالبهای اضافی میتوانند از طریق وبسایت Drupal.org دانلود شوند.
هزاران پورتال و سایت مراکز علمی و دولتی و نظامی در سطح جهان که حساسیت و اهمیت فراوانی دارند از نرم افزارهای تحت دروپال به دلیل ویژگیهای متمایز آن استفاده میکنند.
نمونه های جهانی:
سازمان فضایی ناسا – دانشگاه آکسفورد – دانشگاه هاروارد – شرکت توتال – شرکت تسلا – لینوکس – فرودگاه لندن – دولت استرالیا – فرمانداری نیویورک – شهرداری لندن – مجله اکونومیست – وزارت تجارت، وزارت کشور، وزارت انرژی، وزارت بهداشت، وزارت حمل و نقل و وزارت آموزش پرورش آمریکا – شرکت جنرال الکتریک – دانشگاه کلمبیا – دانشگاه کالیفرنیا – سازمان جهانی استاندارد – سازمان جهانی هواشناسی – کتابخانه ملی استرالیا – لیگ ان بی ای و …
نمونه های ایرانی:
وزارت دفاع – پلیس فتا – پژوهشگاه مخابرات – دانشگاه اصفهان – استانداری گیلان – استانداری قزوین – شورای عالی فضای مجازی – شرکت ارتباطات زیرساخت – شرکت همکاران سیستم – شرکت ایزایران – شرکت کاله و …
نصب drupal8 بر روی centos7
پیشنیازهای نصب دروپال :
- Apache 2.x (Recommended)
- PHP 5.5.9 or higher (5.5 recommended)
- MySQL 5.5.3 or MariaDB 5.5.20 with PHP Data Objects (PDO)
گام اول : نصب Apache web server :
ما برای این آموزش از سیستم عامل centos7 استفاده می کنیم. برای نصب پکیجهای مورد نیاز این آموزش ابتدا باید repository سیستم عامل را تنظیم نمایید:


[extra]
name=extra
baseurl=http://mirror.centos.org/centos/7.7.1908/extras/x86_64/
enabled=1
gpgcheck=0
[update]
name=update
baseurl=http://mirror.centos.org/centos/7.7.1908/updates/x86_64/
enabled=1
gpgcheck=0
[centos7]
name=centos7
baseurl=http://mirror.centos.org/centos/7.7.1908/os/x86_64/
enabled=1
gpgcheck=0
[storage]
name=storage
baseurl=http://mirror.centos.org/centos/7.7.1908/storage/x86_64/
enabled=0
gpgcheck=0
[gluster-4.1]
name=gluster-4.1
baseurl=https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-4.1/
enabled=0
gpgcheck=0
[nux-dextop]
name=Nux.Ro RPMs for general desktop use
baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ http://mirror.li.nux.ro/li.nux.ro/nux/dextop/el7/$basearch/
enabled=1
gpgcheck=0
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
enabled=1
gpgcheck=0
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el7
baseurl=http://elrepo.org/linux/elrepo/el7/$basearch/
http://mirrors.coreix.net/elrepo/elrepo/el7/$basearch/
http://jur-linux.org/download/elrepo/elrepo/el7/$basearch/
http://repos.lax-noc.com/elrepo/elrepo/el7/$basearch/
http://mirror.ventraip.net.au/elrepo/elrepo/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el7
enabled=1
gpgcheck=0
[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/$basearch/
http://mirrors.coreix.net/elrepo/kernel/el7/$basearch/
http://jur-linux.org/download/elrepo/kernel/el7/$basearch/
http://repos.lax-noc.com/elrepo/kernel/el7/$basearch/
http://mirror.ventraip.net.au/elrepo/kernel/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7
enabled=1
gpgcheck=0
[elrepo-extras]
name=ELRepo.org Community Enterprise Linux Extras Repository - el7
baseurl=http://elrepo.org/linux/extras/el7/$basearch/
http://mirrors.coreix.net/elrepo/extras/el7/$basearch/
http://jur-linux.org/download/elrepo/extras/el7/$basearch/
http://repos.lax-noc.com/elrepo/extras/el7/$basearch/
http://mirror.ventraip.net.au/elrepo/extras/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-extras.el7
enabled=1
gpgcheck=0
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
enabled=1
gpgcheck=0
[webtatic]
name=Webtatic Repository EL7 - $basearch
#baseurl=https://repo.webtatic.com/yum/el7/$basearch/
mirrorlist=https://mirror.webtatic.com/yum/el7/$basearch/mirrorlist
enabled=1
gpgcheck=0
[webtatic-archive]
name=Webtatic Repository EL7 - $basearch - Archive
#baseurl=https://repo.webtatic.com/yum/el7-archive/$basearch/
mirrorlist=https://mirror.webtatic.com/yum/el7-archive/$basearch/mirrorlist
enabled=1
gpgcheck=0
# This repository only provides PHP 7.0 and its extensions
[remi-php70]
name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch
baseurl=http://rpms.remirepo.net/enterprise/7/php70/$basearch/
#mirrorlist=http://rpms.remirepo.net/enterprise/7/php70/mirror
enabled=1
gpgcheck=0
# This repository only provides PHP 7.1 and its extensions
# NOTICE: common dependencies are in "remi-safe"
[remi-php71]
name=Remi's PHP 7.1 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php71/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php71/mirror
enabled=1
gpgcheck=0
# This repository is safe to use with RHEL/CentOS base repository
# it only provides additional packages for the PHP stack
# all dependencies are in base repository or in EPEL
[remi-safe]
name=Safe Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/safe/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/safe/mirror
enabled=1
gpgcheck=0
حال apache web server را نصب می نماییم
# yum install httpd

پس از نصب این سرویس را start کرده و enable می کنیم تا در هنگام بوت شدن سیستم عامل به صورت خودکار شروع به کار نماید.
# systemctl start httpd
# systemctl enable httpd

پورتهای 80 و 443 که مورد استفاده سرویس فوق می باشند را بر روی فایروال باز می نماییم
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

گام دوم : نصب php
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w php70w-opcache php70w-mbstring php70w-gd php70w-xml php70w-pear php70w-fpm php70w-mysql php70w-pdo


جهت اینکه اطلاعات کاملی از نصب php و تنظیمات آن بدست بیاوریم در مسیر Apache DocumentRoot (/var/www/html) فایل info.php را بوسیله دستور زیر ایجاد می نماییم
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php

سپس سرویس HTTPD را restart نموده و در مرورگر آدرس http://server_IP/info.php را وارد می کنیم
# systemctl restart httpd

گام سوم : نصب و پیکربندی دیتابیس mariadb
برای نصب دیتابیس MariaDB باید ریپازیتوری رسمی این دیتابیس را به سیستم عامل معرفی کنید
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
enabled=1
gpgcheck=0
توجه : در صورتی که فایل ریپازیتوری سیستم عامل را مطابق با انچه در ابتدای این نوشتار گفتیم تنظیم نموده اید mariadb به ریپازیتوری سیستم عامل اضافه شده است.
# yum install mariadb-server mariadb


سرویس MariaDB را start و enable می نماییم

اسکریپت mysql_secure_installation را جهت امن سازی mariadb اجرا می کنیم

گام چهارم : نصب و پیکربندی دروپال 8 در سیستم عامل centos7
بسته های wget و gzip را نصب نموده و آخرین نسخه دروپال را از سایت دروپال دانلود می نماییم
yum install wget gzip
cd /opt/
wget -c https://ftp.drupal.org/files/projects/drupal-8.8.2.tar.gz


فایل را از حالت فشرده خارج می کنیم و به مسیر Apache Document Root (/var/www/html) انتقال داده و فایل settings.php را از فایل default.settings.php که در پوشه /var/www/html/drupal/sites/default قراردارد ایجاد می کنیم و سپس دسترسیهای لازم را بر روی دایرکتوری سایت دروپال و زیر شاخه های آن اعمال می نماییم
# tar -zxvf drupal-8.8.2.tar.gz
# mv drupal-8.8.2 /var/www/html/drupal
# cd /var/www/html/drupal/sites/default/
# cp default.settings.php settings.php
# chown -R apache:apache /var/www/html/drupal/


حال باید دیتابیس و کاربر آن را برای سایت دروپال خود در mariadb ایجاد نماییم
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> create database drupal;
Query OK, 1 row affected (0.00 sec)
MySQL [(none)]> create user amir@localhost identified by 'dba123';
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> grant all on drupal.* to amir@localhost;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> exit
Bye

گام پنجم :
در مرورگر خود آدرس http://server_IP/drupal را باز کنید تا با استفاده از web installer دروپال فرآیند نصب را طی نمایید








همانطور که مشاهده می کنید دروپال با موفقیت نصب شد ، اما مشکلی که وجود دارد این است که اگر بر روی هر یک از منوهای مدیریتی content و structure و … کلیک نمایید با پیغام خطای The Requested URL … was not found on this Server روبرو می شوید.

برای حل این مشکل تنها کافی است تغییر زیر را در تنظیمات وب سرور Apache اعمال نمایید



حال selinux را روشن می کنیم و برچسبهای مربوط به apache را بر روی دروپال خود اعمال می کنیم
# setenforce 1
# getenforce
# chcon -R -t httpd_sys_content_rw_t /var/www/html/drupal/sites/
# ls -Z /var/www/html/drupal/sites/

