Креирање ВПС шаблона са Друпал 9 на Центос 8

Настављамо да ширимо наше тржиште. Недавно смо разговарали о томе како направио Гитлаб слику, а ове недеље Друпал се појавио на нашем тржишту.

Говоримо зашто смо га изабрали и како је слика настала.

Креирање ВПС шаблона са Друпал 9 на Центос 8

друпал је погодна и моћна платформа за креирање било које врсте сајтова: од микро сајтова и блогова до великих друштвених пројеката, која се такође користи као основа за веб апликације, написане у ПХП-у и које користе релационе базе података као складиште података.

Друпал 9 укључује све функције представљене у верзији 8.9. Кључна разлика између верзије 9 и верзије 8 је у томе што ће платформа наставити да добија ажурирања и безбедносне исправке након новембра 2021. Такође у верзији 9, процес надоградње је поједностављен, чинећи процес надоградње са верзије 8 још лакшим.

Захтеви сервера

Да бисте користили Друпал, препоручује се коришћење 2 ГБ РАМ-а и 2 ЦПУ језгра.

Главни Друпал фајлови су око 100 МБ, додатно ће вам требати простор за складиштење слика, базе података, тема, додатака и резервних копија, што ће зависити од величине вашег сајта.

Друпал 9 захтева ПХП 7.4 или новији са минималним ограничењем (memory_limit) до 64 МБ меморије, у случају коришћења додатних модула, препоручује се инсталирање 128 МБ.

Друпал може да користи Апацхе или Нгинк као веб сервер, а МиСКЛ, ПостгреСКЛ или СКЛите као базу података.

Инсталираћемо Друпал користећи Нгинк и МиСКЛ.

Инсталација

Ажурирајте инсталиране пакете на најновију верзију:

sudo dnf update -y

Хајде да додамо трајну дозволу за долазни саобраћај на хттп/80 и хттпс/443 портове:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Примените нова правила заштитног зида:

sudo systemctl reload firewalld

Инсталирајте Нгинк:

sudo dnf install nginx -y

Почнимо и омогућимо Нгинк сервер:

sudo systemctl start nginx
sudo systemctl enable nginx

Пошто се ПХП 7.2 тренутно користи у главном Центос спремишту, додајмо РЕМИ спремиште са ПХП 7.4 (минимална верзија за Друпал 9).
Да бисте то урадили, додајте ЕПЕЛ спремиште (захтева РЕМИ спремиште):

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Хајде да додамо РЕМИ спремиште:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Омогућите пхп:реми-7.4 модул да бисте инсталирали пхп 7.4:

sudo dnf module enable php:remi-7.4 -y

Инсталирајте пхп-фпм и пхп-цли:

sudo dnf install -y php-fpm php-cli

Инсталирајте ПХП модуле потребне да Друпал ради:

sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xml

Такође ћемо инсталирати препоручене ПХП модуле мбстринг опцацхе:

sudo dnf install -y php-mbstring php-opcache

Инсталирајте МиСКЛ сервер:

sudo dnf install mysql-server -y

Омогућите и покрените МиСКЛ сервер:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Пошто правимо шаблон за ВДС, а они могу бити спори, додаћемо мисклд одлагање почетка од 30 секунди, у супротном може доћи до проблема при покретању сервера током почетног покретања система:

sudo sed -i '/Group=mysql/a 
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service

Хајде да променимо групу и корисника под којим ће нгинк радити тако што ћемо направити измене у /етц/пхп-фпм.д/ввв.цонф:

sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf

У складу са тим промените власника ПХП директоријума сесије у нгинк:

sudo chown -R nginx. /var/lib/php/session

Хајде да уклонимо редове коментара из /етц/нгинк/нгинк.цонф конфигурационе датотеке (тако да нема дуплих погодака за сед):

sudo sed -i -e '/^[ t]*#/d'  /etc/nginx/nginx.conf

Додајте подешавања гзип компресије у /етц/нгинк/нгинк.цонф

sudo sed -i '/types_hash_max_size 2048;/a 

    gzip on;
    gzip_static on;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
    gzip_comp_level 9;
    gzip_proxied any;
    gzip_min_length 1000;
    gzip_disable "msie6";
    gzip_vary on; 
' /etc/nginx/nginx.conf

Хајде да додамо подешавања индексне датотеке индек.пхп у /етц/нгинк/нгинк.цонф:

sudo sed -i '/        root         /usr/share/nginx/html;/a 
        index index.php index.html index.htm;
' /etc/nginx/nginx.conf

Хајде да додамо подешавања за подразумевани сервер који обрађује пхп преко пхп-фпм соцкета, онемогућимо евиденцију за статичке датотеке, повећамо време истека, онемогућимо приступ и евиденцију грешака за фавицон.ицо и роботс.ткт и забранимо приступ .хт датотекама за сви:

sudo sed -i '/        location / {/a 
		try_files $uri $uri/ /index.php?q=$uri&$args;
        }
    
        location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
        access_log off;
        expires max;
        }
    
        location ~ .php$ {
        try_files  $uri =404;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_ignore_client_abort off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        }
    
        location = /favicon.ico {
        log_not_found off;
        access_log off;
        }
    
        location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
        }
    
        location ~ /.ht {
        deny all;' /etc/nginx/nginx.conf

Инсталирајте вгет потребан за инсталирање цертбота:

sudo dnf install wget -y

Преузмите извршну датотеку цертбот са стране:

cd ~
wget https://dl.eff.org/certbot-auto

Премести цертбот у /уср/лоцал/бин/:

mv certbot-auto /usr/local/bin/certbot-auto

И доделите права и власништво роот-у:

chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Инсталирајте зависности цертбота и зауставите га у овој фази (одговори: И, ц):

certbot-auto

Преузмите архиву са најновијом верзијом Друпала 9 са вањске стране:

cd ~
wget https://www.drupal.org/download-latest/tar.gz

Инсталирајте тар да бисте распаковали архиву:

sudo dnf install tar -y

Избришите подразумеване датотеке у директоријуму /уср/схаре/нгинк/хтмл/:

rm -rf /usr/share/nginx/html/*

Распакујте датотеке у директоријум веб сервера:

tar xf tar.gz -C /usr/share/nginx/html/

Преместите датотеке из поддиректоријума у ​​основни директоријум веб сервера:

mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/

Избриши поддиректоријум:

rm -rf /usr/share/nginx/html/drupal-9.0.7

Избришите архиву са инсталационим датотекама:

rm -f ./tar.gz

Поставите власника нгинк датотека:

chown -R nginx. /usr/share/nginx/html

У овој фази ћемо искључити сервер и направити снимак:

shutdown -h now

Након што покренемо ВДС са снимка, извршићемо почетно подешавање МиСКЛ сервера покретањем скрипте:

mysql_secure_installation

Омогућите валидатор лозинке:

Would you like to setup VALIDATE PASSWORD component? : y

Поставите МиСКЛ роот корисничку лозинку:

New password:
Re-enter new password:

Уклони анонимне кориснике:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Хајде да спречимо роот да се повеже на даљину:

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Уклонимо тестну базу података:

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

Поново учитај табеле привилегија:

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Након тога, да завршимо инсталацију, можемо ићи на впс_ип_аддресс
На овој адреси видећемо страницу са инсталацијом Друпала.

Изаберите језик који ће се користити. На пример: руски. Кликните на „Сачувај и настави“

Хајде да изаберемо профил инсталације (демо се користи само за упознавање са системом). У нашем случају нека буде „стандардно“.

На следећој страници дајте име бази података, на пример „друпал“. Наведите корисничко име базе података роот и лозинку која му је дата приликом покретања мискл_сецуре_инсталлатион. Кликните на „Сачувај и настави“.

Сачекајмо да се заврши инсталација и ажурирање превода (процес може потрајати неколико минута).

Одредите назив сајта, подесите е-маил сајта (у име којег ће долазити обавештења о сајту), логин, лозинку и е-пошту Друпал администраторског налога. Такође ћемо подесити земљу и временску зону у регионалним поставкама. И завршите инсталацију кликом на „Сачувај и настави“.

Након тога можете ићи на контролну таблу са креираним именом и лозинком администратора Друпал.

ХТТПС подешавање (опционо)

Да бисте конфигурисали ХТТПС, ВДС мора имати важеће ДНС име, наведите у

/etc/nginx/nginx.conf

у одељку сервер име сервера (на пример):

server_name  domainname.ru;

Поново покрените нгинк:

service nginx restart

Почнимо цертбот:

sudo /usr/local/bin/certbot-auto --nginx

Унесите своју е-пошту, прихватите услове коришћења услуге (А), Претплатите се на билтен (опционо) (Н), изаберите имена домена за које желите да издате сертификат (Унесите за све).

Ако је све прошло без грешака, видећемо поруку о успешном издавању сертификата и подешавању сервера:

Congratulations! You have successfully enabled ...

Након тога, везе на порту 80 ће бити преусмерене на 443 (хттпс).

Додајте у /етц/цронтаб да бисте аутоматски обновили сертификате:

# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"

Подешавање сигурности поузданог хоста (препоручено)

Ова поставка је замишљена као решење за проблем динамичког откривања басе_урл-а и намењена је спречавању напада ХТТП ХОСТ заглавља (када ваш сајт мисли да је неко други).

Да бисте то урадили, потребно је да наведете поуздана имена домена сајта у датотеци за подешавања.

У фајлу

/usr/share/nginx/html/sites/default/settings.php опозовите коментаре или додајте подешавање са шаблонима стварних назива сајтова, на пример:

$settings['trusted_host_patterns'] = [
  '^www.mydomain.ru$',
];

Инсталирање ПХП АПЦу (ПРЕПОРУЧЕНО)

Друпал подржава АПЦу – Алтернативни ПХП кориснички кеш, верзије 8 и 9 користе АПЦу интензивније као краткорочни локални кеш од претходних верзија. Подразумевана величина кеша (32 МБ) ће одговарати већини сајтова и не може да пређе 512 МБ.

Да бисте активирали, инсталирајте ПХП АПЦу модул:

dnf -y install php-pecl-apcu

Поново покрените нгинк и пхп-фпм:

service nginx restart
service php-fpm restart

У случају коришћења руског језика и АПЦу са препорученом величином кеш меморије, на контролној табли можете видети упозорење да се величина додељене кеш меморије разликује од препоручене, али у ствари све ради како треба, а неисправно упозорење ће највероватније бити исправљено у наредним ажурирањима.

Или ако упозорење боли око, можете га користити одговарајућу закрпу са стране.

Желимо да вас подсетимо да можете направити и слику за нас

Постоје три опције како да учествујете.

Припремите слику сами и добијте 3000 рубаља на свом рачуну

Ако сте спремни да одмах улетите у битку и сами себи створите слику која вам недостаје, ми ћемо вам приписати 3000 рубаља на ваш интерни биланс - можете га потрошити на сервере.

Како направити своју слику:

  1. Направите налог код нас Онлине
  2. Реците подршци да ћете креирати и тестирати слике
  3. Даћемо вам кредит од 3000 рубаља и омогућити могућност прављења снимака
  4. Наручите виртуелни сервер са чистим оперативним системом
  5. Инсталирајте софтвер на овај ВПС и подесите га
  6. Напишите упутства или скрипту за примену софтвера
  7. Направите снимак за конфигурисани сервер
  8. Наручите нови виртуелни сервер тако што ћете изабрати претходно креирани снимак у падајућој листи „Шаблон сервера“.
  9. У случају успешног креирања сервера, пренесите материјале примљене у кораку 6 техничкој подршци
  10. У случају грешке, можете проверити код подршке за разлог и поновити подешавање

За власнике предузећа: понудите свој софтвер

Ако сте програмер софтвера који се примењује и користи на ВПС-у, онда можемо да вас укључимо на тржиште. Тако вам можемо помоћи да привучете нове клијенте, промет и видљивост. Пишите нам

Јавите нам у коментарима која слика вам недостаје?

И сами ћемо га припремити

Креирање ВПС шаблона са Друпал 9 на Центос 8

Креирање ВПС шаблона са Друпал 9 на Центос 8

Извор: ввв.хабр.цом