Поднимаем свой web server за 20 мин на Centos 7
Веб-сервер - это компьютер, на котором хранятся файлы сайтов (HTML-документы, CSS-стили, jаvascript-файлы, различный контент), и который доставляет их на веб-браузер на устройстве конечного пользователя. Также под веб-сервером понимается ПО, с помощью которого контролируется доступ веб-пользователей к размещенным на сервере файлам. Такое ПО называется HTTP-сервером и работает с URL-адресами и HTTP-протоколами. Веб-серверы для публикации сайтов делятся на статические и динамические. Статические веб-серверы (стоки) - это «железо» с установленным на нем ПО для HTTP, которое направляет размещенные файлы в браузер в неизменном виде. В динамических веб-серверах на статические веб-сервера устанавливается дополнительное программное обеспечение, чаще всего сервера приложения и базы данных. В таких серверах исходные файлы изменяются перед отправкой по HTTP. Например, для получения итоговой страницы, которую пользователь будет просматривать в браузере, сервер приложений может заполнить HTML-шаблон данными из базы данных.
Настраиваем свой Веб-сервер на ОС Linux
Установка репозитории
yum -y install epel-release
Обновляем систему
yum update
Применяем обновление
reboot
Устанавливаем вспомогательное приложения
yum -y install mc
yum -y install wget
yum -y install net-tools
Устанавливаем FTP
yum -y install ftp
yum -y install vsftpd
rm -rf /etc/vsftpd/*
mcedit /etc/vsftpd/vsftpd.conf
#*****************************Вставить в vsftpd.conf*************************
# Запуск сервера в режиме службы
listen=YES
# Работа в фоновом режиме
background=YES
# Имя pam сервиса для vsftpd
pam_service_name=vsftpd
# Входящие соединения контроллируются через tcp_wrappers
tcp_wrappers=YES
# Запрещает подключение анонимных пользователей
anonymous_enable=NO
# Каталог, куда будут попадать анонимные пользователи, если они разрешены
#anon_root=/ftp
# Разрешает вход для локальных пользователей
local_enable=YES
# Разрешены команды на запись и изменение
write_enable=YES
# Указывает исходящим с сервера соединениям использовать 20-й порт
connect_from_port_20=YES
# Логирование всех действий на сервере
xferlog_enable=YES
# Путь к лог-файлу
xferlog_file=/var/log/vsftpd.log
# Включение специальных ftp команд, некоторые клиенты без этого могут зависать
async_abor_enable=YES
# Локальные пользователи по-умолчанию не могут выходить за пределы своего домашнего каталога
chroot_local_user=YES
# Разрешить список пользователей, которые могут выходить за пределы домашнего каталога
chroot_list_enable=YES
# Список пользователей, которым разрешен выход из домашнего каталога
chroot_list_file=/etc/vsftpd/chroot_list
# Разрешить запись в корень chroot каталога пользователя
allow_writeable_chroot=YES
# Контроль доступа к серверу через отдельный список пользователей
userlist_enable=YES
# Файл со списками разрешенных к подключению пользователей
userlist_file=/etc/vsftpd/user_list
# Пользователь будет отклонен, если его нет в user_list
userlist_deny=NO
# Директория с настройками пользователей
user_config_dir=/etc/vsftpd/users
# Показывать файлы, начинающиеся с точки
force_dot_files=YES
# Маска прав доступа к создаваемым файлам
local_umask=022
# Порты для пассивного режима работы
pasv_min_port=49000
pasv_max_port=55000
#включить сертификат
#ssl_enable=YES
#allow_anon_ssl=NO
#force_local_data_ssl=NO
#force_local_logins_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
listen=YES
# Работа в фоновом режиме
background=YES
# Имя pam сервиса для vsftpd
pam_service_name=vsftpd
# Входящие соединения контроллируются через tcp_wrappers
tcp_wrappers=YES
# Запрещает подключение анонимных пользователей
anonymous_enable=NO
# Каталог, куда будут попадать анонимные пользователи, если они разрешены
#anon_root=/ftp
# Разрешает вход для локальных пользователей
local_enable=YES
# Разрешены команды на запись и изменение
write_enable=YES
# Указывает исходящим с сервера соединениям использовать 20-й порт
connect_from_port_20=YES
# Логирование всех действий на сервере
xferlog_enable=YES
# Путь к лог-файлу
xferlog_file=/var/log/vsftpd.log
# Включение специальных ftp команд, некоторые клиенты без этого могут зависать
async_abor_enable=YES
# Локальные пользователи по-умолчанию не могут выходить за пределы своего домашнего каталога
chroot_local_user=YES
# Разрешить список пользователей, которые могут выходить за пределы домашнего каталога
chroot_list_enable=YES
# Список пользователей, которым разрешен выход из домашнего каталога
chroot_list_file=/etc/vsftpd/chroot_list
# Разрешить запись в корень chroot каталога пользователя
allow_writeable_chroot=YES
# Контроль доступа к серверу через отдельный список пользователей
userlist_enable=YES
# Файл со списками разрешенных к подключению пользователей
userlist_file=/etc/vsftpd/user_list
# Пользователь будет отклонен, если его нет в user_list
userlist_deny=NO
# Директория с настройками пользователей
user_config_dir=/etc/vsftpd/users
# Показывать файлы, начинающиеся с точки
force_dot_files=YES
# Маска прав доступа к создаваемым файлам
local_umask=022
# Порты для пассивного режима работы
pasv_min_port=49000
pasv_max_port=55000
#включить сертификат
#ssl_enable=YES
#allow_anon_ssl=NO
#force_local_data_ssl=NO
#force_local_logins_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
touch /etc/vsftpd/chroot_list
echo 'root' >> /etc/vsftpd/chroot_list
touch /etc/vsftpd/user_list
echo 'root' >> /etc/vsftpd/user_list
touch /var/log/vsftpd.log && chmod 600 /var/log/vsftpd.log
systemctl start vsftpd && systemctl enable vsftpd
Устанавливаем MySQL/MariaDB
yum -y install mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
New password: ваш пароль (StrongPassword)
Re-enter new password: ваш пароль(StrongPassword)
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Установка Apache + SSL
Set root password? [Y/n] Y
New password: ваш пароль (StrongPassword)
Re-enter new password: ваш пароль(StrongPassword)
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
yum -y install httpd mod_ssl
systemctl start httpd.service && systemctl enable httpd.service
mcedit /etc/httpd/conf.d/welcome.conf
#***********************Заменяем всё в welcome.conf*****************
# This configuration file enables the default "Welcome" page if there
# is no default index page present for the root URL. To disable the
# Welcome page, comment out all the lines below.
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
#<LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /.noindex.html
#</LocationMatch>
#<Directory /usr/share/httpd/noindex>
# AllowOverride None
# Require all granted
#</Directory>
#Alias /.noindex.html /usr/share/httpd/noindex/index.html
#Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
#Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
#Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
#Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
# is no default index page present for the root URL. To disable the
# Welcome page, comment out all the lines below.
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
#<LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /.noindex.html
#</LocationMatch>
#<Directory /usr/share/httpd/noindex>
# AllowOverride None
# Require all granted
#</Directory>
#Alias /.noindex.html /usr/share/httpd/noindex/index.html
#Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
#Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
#Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
#Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
mkdir -p /Название вашей папки хранения сайта("site")/название вашего сайта
mkdir -p /Название вашей папки хранения сайта("site")/название вашего сайта/www
mkdir -p /Название вашей папки хранения сайта("site")/название вашего сайта/logs
chmod -R 777 /Название вашей папки хранения сайта("site")/название вашего сайта/www
touch /etc/httpd/conf.d/название вашего сайта.conf
mcedit /etc/httpd/conf.d/название вашего сайта.conf
#**********************Вставляем в ваш сайт.conf*************************
<VirtualHost название вашего сайта>
ServerName название вашего сайта
ServerAlias www.название вашего сайта
DocumentRoot /Название вашей папки хранения сайта("site")/название вашего сайта/www
<Directory /Название вашей папки хранения сайта("site")/название вашего сайта/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /Название вашей папки хранения сайта("site")/название вашего сайта/logs/error.log
CustomLog /Название вашей папки хранения сайта("site")/название вашего сайта/logs/access.log common
</VirtualHost>
Установка PHP
ServerName название вашего сайта
ServerAlias www.название вашего сайта
DocumentRoot /Название вашей папки хранения сайта("site")/название вашего сайта/www
<Directory /Название вашей папки хранения сайта("site")/название вашего сайта/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /Название вашей папки хранения сайта("site")/название вашего сайта/logs/error.log
CustomLog /Название вашей папки хранения сайта("site")/название вашего сайта/logs/access.log common
</VirtualHost>
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
********выберите какую вам надо версию********************
yum-config-manager --enable remi-php55 [Install PHP 5.5]
yum-config-manager --enable remi-php56 [Install PHP 5.6]
yum-config-manager --enable remi-php72 [Install PHP 7.2]
yum-config-manager --enable remi-php74 [Install PHP 7.4]
yum-config-manager --enable remi-php81 [Install PHP 8.1]
yum-config-manager --enable remi-php55 [Install PHP 5.5]
yum-config-manager --enable remi-php56 [Install PHP 5.6]
yum-config-manager --enable remi-php72 [Install PHP 7.2]
yum-config-manager --enable remi-php74 [Install PHP 7.4]
yum-config-manager --enable remi-php81 [Install PHP 8.1]
yumins -y tall php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-imap
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar zxf ioncube_loaders_lin_x86-64.tar.gz
mv ioncube /usr/local
mcedit /etc/php.ini
************************Заменяем на новые значение в php.ini**************************
realpath_cache_size = 1024k
max_execution_time 128
max_input_time 128
post_max_size 200M
upload_max_filesize 200M
#Вставляем самом внизу зависит от установленой версии PHP
[Zend Modules]
zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_8.1_ts.so
Установка phpmyadmin
max_execution_time 128
max_input_time 128
post_max_size 200M
upload_max_filesize 200M
#Вставляем самом внизу зависит от установленой версии PHP
[Zend Modules]
zend_extension = /usr/local/ioncube/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_8.1_ts.so
yum -y install phpmyadmin
cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig
mcedit /etc/httpd/conf.d/phpMyAdmin.conf
#***************************Заменяем всё в phpMyAdmin.conf***************************
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
Require all granted
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
Require all granted
</Directory>
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/lib/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/frames/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
Устанавливаем Webmin (веб управление сервером) Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
Require all granted
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
Require all granted
</Directory>
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/lib/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/frames/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
mcedit /etc/yum.repos.d/webmin.repo
#*******************************Вставляем значения*********************
[Webmin]
name=Webmin Repo
baseurl=https://download.webmin.com/download/yum
enabled=1
gpgcheck=0
name=Webmin Repo
baseurl=https://download.webmin.com/download/yum
enabled=1
gpgcheck=0
yum -y install webmin
chkconfig webmin on
service webmin start
Применяем все установленные приложения
reboot
- root от