В тази статия ще ви дадем инструкции стъпка по стъпка как да конфигурирате уеб среда на сървър, работещ под Linux. Първо, трябва да разберете, че типичният уеб сървър се състои от няколко взаимодействащи си компонента:
- HTTP сървър
- интерпретатор на език за програмиране
- система за управление на бази данни (СУБД)
За да управлявате уебсайта си, ще трябва да настроите система за управление на съдържанието (CMS), уеб интерфейс за управление на база данни и FTP достъп.
Нека помислим за настройка на много популярна конфигурация Apache-PHP-MySQL(MariaDB) на Linux. Ще инсталираме и vsftpd ftp сървър, phpMyAdmin - уеб интерфейс за управление на база данни и система за управление на съдържание WordPress.
За да започнете, моля, поръчайте VPS сървър или специален сървър . Например, ние използвахме виртуален сървър със статичен 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
„Root“ ще бъде собственикът на папката „/var/www“ по подразбиране. За да могат ftp потребителите да променят съдържанието на уебсайтовете, нека променим собственика на „/var/www/sites/“, включително подпапките на „virtual“.
chown -R virtual:root /var/www/sites
В резултат на това, потребителят „virtual“ ще може да види съдържанието на „/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 и да зададем паролата за потребителя „root“ , да деактивираме отдалечения достъп и да изтрием всички гост акаунти.
mysql_secure_installation
На първата стъпка трябва да въведем паролата на потребителя "root" за достъп до СУБД или да натиснем Enter, ако няма парола. Тъй като след инсталацията няма зададена парола за потребителя "root" , просто натиснете „Enter“.
Моля, обърнете внимание, че в MariaDB вече има свои собствени акаунти, които нямат нищо общо с акаунтите на операционната система. Така че единственият потребител, с когото работим в MariaDB, е "root".
След това конфигураторът ще ни помоли да зададем паролата за root потребителя. Въведете „Y“ , за да потвърдите, и въведете новата парола. В нашия случай това е „Qwe123“.
Отговорете с „Да“ на всички останали въпроси до самия край.
Конфигурацията е готова!
Подробности за достъп до MariaDB:
- Вход: root
- Парола: Qwe123
конфигурация на phpMyAdmin
1. Инсталация
Нека инсталираме необходимото разширение за PHP - mbstring.
apt install php-mbstring
В официалното хранилище има само остаряла версия на phpMyAdmin, така че нека инсталираме новата ръчно.
Отворете официалния уебсайт на проекта „ https://www.phpmyadmin.net/ “ и изтеглете най-новия архив.
Копирайте архива на сървъра в папката „/var/www/sites/“, използвайки произволен ftp клиент.
Разархивирайте папката и я преименувайте на „phpMyAdmin“ . Не забравяйте да инсталирате помощната програма „unzip“ . Можете да изтриете архива, след като го разархивирате.
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
Моля, обърнете внимание, че името на базата данни във втората заявка е в задните sparks „… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED 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 configuration storage settings“ и задайте съответно потребителското име и паролата на сервизния акаунт на MariaDB за атрибутите „controluser“ и „controlpass“ . В нашия случай това са 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/“, включително съдържанието на „virtual“ . Това е необходимо, за да се осигури пълен достъп за 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