Поднимаем свой web server за 20 мин на Centos 7 (LAMP)
Веб-сервер - это компьютер, на котором хранятся файлы сайтов (HTML-документы, CSS-стили, jаvascript-файлы, различный контент), и который доставляет их на веб-браузер на устройстве конечного пользователя. Также под веб-сервером понимается ПО, с помощью которого контролируется доступ веб-пользователей к размещенным на сервере файлам. Такое ПО называется HTTP-сервером и работает с URL-адресами и HTTP-протоколами. Веб-серверы для публикации сайтов делятся на статические и динамические. Статические веб-серверы (стоки) - это «железо» с установленным на нем ПО для HTTP, которое направляет размещенные файлы в браузер в неизменном виде. В динамических веб-серверах на статические веб-сервера устанавливается дополнительное программное обеспечение, чаще всего сервера приложения и базы данных. В таких серверах исходные файлы изменяются перед отправкой по HTTP. Например, для получения итоговой страницы, которую пользователь будет просматривать в браузере, сервер приложений может заполнить HTML-шаблон данными из базы данных.
Настраиваем свой Веб-сервер на ОС Linux
С 1 июля 2024 года закончился срок поддержки CentOS 7, а значит – официальные репозитории перестали поддерживаться. sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/CentOS-*.repo
Обновляем систему
yum update
Установка репозитории yum -y install epel-release
Применяем обновление reboot
Устанавливаем вспомогательное приложения yum -y install mc
yum -y install wget
yum -y install bzip2
Устанавливаем MySQL/MariaDB yum -y install mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb && systemctl status 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
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
yum -y install httpd mod_ssl
systemctl start httpd.service && systemctl enable httpd.service && systemctl status 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
Создаём конфигуратор сайта для Apache
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>
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
по умолчанию у вас будит установлен PHP версией 5,4
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]
yum install -y php php-gd php-json php-mysql php-curl php-mbstring php-intl php-mcrypt php-imagick php-xml php-zip php-ldap
Проверяем версию PHP php -v
Загружаем дополнительный модуль для php
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
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
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>
#***********************************************************************************
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>
#***********************************************************************************
Открываем порты на Firewall
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
Применяем все установленные приложения
reboot
- root от