[Настройка] Конфиг для nginx для majordomo
Re: Не подскажете конфиг для nginx для majordomo?
zlayaptichka, спасибо большое за nginx конфиг. Пытаюсь разобраться в нём - не подскажете зачем пустые location блоки?
-
- Сообщения: 33
- Зарегистрирован: Вт апр 01, 2014 2:38 am
- Благодарил (а): 1 раз
- Поблагодарили: 6 раз
- Контактная информация:
Re: Не подскажете конфиг для nginx для majordomo?
Они там не нужны, можете их удалить.vilka писал(а):zlayaptichka, спасибо большое за nginx конфиг. Пытаюсь разобраться в нём - не подскажете зачем пустые location блоки?
-
- Сообщения: 119
- Зарегистрирован: Вт ноя 08, 2016 4:27 pm
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: Не подскажете конфиг для nginx для majordomo?
Не смог я пройти мимо вывода блока о системе, убрал чуток лишней информации, по итогу вышло так:
Собственно и сам код:
Для удобства вывел подсветку, если система в аптайме была менее 12 часов, то надпись красная, если более то зеленая.
Собственно и сам код:
Код: Выделить всё
$uptime = shell_exec("cut -d. -f1 /proc/uptime");
$days = floor($uptime/60/60/24);
$hours = $uptime/60/60%24;
$mins = $uptime/60%60;
$secs = $uptime%60;
if ($days == "0" && $hours <= "12") {
$uptime_mjd = "<span style='color: red;'><b>".$days."д. ".$hours."ч. ".$mins."м. ".$secs."с.</b></span>";
} else {
$uptime_mjd = "<span style='color: green;'><b>".$days."д. ".$hours."ч. ".$mins."м. ".$secs."с.</b></span>";
}
setGlobal("ThisComputer.uptime",$uptime_mjd);
- Рейтинг: 1.16%
-
- Сообщения: 1
- Зарегистрирован: Чт май 04, 2017 11:26 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: Не подскажете конфиг для nginx для majordomo?
На всякий случай опишу камни, с которыми столкнулся в настройке php-fpm + nginx на OrangePi PC (Armbian Debian server).
При установке параметра cgi.fix_pathinfo = 0 в /etc/php5/fpm/php.ini не определяется константа PHP_SELF в массиве $_SERVER, на которой, как я понял, основана работа движка.
При этом на сайте творилась полнейшая вакханалия, вместо /menu.php подключалась главная страница, которая содержала подключение menu.php и далее рекурсивно до бесконечности.
Итак, отличия в конфигах:
1. /etc/php5/fpm/php.ini - cgi.fix_pathinfo = 1 (не меняем на 0, оставляем по умолчанию)
2. настройка конфига nginx основана на этой доке: https://www.nginx.com/resources/wiki/st ... s/phpfcgi/, приведу весь конфиг полностью, если кто захочет скопипастить:
/etc/nginx/sites-available/majordomo:
/etc/nginx/fastcgi_params (добавлены определения SCRIPT_FILENAME, PATH_INFO, PATH_TRANSLATED, остальное по умолчанию):
С такими параметрами все заработало корректно, по крайней мере визуально.
При установке параметра cgi.fix_pathinfo = 0 в /etc/php5/fpm/php.ini не определяется константа PHP_SELF в массиве $_SERVER, на которой, как я понял, основана работа движка.
При этом на сайте творилась полнейшая вакханалия, вместо /menu.php подключалась главная страница, которая содержала подключение menu.php и далее рекурсивно до бесконечности.
Итак, отличия в конфигах:
1. /etc/php5/fpm/php.ini - cgi.fix_pathinfo = 1 (не меняем на 0, оставляем по умолчанию)
2. настройка конфига nginx основана на этой доке: https://www.nginx.com/resources/wiki/st ... s/phpfcgi/, приведу весь конфиг полностью, если кто захочет скопипастить:
/etc/nginx/sites-available/majordomo:
Код: Выделить всё
server {
listen 80; ## listen for ipv4; this line is default and implied
root /var/www;
index index.html index.htm index.php default.html;
# Make site accessible from OPi IP and http://localhost/
server_name 192.168.1.19 0.0.0.0;
charset utf-8;
location / {
rewrite pda$ /popup/pda.html redirect;
rewrite ^api/ /api.php;
if (!-e $request_filename){
rewrite ^(.*)$ /nf.php;
}
}
location /config.php {
deny all;
}
location /debmes.txt {
deny all;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
# Запрет доступа к .htaccess и .htpasswd файлам
location ~* "/\.(htaccess|htpasswd)$"
{
deny all; # запретить все для всех
return 404; # вернуть код ошибки
}
}
Код: Выделить всё
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
- За это сообщение автора positron поблагодарили (всего 4):
- skysilver (Пт май 05, 2017 12:37 pm) • llirik (Вт авг 29, 2017 12:05 pm) • Yarra (Пн дек 18, 2017 12:17 am) • Strangeman (Вс сен 09, 2018 1:12 pm)
- Рейтинг: 4.65%
-
- Сообщения: 273
- Зарегистрирован: Вс авг 20, 2017 1:46 am
- Благодарил (а): 142 раза
- Поблагодарили: 13 раз
Re: Не подскажете конфиг для nginx для majordomo?
Извините а можно поподробней как установить это.Akorolev писал(а):Не смог я пройти мимо вывода блока о системе, убрал чуток лишней информации, по итогу вышло так:
Собственно и сам код:Для удобства вывел подсветку, если система в аптайме была менее 12 часов, то надпись красная, если более то зеленая.Код: Выделить всё
$uptime = shell_exec("cut -d. -f1 /proc/uptime"); $days = floor($uptime/60/60/24); $hours = $uptime/60/60%24; $mins = $uptime/60%60; $secs = $uptime%60; if ($days == "0" && $hours <= "12") { $uptime_mjd = "<span style='color: red;'><b>".$days."д. ".$hours."ч. ".$mins."м. ".$secs."с.</b></span>"; } else { $uptime_mjd = "<span style='color: green;'><b>".$days."д. ".$hours."ч. ".$mins."м. ".$secs."с.</b></span>"; } setGlobal("ThisComputer.uptime",$uptime_mjd);
Не серчайте сильно я только присоединился и начал изучать что и как тут.
positron поставил ваш конфиг и при обновлении модулей виси постоянно надпись
Загружаются данные... Нажмите здесь, если процесс загрузки занимает слишком много времени.
Raspberry Pi3, с образа от Сергея 3.34
Re: Не подскажете конфиг для nginx для majordomo?
Установка majordomo + nginx на CentOS7
MariaDB
PHP-FPM
NGINX
MajorDoMo
MariaDB
Код: Выделить всё
tee /etc/yum.repos.d/MariaDB.repo <<-'EOF'
# MariaDB 10.3 CentOS repository list - created 2018-08-27 13:51 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Код: Выделить всё
yum install MariaDB-server MariaDB-client
Код: Выделить всё
systemctl start mariadb && systemctl start mariadb
Код: Выделить всё
mysql_secure_installation
Код: Выделить всё
mysql -u root -p
CREATE DATABASE `db_terminal` character set utf8;
CREATE USER `majordomo_admin`@`localhost` identified by 'PASS';
GRANT ALL PRIVILEGES ON `db_terminal`.* TO `majordomo_admin`@`localhost`;
USE db_terminal;
SOURCE /root/majordomo-master/db_terminal.sql
Код: Выделить всё
tee /etc/my.cnf.d/disable_strict_mode.cnf <<-'EOF'
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF
Код: Выделить всё
yum install https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php72w-fpm php72w-cli php72w-gd php72w-mbstring php72w-mysql php72w-xml php72w-pear php72w-common
Код: Выделить всё
vim /etc/php-fpm.d/www.conf
security.limit_extensions = .php .php3 .php4 .php5 .php7
listen = /var/run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
user = nginx
group = nginx
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
Код: Выделить всё
systemctl enable php-fpm && systemctl start php-fpm
Код: Выделить всё
tee /etc/yum.repos.d/nginx.repo <<-'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
EOF
Код: Выделить всё
yum install nginx
Код: Выделить всё
tee etc/nginx/nginx.conf <<-'EOF'
user nginx;
worker_processes 4;
worker_rlimit_nofile 8192;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
'\$status \$body_bytes_sent "\$http_referer" '
'"\$http_user_agent" "\$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
client_body_temp_path /var/spool/nginx_client_body_temp;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
server_names_hash_bucket_size 128;
server {
server_name localhost;
root /var/www;
listen 80;
index index.html index.htm index.php default.html;
access_log off;
location / {
rewrite pda$ /popup/pda.html redirect;
rewrite ^api/ /api.php;
if (!-e $request_filename){
rewrite ^(.*)$ /nf.php;
}
}
location /config.php {
deny all;
}
location ~* "/\.(htaccess|htpasswd)$" {
deny all;
return 404;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include /etc/nginx/fastcgi_params;
fastcgi_param PHP_VALUE "short_open_tag=on";
fastcgi_param PHP_VALUE "error_reporting=E_ALL & ~E_NOTICE";
fastcgi_param PHP_VALUE "max_execution_time=90";
fastcgi_param PHP_VALUE "max_input_time=180";
fastcgi_param PHP_VALUE "post_max_size=200M";
fastcgi_param PHP_VALUE "upload_max_filesize=50M";
fastcgi_param PHP_VALUE "max_file_uploads=150";
}
}
}
EOF
Код: Выделить всё
systemctl enable nginx && systemctl start nginx
Код: Выделить всё
wget https://github.com/sergejey/majordomo/archive/master.tar.gz
tar xvf /root/master.tar.gz
mkdir /var/www && cd /var/www
mv /root/majordomo-master/* /var/www
mv /root/majordomo-master/.htaccess /var/www
Код: Выделить всё
find /var/www/ -type f -exec chmod 0644 {} \;
find /var/www/ -type d -exec chmod 0755 {} \;
chown -R nginx:nginx /var/www
usermod -a -G audio nginx
Код: Выделить всё
cp /var/www/config.php.sample /var/www/config.php
Код: Выделить всё
vim /var/www/config.php
Define('DB_USER', 'majordomo_admin');
Define('DB_PASSWORD', 'PASS');
Код: Выделить всё
tee /etc/systemd/system/majordomo.service <<-'EOF'
[Unit]
Description=MajorDoMo
[Service]
Requires=mariadb.service
Requires=mginx.service
Type=simple
WorkingDirectory=/var/www
ExecStart=/usr/bin/php /var/www/cycle.php
Restart=always
[Install]
WantedBy=multi-user.target
EOF
Код: Выделить всё
systemctl enable majordomo && systemctl start majordomo
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: [Настройка] Конфиг для nginx для majordomo
вариант конфига в виде bash скрипта, создайте файл, вставте туда содержимое, сохрание, сделайте исполняемым и запустите, если php-fpm не 7.2 то измените в скрипте строку : fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; на правильный путь.
Код: Выделить всё
#!/bin/bash
rm /etc/nginx/sites-available/default
tee /etc/nginx/nginx.conf << EOF
user www-data;
worker_processes 4;
worker_rlimit_nofile 8192;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
'\$status \$body_bytes_sent "\$http_referer" '
'"\$http_user_agent" "\$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
client_body_temp_path /var/spool/nginx_client_body_temp;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
server_names_hash_bucket_size 128;
server {
server_name localhost md.lan;
root /var/www;
listen 80;
index index.html index.htm index.php default.html;
access_log off;
# настройки тюнинга
# Максимальный размер буфера для хранения тела запроса клиента
client_body_buffer_size 1K;
# Максимальный размер буфера для хранения заголовков запроса клиента
client_header_buffer_size 1k;
# Максимальный размер тела запроса клиента, прописанный в поле Content-Length заголовка. Если сервер должен поддерживать загрузку файлов, это значение необходимо увеличить
client_max_body_size 1k;
# Количество и размер буферов для чтения большого заголовка запроса клиента
large_client_header_buffers 2 1k;
# Таймаут при чтении тела запроса клиента
client_body_timeout 10;
# Таймаут при чтении заголовка запроса клиента
client_header_timeout 10;
# Таймаут, по истечению которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
keepalive_timeout 5 5;
# Таймаут при передаче ответа клиенту
send_timeout 10;
# обрабатывать только запросы GET HEAD POST
if (\$request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
#########
location / {
rewrite pda$ /popup/pda.html redirect;
rewrite ^api/ /api.php;
if (!-e \$request_filename){
rewrite ^(.*)$ /nf.php;
}
# настройки тюнинга
# обращение только по DNS имени
if (\$host !~ ^(md.lan|www.md.lan)$ ) {
return 444;
}
##########
}
location /config.php {
deny all;
}
location ~* "/\.(htaccess|htpasswd)$" {
deny all;
return 404;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
set \$path_info \$fastcgi_path_info;
fastcgi_param PATH_INFO \$path_info;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED \$document_root\$fastcgi_path_info;
include /etc/nginx/fastcgi_params;
fastcgi_param PHP_VALUE "short_open_tag=on";
fastcgi_param PHP_VALUE "error_reporting=E_ALL & ~E_NOTICE";
fastcgi_param PHP_VALUE "max_execution_time=90";
fastcgi_param PHP_VALUE "max_input_time=180";
fastcgi_param PHP_VALUE "post_max_size=200M";
fastcgi_param PHP_VALUE "upload_max_filesize=50M";
fastcgi_param PHP_VALUE "max_file_uploads=150";
}
}
}
EOF
sudo tee /etc/nginx/fastcgi_params << EOF
fastcgi_param QUERY_STRING \$query_string;
fastcgi_param REQUEST_METHOD \$request_method;
fastcgi_param CONTENT_TYPE \$content_type;
fastcgi_param CONTENT_LENGTH \$content_length;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param SCRIPT_NAME \$fastcgi_script_name;
fastcgi_param PATH_INFO \$fastcgi_path_info;
fastcgi_param PATH_TRANSLATED \$document_root\$fastcgi_path_info;
fastcgi_param REQUEST_URI \$request_uri;
fastcgi_param DOCUMENT_URI \$document_uri;
fastcgi_param DOCUMENT_ROOT \$document_root;
fastcgi_param SERVER_PROTOCOL \$server_protocol;
fastcgi_param HTTPS \$https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/\$nginx_version;
fastcgi_param REMOTE_ADDR \$remote_addr;
fastcgi_param REMOTE_PORT \$remote_port;
fastcgi_param SERVER_ADDR \$server_addr;
fastcgi_param SERVER_PORT \$server_port;
fastcgi_param SERVER_NAME \$server_name;
fastcgi_param REDIRECT_STATUS 200;
EOF
- Рейтинг: 2.33%
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru