У гэтым артыкуле мы дамо вам пакрокавыя інструкцыі аб тым, як наладзіць вэб-асяроддзе на серверы пад кіраваннем Linux. Перш за ўсё, вам трэба зразумець, што тыповы вэб-сервер складаецца з некалькіх ўзаемадзейнічаючых кампанентаў:
- Сервер HTTP
- інтэрпрэтатар мовы праграмавання
- сістэма кіравання базамі дадзеных (СУБД)
Для кіравання вэб-сайтам вам таксама спатрэбіцца наладзіць сістэму кіравання кантэнтам (CMS), вэб-інтэрфейс для кіравання базай дадзеных і доступ па FTP.
Давайце разгледзім наладжванне вельмі папулярнай канфігурацыі Apache-PHP-MySQL(MariaDB) у Linux. Мы таксама ўсталюем ftp-сервер vsftpd, вэб-інтэрфейс для кіравання базамі дадзеных phpMyAdmin і сістэму кіравання кантэнтам WordPress.
Для пачатку калі ласка заказ VPS сервера or Выдзелены сервер. Напрыклад, мы выкарыстоўвалі віртуальны сервер са статычным IP-адрасам пад кіраваннем Ubuntu Server 18.04. Усе каманды выконваліся карыстальнікам root.
Канфігурацыя сервера HTTP Apache
1. ўстаноўка
apt install apache2
Пасля завяршэння ўстаноўкі адкрыйце браўзер і праверце “http://[IP_адрас_сервера]”
Калі вы бачыце старонку прывітання, падобную на скрыншоце вышэй, гэта азначае, што ваш сервер HTTP працуе.
2. Стварыце тэставую старонку
Каранёвы каталог па змаўчанні для вэб-сайта “/var/www/html”. Тут вы можаце знайсці старонку прывітання, якую вы толькі што бачылі. Давайце створым асобны каталог “/var/www/sites” для віртуальных хастоў і падтэчкі “/var/www/sites/site1” з індэкснай старонкай вашага тэставага сайта.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
У выніку файл “/var/www/sites/site1/index.html” павінен змяшчаць толькі адзін радок HTML-кода:
<H1>Welcome</H1>
3. Канфігурацыя сервера Apache
Файлы канфігурацыі вэб-сайтаў знаходзяцца ў “/etc/apache2/sites-available/” каталог. Давайце створым файл канфігурацыі для новага віртуальнага хаста, узяўшы канфігурацыю па змаўчанні з файла «000-default.conf» у якасці асновы.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
адкрыць файл «site1.conf» і змяніць «DocumentRoot» атрыбут. Пастаўце шлях вашага сайта ў якасці значэння, так што ў нашым выпадку гэта “/var/www/sites/site1”
На гэтым этапе нам не трэба наладжваць адначасовую працу некалькіх вэб-сайтаў, таму мы можам адключыць вэб-сайт па змаўчанні і ўключыць новы сайт. Перазагрузіце канфігурацыю сервера, каб прымяніць змены.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Адкрыйце спасылку “http://[IP_адрас_сервера]” і пераканайцеся, што замест старонкі прывітання па змаўчанні ў нас ёсць новая старонка.
Мы скончылі канфігурацыю нашага HTTP-сервера і можам перайсці да наступнага кроку.
Канфігурацыя FTP-сервера
1. ўстаноўка
Давайце ўсталюем наш FTP-сервер і дадатковы пакет «DB-util», якія нам спатрэбяцца для наладжвання віртуальных карыстальнікаў
apt install vsftpd db-util
2. Стварыце лакальны ўліковы запіс
Сервер vsftpd дазваляе нам вельмі гнутка наладжваць правы доступу. Для нашых задач мы павінны прадаставіць карыстальнікам ftp наступнае:
- поўны доступ да змесціва “/var/www/sites/”;
- адключыць усё, што вышэй “/var/www/”;
- падключэнне да віртуальнага рахунку;
Стварыце лакальны ўліковы запіс «віртуальны» без дазволу на ўваход, але з доступам да хатняй папкі “/var/www/”. Гэты ўліковы запіс будзе выкарыстоўвацца карыстальнікамі ftp для падлучэння да сервера
useradd -d /var/www virtual
«Корань» будзе ўладальнікам “/var/www” тэчка па змаўчанні. Каб карыстальнікі ftp маглі змяняць змесціва вэб-сайтаў, змянім уладальніка “/var/www/sites/” уключаючы падпапкі «віртуальны».
chown -R virtual:root /var/www/sites
У выніку карыстальнік «віртуальны» змогуць убачыць змесціва “/var/www/” і запісаць у “/var/www/sites/” падпапка.
3. канфігурацыя
Асноўная канфігурацыя знаходзіцца ў файле “/etc/vsftpd.conf”, таму давайце адкрыем яго і адрэдагуем наступным чынам:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Стварыце базу даных
Вам спатрэбіцца база дадзеных для захоўвання даных віртуальных уліковых запісаў.
Спачатку давайце створым просты тэкставы файл «users.txt» у хатняй тэчцы і захавайце дадзеныя доступу (лагін і пароль) віртуальных карыстальнікаў у кожным другім радку. Напрыклад, нам спатрэбіцца віртуальны карыстальнік з лагінам «ftp» і пароль «Qwe123». Тады файл будзе выглядаць так:
ftp
Qwe123
Давайце створым базу дадзеных
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Давайце зменім файл PAM па змаўчанні “/etc/pam.d/vsftp” наступным чынам:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Звярніце ўвагу, што шлях ст “pam_userdb.so” бібліятэка можа адрознівацца, але вы можаце змяніць яе пры неабходнасці.
Перазагрузіце сервер vsftpd, каб прымяніць змены.
systemctl restart vsftpd
Мы скончылі настройку FTP-сервера.
Падрабязнасці падключэння:
- ftp://[IP_адрас_сервера]
- лагін: ftp
- пароль: Qwe123
Канфігурацыя PHP сервера
1. Ўстаноўка PHP
Сёння апошняя стабільная версія PHP - гэта php 7.4.5, якая не ўваходзіць у афіцыйныя рэпазітары Ubuntu. Давайце падключым старонні рэпазітар і ўсталюем апошнюю версію PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. праверыць
Каб PHP выконваўся, файл вэб-старонкі павінен мець «.php» пашырэнне. Давайце перайменуем нашу тэставую старонку:
cd /var/www/sites/site1/
mv index.html index.php
Дадайце ў файл наступны радок php “/var/www/sites/site1/index.php”, таму файл павінен выглядаць так:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Захавайце змены і праверце вынік у браўзеры.
Калі вы бачыце вынік функцыі «phpinfo()», інтэрпрэтатар PHP працуе належным чынам. Зараз пяройдзем да наступнага кроку.
Канфігурацыя MySQL (MariaDB).
1. ўстаноўка
Давайце ўсталюем MariaDB і модуль PHP для MySQL, а потым перазагрузім Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Абнавіце тэставую старонку і перайдзіце ў раздзел PDO у табліцы канфігурацыі PHP. Калі вы можаце знайсці раздзел «PDO_mysql», то гэта азначае, што драйвер для Mysql усталяваны правільна.
Затым нам трэба будзе зрабіць першапачатковую канфігурацыю бяспекі MariaDB і ўсталяваць пароль для "Корань" карыстальніка, адключыць аддалены доступ і выдаліць усе ўліковыя запісы гасцей.
mysql_secure_installation
На першым этапе мы павінны ўвайсці ў "корань" пароль карыстальніка для доступу да СУБД або націсніце Enter, калі пароля няма. Паколькі пароль не ўсталяваны для "корань" карыстальнік пасля ўстаноўкі, проста націсніце "Увайсці".
Звярніце ўвагу, што ў MariaDB ужо ёсць уласныя ўліковыя запісы, якія не маюць нічога агульнага з уліковымі запісамі АС. Такім чынам, адзіны карыстальнік, з якім мы маем справу ў MariaDB, гэта "корань".
Пасля гэтага канфігуратар папросіць нас усталяваць пароль для карыстальніка root. Тып "Y" каб пацвердзіць і ўвесці новы пароль. У нашым выпадку гэта так «Qwe123»
адказаць "Y" на ўсе астатнія пытанні да самага канца.
Канфігурацыя зроблена!
Дэталі доступу да MariaDB:
- Лагін: root
- Пароль: Qwe123
Канфігурацыя phpMyAdmin
1. ўстаноўка
Давайце ўсталюем неабходнае пашырэнне для PHP - радок mb.
apt install php-mbstring
У афіцыйным рэпазіторыі ёсць толькі састарэлая версія phpMyAdmin, так што давайце ўсталюем новую ўручную.
Адкрыць афіцыйны сайт праекта “https://www.phpmyadmin.net/» і спампуйце апошні архіў.
Скапіруйце архіў на сервер у “/var/www/sites/” тэчку з дапамогай любога ftp-кліента.
Разархівуйце тэчку і перайменуйце яе ў «phpMyAdmin». Не забудзьцеся ўсталяваць «распакаваць» карыснасць. Вы можаце выдаліць архіў пасля яго разархівавання.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Стварыце наступную тэчку “/var/www/sites/phpMyAdmin/tmp” для часовых файлаў і дазволіць доступ для ўсіх. Калі вы гэтага не зробіце, phpMyAdmin паведаміць аб забароне доступу да часовай папкі.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Стварыце псеўданім
Паколькі phpMyAdmin не з'яўляецца асобным віртуальным хостам і знаходзіцца па-за каранёвым каталогам, давайце наладзім псеўданім.
адкрыць файл “/etc/apache2/mods-available/alias.conf” і дадайце гэты радок:
Alias /pma “/var/www/sites/phpMyAdmin"
у гэтым раздзеле:
<IfModule alias_module>
</IfModule>
Перазагрузіце Apache, каб прымяніць змены.
systemctl reload apache2
Псеўданім усталяваны, таму мы можам атрымаць доступ да phpMyAdmin тут “http://[IP_адрас_сервера]/pma”.
3. Падрыхтуйце базу даных
Паколькі падчас пачатковай канфігурацыі MariaDB мы абмежавалі выкарыстанне карыстальніка root, нам трэба будзе стварыць новы ўліковы запіс з усімі дазволамі, якія будуць выкарыстоўвацца для доступу да phpMyAdmin.
Акрамя таго, для ўключэння дадатковых функцый phpMyAdmin нам спатрэбіцца база дадзеных службы і ўліковы запіс для доступу да яе.
Давайце створым уліковыя запісы
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Калі ласка, звярніце ўвагу, што імя базы дадзеных у другім запыце знаходзіцца ў задняй іскры «… ON `phpmyadmin`.* TO 'pma'@'localhost' IDENTIFICED BY …”,
У выніку ў MariaDB будуць створаны два ўліковыя запісы:
- Лагін: pma, Пароль: Qwe123Поўны доступ, будзе выкарыстоўвацца для ўваходу ў phpMyAdmin
- Лагін: pmaservice, Пароль: Qwe123 Для працы дадатковых функцый патрабуецца ўліковы запіс службы
На наступным этапе мы ўсталюем гэтыя дэталі ў канфігурацыйным файле «config.inc.php».
Затым нам трэба будзе імпартаваць базу дадзеных з файла «phpMyAdmin/sql/create_tables.sql».
Давайце імпартуем яго з дапамогай phpMyAdmin.
Адкрыйце спасылку “http://[IP_адрас_сервера]/pma”
Увядзіце лагін «pma» і пароль «Qwe123»
Да «Імпарт», Націсніце «Выбраць файл» і абярыце файл ”sql/create_tables.sql” у каранёвым каталогу phpMyAdmin. На вашым кампутары павінна быць тэчка «phpMyAdmin» з файламі. Пры неабходнасці разархівуйце яго.
націсніце "Далей" каб пачаць імпарт.
4. канфігурацыя
Давайце скапіруем файл канфігурацыі з шаблону
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Давайце адкрыем файл канфігурацыі “/var/www/sites/phpMyAdmin/config.inc.php” і зрабіце наступныя змены:
Усталюйце для атрыбуту выпадковае значэнне з 32 сімвалаў “$cfg['blowfish_secret']”. Для гэтага выкарыстоўвайце любы генератар пароляў.
Выдаліць каментарыі з усіх радкоў «Параметры захоўвання канфігурацыі phpMyAdmin» і ўсталюйце лагін і пароль уліковага запісу службы MariaDB для «кантролер» і «кантрольны пас» атрыбуты адпаведна. У нашым выпадку гэта так pmaservice і Qwe123.
Захавайце змены.
Дэталі доступу для phpMyadmin:
- http://[server’s_ip_address]/pma/
- Лагін: pma
- Пароль: Qwe123
Як усталяваць і наладзіць WordPress на серверы Linux
1. Пакет WordPress і размяшчэнне файлаў
Перайдзіце на афіцыйны сайт WP "https://ru.wordpress.org/” і спампуйце архіў на лакальны ПК.
Загрузіце архіў на сервер у “/var/www/sites/” тэчку і разархівуйце яе ў «wordpress»Папка.
Скапіруйце змесціва “/var/www/sites/wordpress/” каранёвая тэчка “/var/www/sites/site1/” вэб-сайт.
Паколькі мы скапіравалі файлы праз кансоль з правамі root, давайце зменім уладальніка “/var/www/sites/” тэчка, якая змяшчае змесціва «віртуальны». Гэта неабходна для забеспячэння поўнага доступу для ftp-злучэння праз кліент.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Стварыце базу дадзеных для WordPress
Увайдзіце ў phpMyAdmin і націсніце «Стварыць базу дадзеных». Пакажыце адвольнае імя базы дадзеных, у нашым выпадку «wordpress_db» і націсніце кнопку «Стварыць».
Выберыце новую базу дадзеных у левай частцы і націсніце «Прывілеі»
затым націсніце «Дадаць уліковы запіс карыстальніка».
Увядзіце лагін і пароль (wpservice / Qwe123) у якое адкрылася акне праверце «Даць усе прывілеі ў wordpress_db» і націсніце "Далей"
На наступнай старонцы націсніце «Адмяніць усё» каб скінуць усе прывілеі на ўзроўні базы дадзеных і націсніце "Далей".
3. Канфігурацыя WordPress на серверы Linux
Перайдзіце ў каранёвы каталог вашага сайта і скапіруйце файл канфігурацыі з шаблону
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
адкрыць «wp-config.php» файл і ўвядзіце параметры падлучэння да базы дадзеных, якія мы стварылі на папярэднім этапе, і захавайце змены.
4. Усталюйце CMS WordPress
Адкрыйце наступную спасылку ў браўзеры “http://[IP_адрас_сервера]/wp-admin/install.php”.
Запоўніце ўсе палі і націсніце «Усталяваць WordPress». Усталюйце выпадковае імя карыстальніка і пароль. У нашым выпадку гэта так wpadmin і Qwe123 адпаведна.
Гэтыя звесткі будуць выкарыстоўвацца для доступу да WordPress.
Пасля завяршэння ўстаноўкі адкрыйце спасылку “http://[IP_адрас_сервера]/wp-login.php”, увядзіце дадзеныя доступу і ўвайдзіце ў WordPress.
Вы павінны ўбачыць адзін з шаблонаў WordPress на галоўнай старонцы.
Канфігурацыя скончана.
Дэталі доступу да WordPress:
- http://[server’s_ip_address]/wp-login.php
- Лагін: wpadmin
- Пароль: Qwe123