Установка и настройка Web-сервера на Cent OS 7 / 8
Небольшая шпаргалка по установке LAMP (с PHP 7.4) на Cent OS.
- 0. Консольный редактор VI
- 1. Установка Apache
- 2. Установка MySQL (MariaDB)
- 3. Установка PHP
- 3. Установка FTP сервера (ProFTPD)
Как пользоваться консольным редактором VI
- Вводим vi filename.txt в терминале
- Для редактирования текста нажимаем i
- Для завершения редактирования нажимаем Esc
- Найти подстроку в файле можно напечатав /строка для поиска
- Перейти к следующему результату поиска – n. Предыдущий результат – N.
- Сохранить :w
- Выйти из редактора :q
- Выйти и сохранить :wq
Установка Apache
1 |
yum -y install httpd |
1 2 |
systemctl enable httpd.service systemctl start httpd.service |
1 |
systemctl status httpd |
1 |
vi /etc/httpd/conf/httpd.conf |
Чтоб включить поддержку .htaccess файла, добавляем в файл конфигурации (в тег <Directory>) строку
AllowOverride All
1 2 |
iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables save |
Для SSL понадобится ещё 443 порт.
1 |
systemctl restart httpd.service |
Настройка Firewall
Если есть проблемы с доступом к 80 порту извне, возможно доступ закрыт файерволлом системы, чтоб это проверить, можно временно отключить файерволл
1 2 |
systemctl stop firewalld systemctl start firewalld |
В некоторых случаях 80 порт закрыт именно в файерволле CentOS, чтоб открыть доступ необходима команда:
1 |
firewall-cmd --add-port=80/tcp |
Если необходимо закрыть порт
1 |
firewall-cmd --remove-port=8080/tcp |
Установка MySQL (MariaDB)
1 |
yum -y install mariadb-server mariadb |
1 2 |
systemctl enable mariadb systemctl start mariadb |
1 |
mysql_secure_installation |
Установка PHP
Для CentOS 7
PHP 5
По умолчанию, если выполнить следующую команду, будет установлен PHP 5.* версии:
1 |
yum -y install php php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml |
Если нужен PHP 7.4
1 2 |
yum search php74 yum search php74 | egrep 'fpm|gd|mysql|memcache' |
1 2 3 |
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php74 yum -y update |
1 |
yum -y --enablerepo=remi-php74 install php php-curl php-mbstring php-mysqlnd php-pdo php-bcmath php-gd php-gmp php-xml |
Для CentOS 8
Если в репозитории yum нет требуемой версии php-7.*, нужно выполнить команду:
1 |
yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm |
1 2 |
yum -y module reset php yum -y module enable php:remi-7.4 |
Далее устанавливаем php 7.4 и необходимые модули
1 |
yum -y install php php-curl php-mbstring php-mysqlnd php-pdo php-bcmath php-gd php-gmp php-xml |
Далее код выполняется независимо от версии centos
1 |
php -v |
1 |
vi /etc/php.ini |
1 |
systemctl restart httpd.service |
Если установлен php-fpm, то его тоже нужно запустить
1 |
systemctl start php-fpm |
1 2 |
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php curl http://localhost/phpinfo.php |
Установка FTP сервера (ProFTPD)
1 |
yum -y install proftpd |
1 |
vi /etc/proftpd.conf |
1 2 3 |
UseIPv6 off IdentLookups off PassivePorts 40900 40999 |
1 2 |
systemctl enable proftpd systemctl start proftpd |
1 |
useradd ftpuser -d /var/www -s /sbin/nologin |
1 |
passwd ftpuser |
1 2 3 |
iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT iptables -I INPUT -p tcp --dport 40900:40999 -j ACCEPT service iptables save |
Исправление неполадок
В некоторых случаях на рабочем сервере включенный SELinux закрывает исходящие соединения для всех php-скриптов, работающих от пользователя apache. Для отключения SELinux необходимо отредактировать файл:
1 |
/etc/sysconfig/selinux |
Необходимо сменить значение SELINUX=disabled, затем перезагрузить сервер командой reboot, либо выполнить команду (для применения изменений ьез перезагрузки):
1 |
setenforce 0 |