Введение
В этом руководстве мы увидим, как установить LEMP (Nginx MySQL PHP) на CentOS 8.
Если вы намерены установить LEMP на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Обновление CentOS 8
Давайте удостоверимся, что система обновлена. Из терминала дайте эту команду:
sudo yum update
Установка Nginx
Устанавливаем репозиторий EPEL:
sudo yum install epel-release
Чтобы установить Nginx из терминала:
sudo yum install nginx
Запустите и включите Nginx при старте системы:
sudo systemctl start nginx
sudo systemctl enable nginx
Конфигурация брандмауэра
Если у вас активен брандмауэр и вы используете программное обеспечение firewalld, используйте следующие команды для включения портов HTTP 80 и HTTPS 443:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
Подключитесь к вашему общедоступному IP-адресу или локальному хосту:
http://localhost
Установка MySQL (mariadb)
Чтобы установить MySQL из терминала, введите следующую команду:
sudo yum install mariadb-server mariadb
Запустите mysql и установите автоматический запуск:
sudo systemctl start mariadb
sudo systemctl enable mariadb.service
Защита MySQL
Из терминала дайте:
sudo mysql_secure_installation
Вам будет предложено ввести пароль пользователя root, просто нажмите Enter, так как пароль изначально отсутствует.
Сразу после того, как вас спросят, хотите ли вы установить его, нажмите «y», затем «yes».
Для следующих шагов рекомендуется нажать «y».
- Удалить анонимных пользователей
- Удаленно отключить root-вход
- Удалить тестовую базу данных
- Обновите новые правила
$ mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...... Success!
- Removing privileges on test database...... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Перезапустите mysql:
sudo systemctl restart mariadb.service
установка PHP
Для установки php введите следующую команду:
sudo yum install php php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring
Откройте файл php.ini:
sudo vi /etc/php.ini
Найдите строку " ;cgi.fix_pathinfo=1 ". Раскомментируйте и измените значение следующим образом:
cgi.fix_pathinfo=0
Откройте файл www.conf:
sudo vi /etc/php-fpm.d/www.conf
Убедитесь, что следующая строка не закомментирована, поэтому без точки с запятой в начале:
listen = /run/php-fpm/www.sock
Найдите и раскомментируйте следующие строки listen.owner и listen.group следующим образом:
listen.owner = nobody
listen.group = nobody
Наконец, измените пользователя и группу следующим образом:
user = nginx
group = nginx
Сохраните и закройте файл.
Запустим PHP-fpm:
sudo systemctl start php-fpm
Включаем php-fpm для автоматического запуска
sudo systemctl enable php-fpm
Конфигурация Nginx
Откройте или создайте файл default.conf:
sudo vi /etc/nginx/conf.d/default.conf
Измените так:
server {
listen 80;
server_name TUO_DOMINIO_OPPURE_IP;
#note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location /{
try_files $uri $uri/=404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Перезапустим Nginx:
sudo systemctl restart nginx
Создадим новый файл:
sudo vi /usr/share/nginx/html/info.php
Добавьте следующие строки:
<?php phpinfo(); ?>
Подключитесь к вашему общедоступному IP-адресу или локальному хосту:
http://localhost/info.php
Установка и базовая настройка веб-сервера Nginx с MySQL и PHP-fpm на CentOS 8 завершена.