אנחנו ממשיכים להרחיב את השוק שלנו. לאחרונה דיברנו על איך , והשבוע זה הופיע בשוק שלנו Drupal.
אנו מספרים מדוע בחרנו בו וכיצד נוצרה התמונה.
Drupal מהווה פלטפורמה נוחה וחזקה ליצירת כל סוג של אתרים: ממיקרו אתרים ובלוגים ועד לפרויקטים חברתיים גדולים, המשמשת גם כבסיס ליישומי אינטרנט, הכתובים ב-PHP ומשתמשים בבסיסי נתונים יחסיים כאחסון נתונים.
Drupal גרסה 9 כוללת את כל התכונות שהוטמעו בגרסה 8.9. ההבדל העיקרי בין גרסה 9 לגרסה 8 הוא שהפלטפורמה תמשיך לקבל עדכונים ותיקוני אבטחה לאחר נובמבר 2021. גרסה 9 גם מפשטת את תהליך העדכון, מה שמקל עוד יותר על השדרוג מגרסה 8.
דרישות שרת
לשימוש Drupal מומלץ להשתמש ב-2 ג'יגה-בייט זיכרון RAM ו-2 ליבות מעבד.
קבצים עיקריים Drupal תופסים כ-100 מגה-בייט, תצטרכו גם מקום לאחסון תמונות, מסד נתונים, ערכות עיצוב, מודולים נוספים וגיבויים, אשר יהיו תלויים בגודל האתר שלכם.
עבור Drupal 9 דורש PHP 7.4 ומעלה עם מגבלה מינימלית (memory_limit) עד 64 מגה-בייט זיכרון, במקרה של שימוש במודולים נוספים, מומלץ להתקין 128 מגה-בייט.
כשרת אינטרנט Drupal יכול להשתמש ב-Apache או Nginx, וב-MySQL, PostgreSQL או SQLite כבסיס נתונים.
אנחנו נתקין Drupal באמצעות Nginx ו-MySQL.
התקנה
עדכן את החבילות המותקנות לגרסה העדכנית ביותר:
sudo dnf update -yבואו נוסיף הרשאה קבועה לתנועה נכנסת ליציאות http/80 ו-https/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsהחל את כללי חומת האש החדשים:
sudo systemctl reload firewalldהתקן את Nginx:
sudo dnf install nginx -yבואו נתחיל ונפעיל את שרת Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx מאחר שנכון לעכשיו במאגר הראשי Centos נעשה שימוש בגרסת PHP 7.2, בואו נוסיף את מאגר REMI עם PHP 7.4 (הגרסה המינימלית עבור Drupal 9).
כדי לעשות זאת, הוסף את מאגר ה-EPEL (נדרש על ידי מאגר REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmבואו נוסיף את מאגר REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
אפשר את מודול php:remi-7.4 כדי להתקין את php 7.4:
sudo dnf module enable php:remi-7.4 -yהתקן את php-fpm ו-php-cli:
sudo dnf install -y php-fpm php-cliנתקין את מודולי ה-PHP הנדרשים לעבודה. Drupal:
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נתקין גם את מודולי ה-PHP המומלצים mbstring opcache:
sudo dnf install -y php-mbstring php-opcacheהתקן את שרת MySQL:
sudo dnf install mysql-server -yהפעל והפעל את שרת MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldמכיוון שאנו יוצרים תבנית עבור VDS, והם יכולים להיות איטיים, נוסיף עיכוב התחלה של mysqld של 30 שניות, אחרת עלולות להיות בעיות בהפעלת השרת במהלך האתחול הראשוני של המערכת:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceבואו נשנה את הקבוצה והמשתמש שתחתיהם nginx יפעל על ידי ביצוע שינויים ב-/etc/php-fpm.d/www.conf:
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שנה את הבעלים של ספריית ההפעלה של PHP ל-nginx בהתאם:
sudo chown -R nginx. /var/lib/php/sessionהבה נסיר את שורות ההערה מקובץ התצורה /etc/nginx/nginx.conf (כדי שלא יהיו התאמות כפולות עבור sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confהוסף הגדרות דחיסה של gzip ל-/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בואו נוסיף את ההגדרות של קובץ האינדקס index.php ל-/etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confבואו נוסיף הגדרות לשרת ברירת המחדל לעיבוד php דרך שקע php-fpm, נשבית את היומן עבור קבצים סטטיים, נגדיל את זמן התפוגה, נשבית את יומן הגישה והשגיאות עבור favicon.ico ו-robots.txt ונמנע גישה לקבצי .ht עבור כל אחד:
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התקן wget נדרש להתקנת certbot:
sudo dnf install wget -yהורד את קובץ ההפעלה של certbot מאתר:
cd ~
wget https://dl.eff.org/certbot-autoהעבר את certbot אל /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoוהקצה זכויות ובעלות לשורש:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoהתקן את התלות של certbot והפסק אותו בשלב זה (תשובות: Y, c):
certbot-autoהורד את הארכיון עם הגרסה העדכנית ביותר מהאתר הרשמי. Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzהתקן tar כדי לפרוק את הארכיון:
sudo dnf install tar -yמחק את קבצי ברירת המחדל בספרייה /usr/share/nginx/html/:
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הגדר את הבעלים של קבצי nginx:
chown -R nginx. /usr/share/nginx/htmlבשלב זה נכבה את השרת ונבצע תמונת מצב:
shutdown -h nowלאחר התחלת ה-VDS מתמונת המצב, נבצע את ההגדרה הראשונית של שרת MySQL על ידי הפעלת הסקריפט:
mysql_secure_installationהפעל את מאמת הסיסמאות:
Would you like to setup VALIDATE PASSWORD component? : yהגדר את סיסמת המשתמש MySQL root:
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 לאחר מכן, כדי להשלים את ההתקנה, נוכל ללכת אל
בכתובת זו נראה את דף ההתקנה Drupal.
בחר את השפה שבה יש להשתמש. לדוגמא: רוסית. לחץ על "שמור והמשך"
בוא נבחר פרופיל התקנה (הדגמה משמשת רק לצורך היכרות עם המערכת). במקרה שלנו, שיהיה "סטנדרטי".
בעמוד הבא, תן למסד הנתונים שם, כגון "דרופל". ציין את שורש שם המשתמש של מסד הנתונים ואת הסיסמה שניתנה לו בעת הפעלת mysql_secure_installation. לחץ על "שמור והמשך".
בוא נחכה לסיום ההתקנה והעדכון של התרגומים (התהליך עשוי להימשך מספר דקות).
נציין את שם האתר, נגדיר את כתובת הדוא"ל של האתר (שממנה יישלחו התראות האתר), שם משתמש, סיסמה ודוא"ל של חשבון מנהל המערכת. Drupalנגדיר גם את המדינה ואזור הזמן בהגדרות האזוריות. לאחר מכן, השלם את ההתקנה על ידי לחיצה על "שמור והמשך".
לאחר מכן, תוכל לגשת ללוח הבקרה עם שם המשתמש והסיסמה של מנהל המערכת שיצרת. Drupal.
הגדרת HTTPS (אופציונלי)
כדי להגדיר HTTPS, ל-VDS חייב להיות שם DNS חוקי, ציין ב
/etc/nginx/nginx.confבקטע השרת שם השרת (לדוגמה):
server_name domainname.ru;הפעל מחדש את nginx:
service nginx restartבואו נתחיל את certbot:
sudo /usr/local/bin/certbot-auto --nginxהכנס את הדואר האלקטרוני שלך, הסכים לתנאי השירות (א'), הירשמו לניוזלטר (אופציונלי) (N), בחרו את שמות הדומיין שעבורם ברצונכם להנפיק תעודה (Enter for all).
אם הכל הלך ללא שגיאות, נראה הודעה על הנפקה מוצלחת של אישורים והגדרת שרת:
Congratulations! You have successfully enabled ...לאחר מכן, חיבורים ביציאה 80 יופנו ל-443 (https).
הוסף ל-/etc/crontab לחידוש אוטומטי של אישורים:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"הגדרת אבטחת מארח מהימנה (מומלץ)
הגדרה זו נועדה כפתרון לבעיה של זיהוי base_url דינמי, ונועדה למנוע התקפות HTTP HOST Header (כשהאתר שלך חושב שזה מישהו אחר).
לשם כך, עליך לציין את שמות הדומיין המהימנים של האתר בקובץ ההגדרות.
בקובץ
/usr/share/nginx/html/sites/default/settings.php בטל תגובה או הוסף הגדרה עם דפוסים של שמות אתרים בפועל, לדוגמה:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
התקנת PHP APCu (מומלץ)
Drupal תומך ב-APCu (מטמון משתמש אלטרנטיבי של PHP). גרסאות 8 ו-9 משתמשות ב-APCu באופן אינטנסיבי יותר כמטמון מקומי לטווח קצר בהשוואה לגרסאות קודמות. גודל המטמון המוגדר כברירת מחדל (32 MB) מתאים לרוב האתרים ואינו יכול לעלות על 512 MB.
כדי להפעיל, התקן את מודול PHP APCu:
dnf -y install php-pecl-apcuהפעל מחדש את nginx ו-php-fpm:
service nginx restart
service php-fpm restartבמקרה של שימוש בשפה הרוסית וב-APCu עם גודל זיכרון המטמון המומלץ, ניתן לראות אזהרה בלוח הבקרה שגודל זיכרון המטמון המוקצה שונה מהמומלץ, אך למעשה הכל עובד כמו שצריך, והלא נכון ככל הנראה אזהרה תתוקן בעדכונים הבאים.
או אם האזהרה כואבת את העין, אתה יכול להשתמש .
אנחנו רוצים להזכיר לכם שאתם יכולים גם ליצור עבורנו תמונה
ישנן שלוש אפשרויות כיצד להשתתף.
הכן את התמונה בעצמך וקבל 3000 רובל על היתרה שלך
אם אתה מוכן למהר מיד לקרב וליצור את התמונה שחסרה לך בעצמך, אנו נזכה אותך ב-3000 רובל ליתרה הפנימית שלך - אתה יכול להוציא אותו על שרתים.
איך ליצור את התמונה שלך:
- צור איתנו חשבון
- ספר לתמיכה שאתה הולך ליצור ולבדוק תמונות
- אנו נזכה אותך ב-3000 רובל ונאפשר את היכולת ליצור תמונות מצב
- הזמינו שרת וירטואלי עם מערכת הפעלה נקייה
- התקן את התוכנה ב-VPS הזה והגדר אותו
- כתוב הוראות או סקריפט לפריסת תוכנה
- צור תמונת מצב עבור השרת המוגדר
- הזמינו שרת וירטואלי חדש על ידי בחירת תמונת המצב שנוצרה בעבר ברשימה הנפתחת "תבנית שרת".
- במקרה של יצירה מוצלחת של השרת, העבר את החומרים שהתקבלו בשלב 6 לתמיכה הטכנית
- במקרה של שגיאה, אתה יכול לבדוק עם התמיכה את הסיבה ולחזור על ההגדרה
לבעלי עסקים: הציעו את התוכנה שלכם
אם אתה מפתח תוכנה שנפרס ומשמש ב-VPS, נוכל לכלול אותך בשוק. כך נוכל לעזור לכם להביא לקוחות חדשים, תנועה ונראות.
ספרו לנו בתגובות לאיזו תמונה אתם מתגעגעים?
ואנחנו נכין אותו בעצמנו
מקור: www.habr.com
