[для новичков]nginx+php+mysql

CyberWarning

Проверенные
Сообщения
102
Реакции
74
Баллы
3,330
Всем привет ! Для тех у кого archlinux - устанавливаем и настраиваем сервак для тестов да и вообще по статике
Для начала обновим систему pacman -Syyuu ,если обнов нету ,то приступаем к установке

Код:
 pacman -S nginx

Теперь запустим

Код:
 systemctl start nginx

Сделаем доступным при загрузке

Код:
 systemctl enable nginx

Проверим статус

Код:
systemctl status nginx

Если все впорядке ,выходим из консоли ctrl+c

Приступаем к установке mysql

Код:
 pacman -S mysql

Нажимаем enter и ждем окончания установки
Далее подключим директивы

Код:
 mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Запускаем

Код:
 systemctl enable mysqld

Стартуем

Код:
 systemctl start mysqld

Если все впорядке ,то выходим из консоли ctrl+c
Зададим пароль для нашего mysql-a root -p

Код:
mysql_secure_installation

Нажимайте enter ,задаете новый пароль и далее везде соглашаетесь нажать ENTER - после чего установка будет завершена
Чтобы сервер начал идельно работать ,установим следующее

Код:
 pacman -S php-fpm php-gd

После установки идем в

Код:
 nano /etc/nginx/nginx.conf

Так же не забываем добавить index.php

Код:
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$uri&$args;

ЧПУ для ВАС уже так же готов

И так же правим

Код:
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /usr/share/nginx/html;
include fastcgi.conf;
}

Надеюсь ВАМ обьяснять не нужно что и куда прописать

Теперь запустим наш php

Код:
 systemctl start php-fpm

Сделаем доступным

Код:
 systemctl enable php-fpm

Далее идем в
Код:
 nano /etc/php/php.ini

и раскоментим следующие строки

Код:
extension=bz2
extension=curl
extension=exif
extension=gd
extension=iconv
extension=mysqli
extension=pdo_mysql
extension=zip
extension=imagic

Если вы все сделали правильно ,нажимаем ctrl+c and ctrl+x

И перезапускаемся

Код:
 systemctl restart nginx
Код:
 systemctl restart php-fpm

На этом все ! Если вы сделали все верно ,проверяем доступ к mysql
Введем команду mysql -u root -p ,если все ок ,то создаем БД CREATE blackarch например смотрим список бд командой
show databases;

Будут вопросы ,пишите ! Информацию буду дополнять
 
Последнее редактирование:
Обычно новички ставят Дебиан, Убунту или Центось, но никак не Арч...
 
Продолжаем

создадим резервную копию файла nginx.conf

Код:
 sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

создадим новый файл:

Код:
sudo nano /etc/nginx/nginx.conf

И сделаем следующее

Код:
#user html;

worker_processes 2;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;

#tcp_nopush on;
#keepalive_timeout 0;

keepalive_timeout 65;

gzip on;

types_hash_max_size 4096;

server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
charset utf-8;
location / {
index index.php index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}


location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}

location ~ /\.ht {
deny all;
}
}
}

Сохраним наше творение и перезапустимся

Код:
systemctl restart php-fpm
systemctl restart nginx

Если все работает ,то делаем автозагрузку

Код:
systemctl enable php-fpm
systemctl enable nginx
systemctl enable mysqld

Далее добавим инклуд

Код:
sudo nano /etc/nginx/nginx.conf

И добавляем после location

Код:
location ~ /\.ht {
deny all;
}
}
include /etc/nginx/sites-enabled/*.conf;
}

Теперь создадим директиву где будут хранится наши конфиги

Код:
 sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

Создаем новый аиртуальный хост

Код:
sudo nano /etc/nginx/sites-available/name-ip.conf


Код:
server {
listen 80;
server_name ваш IP;
access_log /var/log/nginx/ваш IP.access.log;
error_log /var/log/nginx/ваш IP.error.log;
root /srv/http;

location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}


location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}

И на последок создадим директорию для нашего будушего сайта

Код:
sudo mkdir /srv/http/
sudo ln -s /etc/nginx/sites-available/name-ip.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

На этом все ! Информацию буду дополнять
 
Последнее редактирование модератором:
PS скрины с моего борда не стал добавлять ! Будут вопросы ,пишите !
 
Последнее редактирование:
Следующий этап ,установка letsencrypt
 
Последнее редактирование:
Давайте честно: зачем это закомментировано?
потому что автор не понял причину не рабочего веб-сервера, ведь user html юзать для nginx слишком нестандартно, а сам юзер html по дефолту не существует
когда что-то не понятно - просто удаляй!

хехе, на самом деле, а для кого вообще делаются такие ос как арчилинукс и тд?
 
Qua, вообще-то, в Arch Linux как раз используется под нужды веб сервера http. Вы если не знаете, как дела обстоят в том или ином дистрибутиве - не говорите.
Дистрибутивы делаются на выбор. У каждого свои преимущества. У Арча, например, если ставить полностью с нуля и самостоятельно, то лишних пакетов не будет. В итоге выйдет очень маленькая по размеру система.
У меня у самого на домашнем компьютере и ноутбуке установлен Arch, и я доволен.
 
вообще-то, в Arch Linux как раз используется под нужды веб сервера http. Вы если не знаете, как дела обстоят в том или ином дистрибутиве - не говорите.
Каюсь, даже не мог предположить, что разрабы ОС будут заниматься такой бессмыслецей, как назначение новых стандартов внутри своей ОС, да и еще охарактеризовывая предназначение юзера для веб-сервера форматом файла html
 
да и еще охарактеризовывая предназначение юзера для веб-сервера форматом файла html
karikatura-chush_(ruslan-valitov)_22994.gif

У Арча, например, если ставить полностью с нуля и самостоятельно, то лишних пакетов не будет. В итоге выйдет очень маленькая по размеру система.
Только вчера об этом разговаривали. Ты пока запилишь под себя ось (в человеко-часах), я успею поставить что-то другое, возможно проприетарное, и буду работать. Причем время на разворачивание просто несоизмеримо, а время, как известно - деньги.
 
Последнее редактирование модератором:
karikatura-chush_-ruslan-valitov-_22994-gif.92887
давай простым языком: когда я создаю юзера - я чаще всего называю его так, чтобы по названию мне было понятно для чего он.
Создаю юзера для nginx - называю его nginx или www-data.
Создаю юзера для сайта xenforo.info - назову его xf/xfinfo

к счастью или сожалению, у меня юзер html не ассоциируется ни с nginx, ни с apache2 и я счел, что автор сам до этого додумался/скопировал статью где-то и сам не понял, что означает строчка в конфиге, следствием чего он решил ее закомментировать (?) и сейчас у него веб-сервер, по идеи, работает через root (?).

Надеюсь доходчиво!

Только вчера об этом разговаривали. Ты пока запилишь под себя ось (в человеко-часах), я успею поставить что-то другое, возможно проприетарное, и буду работать. Причем время на разворачивание просто несоизмеримо, а время, как известно - деньги.
По такой логике вместо того, чтобы чему-то учиться, вникать и разбираться проще юзать все готовое. Не буду рассказывать на сколько это не логично, полагаю что вы просто устали и этим сообщением хотели расслабиться, обсуждая лайтовую тему ; )

Ведь я вас еще помню умным человеком, который не раз помогал мне с проблемами, за что спасибо! Ноо, что-то вы чуть начинаете сдавать
 
Последнее редактирование модератором:
давай простым языком:
1. html - не формат файла (а это вообще что такое?), а протокол.
2. за это отвечает пакетмейкер, на вопрос что курили. Это во фряхе все стройно, консервативно и лаконично, а тут кто куда.
3. что так работает, смотрим в init/systemd-файлах.
4. есть устоявшаяся терминология, методика, нефиг нести отмебятину. Вот как в форумах - нет смс, есть личные сообщения.
5. nginx и так под рутом стартует, ему 80/443-й порт нужен. а дальше он буде форкать себя под пользователем, который либо назначен в конфиге, либо если в конфиге не найдет, форкнет под пользователем, который задан при компилировании (например --user=nginx --group=nginx).
6. а беда в том, что вот как раз те мануалы, где это все описано, вы и не читаете.

По такой логике вместо того, чтобы чему-то учиться, вникать и разбираться проще юзать все готовое.
Нет. по моей логике не разобравшись с матчастью - нехер учить других, это касалось ТС. А разобраться - это 2-4 часа времени.
Что касательно выбора дистрибутива - это уже интимная тема, кто с кем секс предпочитает. Я вот с женой, а кому-то экшен с арчем нравится. Все дело в конечном результате.
 
1. html - не формат файла (а это вообще что такое?), а протокол.
Как не загуглю - ни слова про html протокол не нашел. Вы же прекрасно понимаете, что я подразумеваю самое очевидное: расширение файла .html, что понятно для большинства пользователей интернета.
Можно конечно углубляться и искать глубокий смысл, но зачем мне это при создании юзера для веб-сервера?
2,3,4 пункт не понял к чему и о чем.
5. nginx и так под рутом стартует, ему 80/443-й порт нужен. а дальше он буде форкать себя под пользователем, который либо назначен в конфиге, либо если в конфиге не найдет, форкнет под пользователем, который задан при компилировании (например --user=nginx --group=nginx).
Спасибо за открытую деталь, я предпочитаю указывать юзера в конфиге и не сталкивался с проблемами, чтобы разбираться в таких подробностях.
6. а беда в том, что вот как раз те мануалы, где это все описано, вы и не читаете.
Жизнь короткая - все не прочитать! Извлекаю самое необходимое из найденного
Нет. по моей логике не разобравшись с матчастью - нехер учить других, это касалось ТС. А разобраться - это 2-4 часа времени.
Что касательно выбора дистрибутива - это уже интимная тема, кто с кем секс предпочитает. Я вот с женой, а кому-то экшен с арчем нравится. Все дело в конечном результате.
Только вчера об этом разговаривали. Ты пока запилишь под себя ось (в человеко-часах), я успею поставить что-то другое, возможно проприетарное, и буду работать. Причем время на разворачивание просто несоизмеримо, а время, как известно - деньги.
если говорить на чистоту, то вы тоже не корректно ответили ; )
Какой бы дистрибутив вы не выбирали, суть в том что всегда и везде нужно настраивать под себя.
Можете конечно брать все готовое (Debian LAMP или юзать панельки по типу ISPmgr, VestaCP) и радоваться сэкономленному времени, а потом тратить время/силы/ресурсы на восстановление ущерба после взлома VestaCP (ваша вроде бы статья была).

Меньше окон в доме - меньше рисков, что пролезут в дом через окна. Зачем брать нахламленные дистрибутивы, если в любой из его пакетов потенциально может содержаться дырка?
Но я не сторонник ArcheLinux и даже не разбирался что это. Юзаю центос, регулярно обновляюсь и пока все устраивает!
А вместе с kickstart, ansible все мои трудозатраты-человекочасы окупаются в перспективе.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу