В тази статия ще ви дадем инструкции стъпка по стъпка как да конфигурирате уеб среда на сървър, работещ под Linux. Първо, трябва да разберете, че типичният уеб сървър се състои от няколко взаимодействащи си компонента:
- HTTP сървър
- интерпретатор на език за програмиране
- система за управление на бази данни (СУБД)
За да управлявате уебсайта си, ще трябва да настроите система за управление на съдържанието (CMS), уеб интерфейс за управление на база данни и FTP достъп.
Нека помислим за настройка на много популярна конфигурация Apache-PHP-MySQL(MariaDB) на Linux. Ще инсталираме и vsftpd ftp сървър, 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, ако няма парола. Тъй като няма зададена парола за "корен" потребител след инсталиране, просто натиснете „Enter“.
Моля, обърнете внимание, че в MariaDB вече има собствени акаунти, които нямат нищо общо с акаунтите на OS. Така че единственият потребител, с който работим в MariaDB, е "корен".
След това конфигураторът ще ни помоли да зададем паролата за root потребителя. Тип "Y" за потвърждение и въвеждане на новата парола. В нашия случай е „Qwe123“
Отговор "Y" на всички останали въпроси до самия край.
Конфигурацията е готова!
Подробности за достъп до MariaDB:
- Вход: root
- Парола: Qwe123
конфигурация на phpMyAdmin
1. Инсталация
Нека инсталираме необходимото разширение за PHP - mbstring.
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. Подгответе базата данни
Тъй като ограничихме използването на root потребител по време на първоначалната конфигурация на MariaDB, ще трябва да създадем нов акаунт с всички разрешения, които ще се използват за достъп до 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
Моля, обърнете внимание, че името на базата данни във втората заявка е в обратна искра „… ВКЛ `phpmyadmin`.* ДО 'pma'@'localhost' ИДЕНТИФИЦИРАН ОТ...”,
В резултат на това в 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