我們繼續擴大我們的市場。 我們最近討論瞭如何
我們講述為什麼選擇它以及圖像是如何創建的。
Drupal的 是一個方便而強大的平台,可用於創建任何類型的網站:從微型網站和博客到大型社交項目,它也用作 Web 應用程序的基礎,用 PHP 編寫並使用關係數據庫作為數據存儲。
Drupal 9 包含版本 8.9 中引入的所有功能。 版本 9 和版本 8 之間的主要區別在於,該平台將在 2021 年 9 月之後繼續接收更新和安全修復。 同樣在版本 8 中,升級過程也得到了簡化,使得從版本 XNUMX 的升級過程變得更加容易。
服務器要求
要使用 Drupal,建議使用 2 GB RAM 和 2 個 CPU 內核。
主 Drupal 文件約為 100 MB,此外您還需要空間來存儲圖像、數據庫、主題、附加組件和備份,這取決於您站點的大小。
Drupal 9 需要 PHP 7.4 或更高版本,但有最低限制 (memory_limit
)至 64 MB 內存,如果使用附加模塊,建議安裝 128 MB。
Drupal 可以使用 Apache 或 Nginx 作為 Web 服務器,並使用 MySQL、PostgreSQL 或 SQLite 作為數據庫。
我們將使用 Nginx 和 MySQL 安裝 Drupal。
安裝
將已安裝的軟件包更新到最新版本:
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,因此我們使用 PHP 7.4(Drupal 9 的最低版本)添加 REMI 存儲庫。
為此,請添加 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
安裝 Drupal 工作所需的 PHP 模塊:
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 製作模板,並且它們可能很慢,因此我們將添加 30 秒的 mysqld 啟動延遲,否則在初始系統啟動期間啟動服務器可能會出現問題:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
讓我們通過更改 /etc/php-fpm.d/www.conf 來更改 nginx 運行的組和用戶:
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-fpm 套接字添加默認服務器處理 php 的設置,禁用靜態文件的日誌,增加過期時間,禁用 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
安裝安裝 certbot 所需的 wget:
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
並將權利和所有權分配給 root:
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/*
將文件解壓到Web服務器目錄:
tar xf tar.gz -C /usr/share/nginx/html/
將文件從子目錄移動到 Web 服務器的根目錄:
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
讓我們阻止 root 遠程連接:
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安裝的頁面。
選擇要使用的語言。 例如:俄語。 點擊“保存並繼續”
讓我們選擇一個安裝配置文件(演示僅用於熟悉系統)。 在我們的例子中,讓它成為“標準”。
在下一頁上,為數據庫命名,例如“drupal”。 指定數據庫用戶名 root 以及啟動 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
輸入您的電子郵件,同意服務條款 (A),訂閱時事通訊(可選)(N),選擇您要為其頒發證書的域名(全部輸入)。
如果一切順利,我們將看到一條有關證書頒發和服務器設置成功的消息:
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 標頭攻擊(當您的網站認為是其他人時)。
為此,您需要在設置文件中指定站點的受信任域名。
在文件中
/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