summaryrefslogtreecommitdiff
path: root/LINUX/LEMP.md
blob: ed55edca6a63110e01facc560dff214ee26e3691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
`Sudo apt update && sudo`
`apt install nginx`
`sudo ufw app list`
`sudo ufw allow 'Nginx HTTP'`
`sudo ufw status`
`ip addr show`
`hostname -I`
`curl -4 icanhazip.com`

## MySQL :

`sudo apt install mysql-server`
`sudo mysql_secure_installation`

Вам будет задан вопрос, хотите ли вы настроить `**VALIDATE PASSWORD PLUGIN**`**.**  
Ответьте `Y`«да» или что-нибудь еще, чтобы продолжить без включения,

Если вы ответите «да», вам будет предложено выбрать уровень проверки пароля. Имейте в виду, что если вы войдете `2`на самый сильный уровень, вы получите ошибки при попытке установить любой пароль, не содержащий цифр, прописных и строчных букв и специальных символов:

Независимо от того, решили ли вы настроить `**VALIDATE PASSWORD PLUGIN**`, ваш сервер попросит вас выбрать и подтвердить пароль для пользователя **root** MySQL . Его не следует путать с **корнем системы**. Пользователь **root базы данных** — это пользователь-администратор с полными привилегиями в системе базы данных. Несмотря на то, что метод аутентификации по умолчанию для пользователя root MySQL не требует использования пароля, **даже если он установлен**, вам следует определить здесь надежный пароль в качестве дополнительной меры безопасности.

Чтобы ответить на остальные вопросы, нажмите `Y`и ударьте `ENTER`клавишу при каждом подсказке. Это приведет к удалению некоторых анонимных пользователей и тестовой базы данных, отключению удаленного входа в систему с правами root и загрузке этих новых правил, чтобы MySQL немедленно принял внесенные вами изменения.

Когда вы закончите, проверьте, можете ли вы войти в консоль MySQL:

`sudo mysql`
`sudo mysql -**_``_**u root -p**_`


## PHP :

  
'sudo apt install php8.1-fpm php-mysql'
'sudo mkdir /var/www/your_domain'
`sudo chown -R $USER:$USER /var/www/`
`sudo vim /etc/nginx/sites-available/`

`_server {_`
	`_listen 80;_`
	`_server_name your_domain www.your_domain;_`
	`_root /var/www/your_domain;_`
	
	`_index index.html index.htm index.php;_`

  

`_location / {_`
`_try_files $uri $uri/ =404;_`
`_}_`

`_location ~ \.php$ {_`
`_include snippets/fastcgi-php.conf;_`
`_fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;_`
`_}_`

`_location ~ /\.ht {_`
`_deny all;_`
`_}_`

`_}_`

  
`listen` — Определяет, какой порт будет прослушивать Nginx.

`root` — Корень документа, в котором хранятся файлы, обслуживаемые этим веб-сайтом.

`Index` — Определяет, в каком порядке Nginx будет отдавать приоритет индексным файлам для этого веб-сайта. Обычной практикой является перечисление `index.html` файлов с более высоким приоритетом, чем `index.php` у файлов, чтобы можно было быстро настроить целевую страницу обслуживания в приложениях PHP. Вы можете настроить эти параметры, чтобы они лучше соответствовали потребностям вашего приложения.

`server_name` — Определяет, за какие доменные имена и/или IP-адреса должен отвечать этот блок серверов. 
**Укажите в этой директиве доменное имя или общедоступный IP-адрес вашего сервера.**

`Location /` — Первый блок местоположения включает `try_files` директиву, которая проверяет наличие файлов или каталогов, соответствующих запросу URL. Если Nginx не сможет найти подходящий ресурс, он вернет ошибку 404.

`location ~ \.php$` — Этот блок местоположения управляет фактической обработкой PHP, указывая Nginx на `fastcgi-php.conf` файл конфигурации и `php8.1-fpm.sock` файл, который объявляет, какой сокет связан с `php8.1-fpm`.

`location ~ /\.ht` — Последний блок _**location**_ касается `.htaccess` файлов, которые Nginx не обрабатывает. Благодаря добавлению `deny all` директивы, если какие-либо `.htaccess` файлы попадут в корень документа, они не будут доставлены посетителям.


Активируйте свою конфигурацию, связавшись с файлом конфигурации из `sites-enabled` каталога Nginx:

`sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/`

Затем отсоедините файл конфигурации по умолчанию от `/sites-enabled/` каталога:

`sudo unlink /etc/nginx/sites-enabled/default`

`sudo nginx -t`
- проверить конфигурацию`

`sudo systemctl reload nginx`

`nano /var/www//index.html`

`<html>`
`<head>`
`<title>your_domain website</title>`
`</head>`
`<body>`
`<h1>Hello World!</h1>`

`<p>This is the landing page of <strong>your_domain</strong>.</p>`
`</body>`
`</html>`

***/etc/_nginx/nginx.conf***
***nginx -s*** - сигнал

_Где сигнал может быть одним из нижеследующих:_

_**stop** — быстрое завершение_
_**quit** — плавное завершение_
_**reload** — перезагрузка конфигурационного файла_
_**reopen** — переоткрытие лог-файлов_


_Директивы, помещённые в конфигурационном файле вне любого контекста, считаются находящимися в контексте main. Директивы events и http располагаются в контексте main, server — в http, а location — в server._


_В случае если что-то работает не как ожидалось, можно попытаться выяснить причину с помощью файлов access.log и error.log из каталога ==/var/log/nginx ( /usr/local/nginx/logs )==