Տեղադրեք TYPO3 CMS-ը Nginx-ով AlmaLinux 9-ում
TYPO3-ը Ձեռնարկությունների կարգի բովանդակության կառավարման անվճար և բաց կոդով համակարգ է: Այն ապահովում է ձեռնարկության մակարդակի բազմաթիվ առանձնահատկություններ, ինչպիսիք են մասշտաբային CMS-ը բազմակողմանի աջակցությամբ, բազմալեզու տեղադրումներով, անվտանգության ուժեղ ներդրմամբ, ահավոր արագությամբ և կարող է գործարկվել ցանկացած վայրում:
TYPO3 CMS-ի օգտագործումը թույլ է տալիս ստեղծել ճկուն և հուսալի կայքեր: TYPO3 CMS-ը կենսունակ մասնագիտական համայնք է: Եվ ըստ դիզայնի, TYPO3 CMS-ը խցանվող բովանդակության կառավարման համակարգ է՝ հարմարվող և անջատված ճարտարապետությամբ:
Այս ուղեցույցում ես քայլ առ քայլ ցույց կտամ ձեզ, թե ինչպես տեղադրել TYPO3 CMS-ը AlmaLinux 9-ի վրա: Մենք կտեղադրենք TYPO3 CMS-ը Nginx վեբ սերվերի, MariaDB տվյալների բազայի սերվերի և PHP-FPM-ի հետ:
Նախադրյալներ
Շարունակելուց առաջ համոզվեք, որ ունեք հետևյալը.
- AlmaLinux 9 սերվեր - Այս օրինակը օգտագործում է սերվեր almalinux9 անունով:
- Ոչ արմատային օգտատեր՝ sudo root արտոնություններով:
- Դոմենի անուն, որը մատնանշված է սերվերի IP հասցեին:
Կախվածությունների տեղադրում
Հետևյալ քայլերում դուք կտեղադրեք փաթեթի կախվածությունը TYPO3 CMS-ի համար, ներառյալ՝
- Nginx: Որպես վեբ սերվեր:
- MariaDB: Որպես տվյալների բազայի սերվեր:
- PHP-FPM. Այս օրինակը կօգտագործի PHP 8.1 TYPO3 CMS-ի համար:
- Կոմպոզիտոր. PHP հավելվածի կախվածության կառավարում:
Հիմա եկեք սկսենք:
Նախ գործարկեք հետևյալ հրամանը՝ ձեր համակարգին EPEL և Remi պահեստները ավելացնելու համար: Remi պահոցը տրամադրում է PHP փաթեթների մի քանի տարբերակներ և որոշ լրացուցիչ PHP ընդլայնումներ, որոնք հասանելի չեն կանխադրված հավելվածների հոսքի պահոցում:
sudo dnf epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Տեղադրումը հաստատելու համար մուտքագրեք y և սեղմեք ENTER:
EPEL պահեստի ավելացում:
RHEL 9-ի համար PHP Remi պահեստի ավելացում:
Այժմ գործարկեք հետևյալ հրամանը՝ PHP պահեստի լռելյայն մոդուլը վերականգնելու և Remi պահոցից PHP 8.1 մոդուլը միացնելու համար:
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
Հաջորդը, գործարկեք ներքևում գտնվող dnf հրամանը՝ TYPO3 CMS-ի համար փաթեթային կախվածությունները տեղադրելու համար: Երբ ձեզ հուշում են, մուտքագրեք y՝ հաստատելու համար, այնուհետև սեղմեք ENTER:
sudo dnf install nginx mariadb-server composer ImageMagick php-fpm php-mysqlnd php-gd php-curl php-json php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap
Կախվածությունները տեղադրելուց հետո գործարկեք systemctl հրամանը ստորև՝ սկսելու և միացնելու հիմնական ծառայությունները, ինչպիսիք են Nginx, MariaDB և PHP-FPM:
sudo systemctl enable --now nginx mariadb php-fpm
Այնուհետև ստուգեք ծառայությունները՝ օգտագործելով հետևյալ հրամանը՝ համոզվելու, որ այդ բոլոր ծառայություններն աշխատում են:
sudo systemctl status nginx mariadb php-fpm
Եթե ծառայությունն աշխատում է, դուք պետք է տեսնեք ակտիվ (աշխատող) ելքը: Ստորև բերված օրինակը ցույց է տալիս, որ Nginx ծառայությունն աշխատում է:
Ի վերջո, գործարկեք հետևյալ հրամանը՝ համոզվելու, որ Composer-ը տեղադրված է և ստուգեք դրա տարբերակը:
sudo -u nginx composer -V
Այս գրելու պահին Composer v2.5.5 տեղադրված է EPEL պահեստի միջոցով:
Firewall-ի կարգավորում
Փաթեթի կախվածությունները տեղադրելուց հետո հաջորդ քայլը firewalld-ի տեղադրումն է և դրա վերևում բացել ինչպես HTTP, այնպես էլ HTTPS արձանագրությունները:
Գործարկեք ներքևում գտնվող firewall-cmd հրամանը՝ և՛ HTTP, և՛ HTTPS ծառայությունները բացելու համար: Այնուհետև վերաբեռնեք firewall-ը՝ փոփոխությունները կիրառելու համար:
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
Այժմ ստուգեք բաց նավահանգիստների և ծառայությունների ցանկը firewalld-ում՝ օգտագործելով հետևյալ հրամանը.
sudo firewall-cmd --list-all
Ծառայությունների բաժնում դուք պետք է տեսնեք, որ և՛ HTTP, և՛ HTTPS միացված են:
MariaDB սերվերի կարգավորում
Հետևյալ բաժնում դուք կապահովեք MariaDB սերվերը և կստեղծեք նոր տվյալների բազա և օգտվող, որը կօգտագործվի TYPO3 CMS-ի տեղադրման համար:
Նախ գործարկեք mariadb-secure-installation հրամանը՝ ձեր MariaDB-ի տեղադրումն ապահովելու համար:
sudo mariadb-secure-installation
Ողջ գործընթացում ձեզ կառաջարկվի MariaDB սերվերի կոնֆիգուրացիաներ: Քայլը հաստատելու համար մուտքագրեք Y:
- Փոխե՞լ MariaDB արմատային վավերացումը unix_socket-ի: Մուտք n.
- Կարգավորե՞լ MariaDB արմատային գաղտնաբառը: Մուտքագրեք y, ապա մուտքագրեք նոր գաղտնաբառը և կրկնեք:
- Անջատե՞լ հեռակա մուտքը արմատային օգտվողի համար: Ինպու յ.
- Հեռացնե՞լ տվյալների բազայի կանխադրված փորձարկումը: Նորից մուտքագրեք y:
- Հեռացնե՞լ կանխադրված անանուն օգտվողին: Հաստատելու համար մուտքագրեք y:
- Վերբեռնե՞լ աղյուսակի արտոնությունները՝ փոփոխությունները կիրառելու համար: Մուտքագրեք y.
Երբ MariaDB-ն ապահովված է, մուտք գործեք MariaDB՝ օգտագործելով ստորև նշված mariadb հրամանը: Երբ ձեզ հուշում են գաղտնաբառը, մուտքագրեք ձեր MariaDB արմատային գաղտնաբառը:
sudo mariadb -u root -p
MariaDB մուտք գործելուց հետո կատարեք հետևյալ հարցումները՝ ստեղծելու նոր տվյալների բազա typo3db, typo3 օգտվող և typo3password գաղտնաբառը:
CREATE DATABASE typo3db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON typo3db.* to typo3@localhost IDENTIFIED BY 'typo3password';
FLUSH PRIVILEGES;
Այնուհետև կատարեք հետևյալ հարցումը՝ ստուգելու MariaDB օգտվողի արտոնությունը typo3 և համոզվելու, որ օգտվողը կարող է մուտք գործել տվյալների բազա typo3db:
SHOW GRANTS FOR typo3@localhost;
Ելքում դուք պետք է, որ MariaDB օգտվողը typo3 կարողանա մուտք գործել տվյալների բազա typo3db:
MariaDB սերվերից դուրս գալու համար մուտքագրեք quit և ավարտեք քայլը:
PHP-FPM-ի կարգավորում
MariaDB սերվերի կազմաձևման դեպքում հաջորդ քայլը PHP-FPM տեղադրման կարգավորումն է: Դուք կինտեգրեք PHP-FPM տեղադրումը Nginx վեբ սերվերի հետ:
Նախ, գործարկեք հետևյալ հրամանը՝ ձեր համակարգի լռելյայն ժամային գոտին կարգավորելու համար:
sudo timedatectl set-timezone Europe/Stockholm
Այժմ բացեք PHP կոնֆիգուրացիան /etc/php.ini՝ օգտագործելով vim editor հրամանը:
sudo vim /etc/php.ini
Մեկնաբանեք date.timezone պարամետրը և փոխեք արժեքը համապատասխան ժամային գոտիով:
date.timezone = Europe/Stockholm
Բարձրացրեք և միացրեք PHP-ի նման որոշ պարամետրեր: memory_limit պարամետրի համար հարմարեցրեք այն ձեր ընթացիկ հիշողության հետ:
memory_limit = 512M
max_execution_time = 300
max_input_vars = 2000
Այժմ ավելացրեք post_max_size և upload_max_filesize պարամետրերը մինչև 30MB:
post_max_size = 30M
upload_max_filesize = 30M
Պահպանեք ֆայլը և ավարտին հասցրեք խմբագրիչը:
Հաջորդը, բացեք PHP-FPM լողավազանի կոնֆիգուրացիան /etc/php-fpm.d/www.conf՝ օգտագործելով vim խմբագրիչը:
sudo vim /etc/php-fpm.d/www.conf
Օգտագործողի և խմբի պարամետրի լռելյայն արժեքը փոխեք nginx-ի այսպես.
user = nginx
group = nginx
Պահպանեք ֆայլը և դուրս եկեք խմբագրիչից:
Այժմ գործարկեք հետևյալ հրամանը՝ PHP-FPM ծառայությունը վերագործարկելու և փոփոխությունները կիրառելու համար։ Այնուհետև ստուգեք PHP-FPM-ը՝ համոզվելու, որ այն աշխատում է:
sudo systemctl restart php-fpm
sudo systemctl status php-fpm
Եթե աշխատում է, դուք պետք է ստանաք այսպիսի արդյունք.
Ավելին, դուք կարող եք նաև ստուգել PHP-FPM-ը՝ ստուգելով PHP-FPM-ի լռելյայն վարդակից ֆայլը, որը /run/php-fpm/www.sock է: Գործարկեք ստորև բերված ss հրամանը, որպեսզի ստանաք ձեր համակարգի հասանելի վարդակների ցանկը և զտեք ելքը՝ ցուցադրելու համար միայն www.sock:
ss -pl | grep www.sock
Եթե PHP-FPM-ն աշխատում է, դուք պետք է տեսնեք, որ լռելյայն PHP-FPM վարդակից ֆայլը /run/php-fpm/www.sock հասանելի է այսպես.
Ներբեռնվում է TYPO3 CMS
TYPO3 CMS-ը կարող է տեղադրվել բազմաթիվ եղանակներով, և այս ցուցադրության համար դուք կտեղադրեք TYPO3 CMS-ը Composer փաթեթի կառավարչի միջոցով:
Գործարկեք հետևյալ հրամանը՝ նոր գրացուցակ ստեղծելու համար /var/www/typo3: Սա կօգտագործվի որպես թիրախային գրացուցակ TYPO3 CMS-ի տեղադրման համար
mkdir -p /var/www/typo3
Այնուհետև գործարկեք ստորև հրամանը՝ գրացուցակի /var/www/typo3 սեփականությունը nginx օգտվողին փոխելու և այդ գրացուցակի սեփականատիրոջ համար կարդալու և գրելու հասանելիությունն ապահովելու համար:
sudo chown -R nginx:nginx /var/www/typo3
sudo chmod u+rw /var/www/typo3
Այժմ անցեք /var/www/typo3 գրացուցակ և գործարկեք ներքևում գտնվող Composer հրամանը՝ TYPO3 CMS աղբյուրը ներբեռնելու համար:
cd /var/www/typo3
sudo -u nginx composer create-project typo3/cms-base-distribution:^12 .
Երբ տեղադրումն աշխատում է, դուք պետք է տեսնեք գործընթացը այսպես.
TYPO3-ը ներբեռնելուց հետո գործարկեք հետևյալ հրամանը՝ /var/www/typo3-ում ֆայլերի և դիրեկտորիաների ցանկը ստուգելու համար:
ls -lah /var/www/typo3
Դուք պետք է տեսնեք նմանատիպ ֆայլեր և գրացուցակներ, ինչպիսիք են.
Վերջապես, գործարկեք TYPO3 CMS երկուական ֆայլը` կազմաձևումը սկսելու համար, և ձեզ կառաջարկվեն որոշ կոնֆիգուրացիաներ:
sudo -u nginx ./vendor/bin/typo3 setup
Ձեզ կհարցնեն TYPO3 CMS-ի որոշ կոնֆիգուրացիաներ:
- Մուտքագրեք տվյալների բազայի դրայվերը mysqli:
- Մուտքագրեք տվյալների բազայի օգտատերը, գաղտնաբառը, նավահանգիստը և հյուրընկալողը:
- Այժմ մուտքագրեք տվյալների բազայի անունը, որը կօգտագործվի TYPO3 CMS-ի համար: Այս օրինակում տվյալների բազայի անունը typo3db է:
- Մուտքագրեք նոր ադմինիստրատորի օգտվողը, էլփոստը և գաղտնաբառը TYPO3 CMS-ի համար:
- Ծրագրի անվան և կայքի հիմնական URL-ի համար սեղմեք ENTER՝ այն որպես լռելյայն թողնելու համար:
Երբ TYPO3 CMS-ի կազմաձևումն ավարտվի, դուք պետք է տեսնեք «Շնորհավորում ենք - TYPO3-ի կարգավորումն ավարտված է» հաղորդագրությունը:
Nginx սերվերի բլոկի կարգավորում TYPO3 CMS-ի համար
TYPO3 CMS-ը տեղադրելուց և կազմաձևելուց հետո դուք կստեղծեք Nginx սերվերի բլոկը TYPO3 CMS-ի համար: Նախքան սկսելը, համոզվեք, որ տիրույթի անունը մատնանշված է ձեր սերվերի IP հասցեին:
Ստեղծեք նոր Nginx սերվերի բլոկի կոնֆիգուրացիա/etc/nginx/conf.d/typo3.conf օգտագործելով vim:
sudo vim /etc/nginx/conf.d/typo3.conf
Տեղադրեք հետևյալ կոնֆիգուրացիան և համոզվեք, որ փոխեք թիրախային տիրույթի անունը server_name պարամետրում:
server {
listen 80;
server_name typo3.howtoforge.local;
root /var/www/typo3/public;
index index.php;
# Load configuration typo3.conf.
include /etc/nginx/default.d/typo3-nginx.conf;
}
Ավարտելուց հետո պահպանեք և դուրս եկեք ֆայլից:
Հաջորդը, ստեղծեք մեկ այլ կոնֆիգուրացիա /etc/nginx/default.d/typo3-nginx.conf՝ օգտագործելով ստորև բերված vim հրամանը:
sudo vim /etc/nginx/default.d/typo3-nginx.conf
Տեղադրեք հետևյալ կոնֆիգուրացիան ֆայլի մեջ. Սա Nginx-ի հիմնական կոնֆիգուրացիան է TYPO3 CMS-ի համար:
# Compressing resource files will save bandwidth and so improve loading speed, especially for users
# with slower internet connections. TYPO3 can compress the .js and .css files for you.
# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
# config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
location ~ \.js\.gzip$ {
add_header Content-Encoding gzip;
gzip off;
types { text/javascript gzip; }
}
location ~ \.css\.gzip$ {
add_header Content-Encoding gzip;
gzip off;
types { text/css gzip; }
}
# TYPO3 - Rule for versioned static files, configured through:
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
if (!-e $request_filename) {
rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
}
# TYPO3 - Block access to composer files
location ~* composer\.(?:json|lock) {
deny all;
}
# TYPO3 - Block access to flexform files
location ~* flexform[^.]*\.xml {
deny all;
}
# TYPO3 - Block access to language files
location ~* locallang[^.]*\.(?:xml|xlf)$ {
deny all;
}
# TYPO3 - Block access to static typoscript files
location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt {
deny all;
}
# TYPO3 - Block access to miscellaneous protected files
location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ {
deny all;
}
# TYPO3 - Block access to recycler and temporary directories
location ~ _(?:recycler|temp)_/ {
deny all;
}
# TYPO3 - Block access to configuration files stored in fileadmin
location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ {
deny all;
}
# TYPO3 - Block access to libraries, source and temporary compiled data
location ~ ^(?:vendor|typo3_src|typo3temp/var) {
deny all;
}
# TYPO3 - Block access to protected extension directories
location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ {
deny all;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location = /typo3 {
rewrite ^ /typo3/;
}
location /typo3/ {
absolute_redirect off;
try_files $uri /typo3/index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
fastcgi_connect_timeout 240s;
fastcgi_read_timeout 240s;
fastcgi_send_timeout 240s;
# this is the PHP-FPM upstream - see also: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Այժմ գործարկեք հետևյալ հրամանը՝ համոզվելու համար, որ ունեք Nginx-ի պատշաճ կազմաձևը: Այնուհետև վերագործարկեք Nginx ծառայությունը՝ փոփոխությունները կիրառելու համար:
sudo nginx -t
sudo systemctl restart nginx
Հրամանի կատարումից հետո դուք պետք է ստանաք «շարահյուսություն ok - փորձարկումը հաջողված է» արդյունքը, և ձեր TYPOC3 CMS տեղադրումը պետք է հասանելի լինի:
TYPO3 CMS-ի ապահովում SSL/TLS-ով
Հետևյալ բաժնում դուք կապահովեք ձեր TYPO3 CMS տեղադրումը SSL/TLS վկայագրերով, որոնք կստեղծվեն Letsencrypt-ից: Դրան հասնելու համար դուք պետք է տեղադրեք Certbot-ը ձեր համակարգում:
Գործարկեք ստորև բերված dnf հրամանը՝ Certbot-ը և Nginx-ի Certbot հավելվածը տեղադրելու համար: Տեղադրումը հաստատելու համար մուտքագրեք y, ապա սեղմեք ENTER:
sudo dnf install certbot python3-certbot-nginx
Այժմ գործարկեք հետևյալ հրամանը՝ Letsencrypt-ից TYPO3 CMS-ի համար նոր SSL վկայագրեր ստեղծելու համար: Համոզվեք, որ փոխեք տիրույթի անունը և էլփոստի հասցեն:
sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email alice@howtoforge.local -d typo3.howtoforge.local
Եթե գործընթացը սահուն է ընթանում, նոր SSL վկայականները կստեղծվեն /etc/letsencrypt/live/typo3.howtoforge.local գրացուցակում: Նաև TYPO3 CMS-ի սերվերի բլոկի կազմաձևումը ավտոմատ կերպով կկազմաձևվի SSL-ի միջոցով, որը միացված է certbot-ի միջոցով:
Գործարկեք ձեր վեբ զննարկիչը և այցելեք TYPO3 CMS տեղադրման հասցեն (այսինքն՝ https://typo3.howtoforge.local/): Դուք պետք է ստանաք TYPO3 CMS-ի մուտքի էկրանը:
Մուտքագրեք ձեր ստեղծած ադմինիստրատորի օգտատերը և գաղտնաբառը, այնուհետև սեղմեք Մուտք:
Եթե ունեք ճիշտ ադմինիստրատորի օգտատեր և գաղտնաբառ, ձեզ պետք է ցուցադրվի TYPO3 CMS ադմինիստրատորի վահանակը հետևյալ կերպ.
Վերևի աջ ընտրացանկում սեղմեք տեղեկատվության պատկերակը և դուք պետք է ստանաք ծրագրաշարի փաթեթների մանրամասները, որոնք ներկայումս օգտագործում եք TYPO3 CMS-ի տեղադրման համար: Այս ցուցադրությունում TYPO3 CMS-ի տեղադրված տարբերակը v12 է Nginx վեբ սերվերով, MariaDB տվյալների բազայի սերվերով և PHP-FPM 8.1:
Եզրակացություն
Դուք ամեն ինչ պատրաստ եք: Դուք ավարտել եք TYPO3 CMS-ի տեղադրումը ձեր AlmaLinux 9 սերվերի վրա MariaDB տվյալների բազայի սերվերի, PHP-FPM-ի և Nginx վեբ սերվերի միջոցով: Դուք նաև ապահովել եք ձեր տեղակայումը Letsencrypt-ից SSL/TLS վկայագրերի միջոցով: Սա նկատի ունենալով, այժմ կարող եք ստեղծել նոր կայք TYPO3 CMS-ի միջոցով: