Добрый день!
Данная записка более чем напоминание о том, что не забыть при установке и настройке VDS Nginx + php7.0-fpm +MySQL для Inst2.
В чем плюсы:
Быстрая отдача контента статичного, выполнение скриптов отдельным процессом не вызывая Apache и под конкретным пользователем.
Все свои сайта запустить на одном сервере.
Минусы: реализовать можно на своем сервере или арендуемом с правами рута.
Расширять кругозор всегда интересно. Ранее я всегда запускал сервисы только на рекомендуемых платформах. Да это стабильно и при желании получить то, что задумал разраб это правило.
А вот для расширения кругозора и улучшения навыка решения проблем, я выбираю не стандартные решения.
Но отступил от описания и приступил к делу:
1. Установив образ Ubuntu 16 Server. Рекомендую брать 64-битные системы, они лучше заточены на выполнение больших объемов.
2) Логинимся под root
3. Для удобства редактирования и ползания по папках рекомендую редактор MC
ставим его
Я думаю вы уже в курсе что команда ap-get install под рутом дает нам возможность установить с репозиторий нужный пакет.
4. Ставим Nginx
Далее ставим php7.0-fmp. ВНИМАНИЕ!!! на 7 версии еще не все разработчики могут выдать вам перекодированные скрипты в ioncube
Далее ставим сервер MySQL
После нам надо добавить зависимости для php с работой с mysql, а также поддержку функции mb_internal_encoding, иначе будем получать белые страницы вместо выполнения скриптов. А также надо gd .
Ставим поддержку Mysql php
Далее поддержку функции mb_internal_encoding
Для GD делаем
Также нам понадобится php с расширениями zip, memcache, curl
Ставим
Теперь нам надо описать вызов нашего сайта из директории в nginx.
Создаем пользователя с названием сайта.
например sitename
Добавим пароль
\\Если система не предложила создать пароль сразу или если надо поменять пароль пользователя.
Теперь мы увидим, что в папке /home появилась папка sitename
В ней создадим папку www куда будем размещать файлы для сайта.
Для заливки файлов можно использовать либо SFTP или же обычный FTP, но для обычного нам надо установить VSFTP сервис
Установили. Донастроим его.
Открываем в MC файлик по адресу /etc/vsftpd.conf
Редактировать в mc можно нажав кнопку f4.
опускаем в низ конфига и добавляем
Мы включили пассивный режим, он поможет нам заходить на FTP даже если мы сидим дома за роутером без всяких проблем, указали порты, чтоб потом можно было в iptables закрыть все лишнее.
открываем ftp клиент и заливаем под логином и паролем файлы instatncms2.
Далее идем редактировать nginx
Нам нужно создать файл конфиг в раздле /etc/nginx/sites-available
перейдя в нужный раздел нам нужно нажать кнопки Shift+F4 тем самым мы создадим новый файл.
Вставляем в него содержимое:
кодом
мы запретили вообще туда совать нос по вебу чтоб любопытные не могли получить доступ туда, куда не следует. Также запретили читать файлы с версией и текстом лицензии.
А кодом
Мы запрещаем выполнение php скриптов в папках.
командой if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } мы привели правило из реврайта для apache.
Сохраняем файл с названием например sitename.ru
Также не забудьте сделать обязательно символьную ссылку на файл конфига в папке /etc/nginx/sites-enabled
Для этого в MC откройте в одном разделе папку /etc/nginx/sites-enabled, а в другой части /etc/nginx/sites-available
Далее выбираем наш файл sitename Pf;bvftv CTR+x и нажимаем s, нам предлагается создать символьную ссылку, нажимаем ок.
далее нам надо перезагрузить сервисы.
Ну а дальше набираем в браузере название нашего сайта и видим страницу установки.
Замечания и вопросы в комментах ;)
UPD: Изменен конфиг для NGINX для отдачи файлов статических быстрее. Также добавлены команды для установления curl, memcache,zip
ВАЖНОЕ ЗАМЕЧАНИЕ!
В настройках mysql в файле
/etc/mysql/mysql.conf.d/mysqld.cnf
В конец файла добавить
иначе часть команд не будет работать, а страница виджетов выдаваться пустой. Ну и перегрузить после изменений MySQL не забываем.
UPDATE2: Добавлено закрытие директорий и отмена выполнение php скриптов в папках доступных для записи.
UPDATE3. если вы пробуете запустить связку ngnix+php-fpm на панели управления isplite5 и подобной, то при конфиге под суперадмином www домена надо прописать вместо
вот это
Данная записка более чем напоминание о том, что не забыть при установке и настройке VDS Nginx + php7.0-fpm +MySQL для Inst2.
В чем плюсы:
Быстрая отдача контента статичного, выполнение скриптов отдельным процессом не вызывая Apache и под конкретным пользователем.
Все свои сайта запустить на одном сервере.
Минусы: реализовать можно на своем сервере или арендуемом с правами рута.
Расширять кругозор всегда интересно. Ранее я всегда запускал сервисы только на рекомендуемых платформах. Да это стабильно и при желании получить то, что задумал разраб это правило.
А вот для расширения кругозора и улучшения навыка решения проблем, я выбираю не стандартные решения.
Но отступил от описания и приступил к делу:
1. Установив образ Ubuntu 16 Server. Рекомендую брать 64-битные системы, они лучше заточены на выполнение больших объемов.
2) Логинимся под root
su
ставим его
apt-get install mc
4. Ставим Nginx
apt-get install nginx
apt-get install php7.0
apt-get install mysql-server
Ставим поддержку Mysql php
apt-get install php7.0-mbstring
apt-get install php7.0-gd
Ставим
apt-get install php7.0-zip apt-get install php-memcache apt-get install php7.0-curl
Создаем пользователя с названием сайта.
например sitename
adduser sitename
passwd sitename
Теперь мы увидим, что в папке /home появилась папка sitename
В ней создадим папку www куда будем размещать файлы для сайта.
Для заливки файлов можно использовать либо SFTP или же обычный FTP, но для обычного нам надо установить VSFTP сервис
apt-get install vsftpd
Открываем в MC файлик по адресу /etc/vsftpd.conf
Редактировать в mc можно нажав кнопку f4.
опускаем в низ конфига и добавляем
chroot_local_user=YES pasv_enable=YES pasv_max_port=12100 pasv_min_port=12000 port_enable=YES
открываем ftp клиент и заливаем под логином и паролем файлы instatncms2.
Далее идем редактировать nginx
Нам нужно создать файл конфиг в раздле /etc/nginx/sites-available
перейдя в нужный раздел нам нужно нажать кнопки Shift+F4 тем самым мы создадим новый файл.
Вставляем в него содержимое:
server { listen 80; server_name [b]sitename.ru[/b]; root /home/[b]sitename[/b]/www; index index.php index.html; location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } deny all; } location ~ ^/filters/ { deny all; } location ~ ^/languages/ { deny all; } location ~ ^/cache/ { deny all; } location ~* /static/.*\.(php|php3|php4|php5|php6|phps|phtml)$ { deny all; } location ~* /templates/.*\.(tpl|txt|php|php3|php4|php5|php6|phps|phtml)$ { deny all; } location ~* /upload/.*\.(php|php3|php4|php5|php6|phps|phtml)$ { deny all; } location ~* /wysiwyg/.*\.(php|php3|php4|php5|php6|phps|phtml)$ { deny all; } location /credits.txt { deny all; } location /readme.txt { deny all; } location ~ ^/license.(.*).txt$ { deny all; } location ~ /\. { deny all; } location /sitemap { rewrite ^/sitemap(.*).xml$ /cache/static/sitemaps/sitemap$1.xml; } location ~* ".+\.(?:ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|swf|js|atom|jpe?g| gif|png|ico|zip|tgz|gz|rar|bz2|doc|docx|pdf|tif|mp4|flv|xls|exe|ppt|tar|mid|midi |wav|bmp|rtf|m3u|avi|xml|csv|txt|info)$" { access_log off; log_not_found off; expires max; } }
location ~ ^/cache/ { deny all; }
А кодом
location ~* /wysiwyg/.*\.(php|php3|php4|php5|php6|phps|phtml)$ { deny all; }
командой if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } мы привели правило из реврайта для apache.
Сохраняем файл с названием например sitename.ru
Также не забудьте сделать обязательно символьную ссылку на файл конфига в папке /etc/nginx/sites-enabled
Для этого в MC откройте в одном разделе папку /etc/nginx/sites-enabled, а в другой части /etc/nginx/sites-available
Далее выбираем наш файл sitename Pf;bvftv CTR+x и нажимаем s, нам предлагается создать символьную ссылку, нажимаем ок.
далее нам надо перезагрузить сервисы.
service php7.0-fpm restart service nginx restart
Замечания и вопросы в комментах ;)
UPD: Изменен конфиг для NGINX для отдачи файлов статических быстрее. Также добавлены команды для установления curl, memcache,zip
ВАЖНОЕ ЗАМЕЧАНИЕ!
В настройках mysql в файле
/etc/mysql/mysql.conf.d/mysqld.cnf
В конец файла добавить
sql-mode=
UPDATE2: Добавлено закрытие директорий и отмена выполнение php скриптов в папках доступных для записи.
UPDATE3. если вы пробуете запустить связку ngnix+php-fpm на панели управления isplite5 и подобной, то при конфиге под суперадмином www домена надо прописать вместо
location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } }
location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location / { try_files $uri $uri/ /index.php?$args; # permalinks } }
Реклама #
Fuze 8 лет назад #
kirkr 8 лет назад #
jorgovich 8 лет назад #
RSN 8 лет назад #
RSN 8 лет назад #
kirkr 8 лет назад #
Огненный Лис 7 лет назад #
1. У меня почему-то открываются закрытые от просмотра текстовые файлы (сколько с этим не боролся - ни чего не помогает);
2. Не хочет показываться sitemap.xml (файл физически существует, открывается, но по ссылке domenname.ru/sitemap.xml появляется ошибка 404).
У меня одного такое происходит?
kirkr 7 лет назад #
.xml файл у вас прописал для отдачи напрямую в location ?
Dorimen 7 лет назад #
kirkr 7 лет назад #
jorgovich 5 лет назад #
kirkr 5 лет назад #
смотрим какие пакеты доступны
фигачим apt-get install php7.0 php-pear
jorgovich 5 лет назад #
jorgovich 5 лет назад #