Шаблон backend php fpm

Yii Framework

Шаблон для backend в Hestia CP Nginx PHP-FPM

Шаблон для backend в Hestia CP Nginx PHP-FPM

Сообщение John25 » 2020.10.11, 18:53

Здравствуйте, никак не могу настроить шаблон конфига nginx для бакэнда.
Бакэнд должен работать на субдомене admin.site.ru, сами файлы бакэнда хранятся в site.ru/backend/web.
Прописывал уже полный путь в руте до файлов (/home/user/site.ru/public_html/backend/web) результата нет.
В самой системе в param-local прописан backend на субдомен.
Нужна ваша помощь.

server < listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%/backend/web; index index.php index.html index.htm; access_log /var/log/nginx/domains/%domain%.log combined; access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; ssl_stapling on; ssl_stapling_verify on; include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*; location / < try_files $uri $uri/ /index.php?$query_string; location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ < expires max; fastcgi_hide_header "Set-Cookie"; >location ~ [^/]\.php(/|$) < fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; if (!-f $document_root$fastcgi_script_name) < return 404; >fastcgi_pass %backend_lsnr%; fastcgi_index index.php; include /etc/nginx/fastcgi_params; > > location /error/ < alias %home%/%user%/web/%domain%/document_errors/; >location ~* "/\.(htaccess|htpasswd)$" < deny all; return 404; >location /vstats/ < alias %home%/%user%/web/%domain%/stats/; include %home%/%user%/web/%domain%/stats/auth.conf*; >include /etc/nginx/conf.d/phpmyadmin.inc*; include /etc/nginx/conf.d/phppgadmin.inc*; include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*; >

Источник

VestaCP + Nginx + PHP-FPM + PHP 7.3

Данная статья рассматривает установку сервера на базе Centos 7, которая подойдет как для работы SEoDOR, так и других движков.

Устанавливать будем панель VestaCP в связке Nginx + PHP-FPM, а затем обновим PHP до версии 7.3. Также установим ionCube и PDO, активируем файловый менеджер в VestaCP, «ускорим» open_basedir и отключим опасные функции в php.ini.

Внимание! Временно не рекомендуется настраивать сервер по данному мануалу в связи с выходом PHP 7.4, который автоматически устанавливает VestaCP и на котором многое пока не работает! В данный момент идет доработка мануала — зайдите, пожалуйста, позже или попробуйте установить BrainyCP.

Примечание: в этой сборке .htaccess работать не будет! Вместо него все правила прописываются в шаблоне Web NGINX!

0. Установка CURL, ZIP

yum -y install curl unzip zip 2>/dev/null

yum -y install curl unzip zip 2>/dev/null

1. VestaCP + Nginx + PHP-FPM

Читайте также:  Learn javascript in unity

Скачаем скрипт инсталляции:

curl -O http://vestacp.com/pub/vst-install.sh

curl -O http://vestacp.com/pub/vst-install.sh

Далее переходим сюда. В конфигураторе выбираем nginx + php-fpm и другие настройки. Прописываем в пустых полях хостнейм, почту администратора панели и пароль к панели. Нажимаем Generate Install Command:

Полученную команду копируем в консоль и подтверждаем установку «y».

После установки панель будет доступна по адресу https://ip_сервера:8083/

Обновим все системное ПО до последней версии с помощью менеджера пакетов yum:

2. Установка PHP 7.3

Проверим, какая версия PHP установлена:

После выхода PHP 7.4 (28.10.2019) VestaCP начала автоматическую установку этой версии, но с ней пока что несовместимы некоторые вещи, такие как IonCube и др. Поэтому на придется понизить версию PHP до 7.3.

Установим yum-utils, если она еще не установлена. yum-utils будет использоваться для включения версий PHP:

Включим репозитарий Remi PHP 7.3 и отключим остальные. Также удалим установленный PHP 7.4:

yum-config-manager --disable remi-php5* yum-config-manager --disable remi-php74 yum-config-manager --disable remi-test yum-config-manager --enable remi-php73 yum -y remove php php-*

yum-config-manager —disable remi-php5* yum-config-manager —disable remi-php74 yum-config-manager —disable remi-test yum-config-manager —enable remi-php73 yum -y remove php php-*

После того, как репозиторий включен, установим PHP 7.3:

Перезапустим nginx и php-fpm:

systemctl restart nginx systemctl restart php-fpm

systemctl restart nginx systemctl restart php-fpm

Убедимся, что PHP 7.3 установлен:

3. Установка ionCube

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar zxf ioncube_loaders_lin_x86-64.tar.gz rm -rf ioncube_loaders_lin_x86-64.tar.gz mv ioncube /usr/local

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar zxf ioncube_loaders_lin_x86-64.tar.gz rm -rf ioncube_loaders_lin_x86-64.tar.gz mv ioncube /usr/local

Прописываем IonCube Loader в конфиг /etc/php.ini:

echo "" >> /etc/php.ini echo "[Zend Modules]" >> /etc/php.ini echo "zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so" >> /etc/php.ini echo "zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_7.3_ts.so" >> /etc/php.ini

echo «» >> /etc/php.ini echo «[Zend Modules]» >> /etc/php.ini echo «zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so» >> /etc/php.ini echo «zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_7.3_ts.so» >> /etc/php.ini

Убедимся, что ionCube установлен:

4. Установка PDO для работы SQLite3

После выхода PHP 7.4 (28.10.2019) VestaCP начала автоматическую установку версии 7.4 с установленным PDO и SQLite. Поэтому пункты 4 и 4.1 можно пропустить и перейти сразу 5-му.

Читайте также:  Программирование чат бота python

4.1. Обновление SQLite3 до 3.28.0

php -i | grep -Pzo 'SQLite3 support => .*?\s*SQLite Library => .*?$'

php -i | grep -Pzo ‘SQLite3 support => .*?\s*SQLite Library => .*?$’

и если она старее чем 3.24 (например, 3.7), то обновим SQLite3:

yum -y install sqlite-devel php-devel wget https://www.php.net/distributions/php-7.3.11.tar.gz && tar zxvf php-7.3.11.tar.gz cd /root/php-7.3.11/ext/sqlite3/ cp config0.m4 config.m4 phpize ./configure make make install cd ~ rm -r -f php-7.3.11 rm -r -f php-7.3.11.tar.gz

yum -y install sqlite-devel php-devel wget https://www.php.net/distributions/php-7.3.11.tar.gz && tar zxvf php-7.3.11.tar.gz cd /root/php-7.3.11/ext/sqlite3/ cp config0.m4 config.m4 phpize ./configure make make install cd ~ rm -r -f php-7.3.11 rm -r -f php-7.3.11.tar.gz

5. Добавление nginx-шаблонов в панель Vesta

Скачиваете nginx-шаблон seodor5 и копируете файлы в папку
/usr/local/vesta/data/templates/web/nginx/php-fpm/ :

cd /usr/local/vesta/data/templates/web/nginx/php-fpm curl -O https://seodor.biz/public/vestacp_nginx_phpfpm.zip unzip vestacp_nginx_phpfpm.zip rm -r -f vestacp_nginx_phpfpm.zip cd ~

cd /usr/local/vesta/data/templates/web/nginx/php-fpm curl -O https://seodor.biz/public/vestacp_nginx_phpfpm.zip unzip vestacp_nginx_phpfpm.zip rm -r -f vestacp_nginx_phpfpm.zip cd ~

Далее, при создании в панели нового домена или редактировании существующих, выбираем шаблон nginx соответствующий используемой вами CMS и сохраняем изменения. Этого всего достаточно, чтобы ваши сайты начали работать в связке nginx и php-fpm.

6. Активация SFTP Chroot и файлового менеджера в VestaCP

echo "FILEMANAGER_KEY='mykey'" >> /usr/local/vesta/conf/vesta.conf echo "SFTPJAIL_KEY='mykey'" >> /usr/local/vesta/conf/vesta.conf sed -i -e "s~.*checkout.*~#v_host='https://vestacp.com/checkout'~g" /usr/local/vesta/bin/v-activate-vesta-license sed -i -e "s~.*curl.*~#answer=$(curl -s $v_host/activate.php?licence_key=$license;module=$module)~g" /usr/local/vesta/bin/v-activate-vesta-license sed -i -e "s~.*check_result.*~check_result $? 'cant connect to vestacp.com ' $E_CONNECT\nanswer=0~g" /usr/local/vesta/bin/v-activate-vesta-license sed -i -e "s~.*v-check-vesta-license.*~#$BIN/v-check-vesta-license >/dev/null~g" /usr/local/vesta/bin/v-backup-users

echo «FILEMANAGER_KEY=’mykey'» >> /usr/local/vesta/conf/vesta.conf echo «SFTPJAIL_KEY=’mykey'» >> /usr/local/vesta/conf/vesta.conf sed -i -e «s~.*checkout.*~#v_host=’https://vestacp.com/checkout’~g» /usr/local/vesta/bin/v-activate-vesta-license sed -i -e «s~.*curl.*~#answer=$(curl -s $v_host/activate.php?licence_key=$license;module=$module)~g» /usr/local/vesta/bin/v-activate-vesta-license sed -i -e «s~.*check_result.*~check_result $? ‘cant connect to vestacp.com ‘ $E_CONNECT\nanswer=0~g» /usr/local/vesta/bin/v-activate-vesta-license sed -i -e «s~.*v-check-vesta-license.*~#$BIN/v-check-vesta-license >/dev/null~g» /usr/local/vesta/bin/v-backup-users

7. Ускорение open_basedir

Как известно, использование open_basedir значительно замедляет скорость загрузки сайта, но если вы не хотите отказываться от этой опции, то рекомендую установить realpath_turbo — данное расширение включит кеширование путей и ваши сайты будут работать с такой же скоростью, как если бы вы не использовали опцию open_basedir.

curl -o realpath_turbo.zip "https://seodor.biz/public/realpath_turbo.zip" unzip realpath_turbo.zip cd realpath_turbo phpize ./configure make make install echo "" >> /etc/php.ini echo "extension=realpath_turbo.so" >> /etc/php.ini echo "realpath_turbo.disable_dangerous_functions = 1" >> /etc/php.ini cd ~ rm -r -f /root/realpath_turbo rm -r -f realpath_turbo.zip

curl -o realpath_turbo.zip «https://seodor.biz/public/realpath_turbo.zip» unzip realpath_turbo.zip cd realpath_turbo phpize ./configure make make install echo «» >> /etc/php.ini echo «extension=realpath_turbo.so» >> /etc/php.ini echo «realpath_turbo.disable_dangerous_functions = 1» >> /etc/php.ini cd ~ rm -r -f /root/realpath_turbo rm -r -f realpath_turbo.zip

Читайте также:  Наибольший общий делитель python функция

Также в /etc/php.ini не забудьте отключить опцию open_basedir, если она включена:
;open_basedir=
Вместо нее будет использоваться опция realpath_turbo.open_basedir.

Теперь один из двух вариантов (1-й подходит для Сеодора):
1) в шаблоне nginx seodor5 раскомментируйте строку (в 2-х файлах — tpl и stpl):

sed -i -e "s~.*realpath_turbo.*~\t\t\trealpath_turbo.open_basedir=/tmp/:/home/%user%/tmp/:/proc/meminfo:/proc/stat:%home%/%user%/web/%domain%/public_html/~g" /usr/local/vesta/data/templates/web/nginx/php-fpm/seodor5.tpl sed -i -e "s~.*realpath_turbo.*~\t\t\trealpath_turbo.open_basedir=/tmp/:/home/%user%/tmp/:/proc/meminfo:/proc/stat:%home%/%user%/web/%domain%/public_html/~g" /usr/local/vesta/data/templates/web/nginx/php-fpm/seodor5.stpl

sed -i -e «s~.*realpath_turbo.*~\t\t\trealpath_turbo.open_basedir=/tmp/:/home/%user%/tmp/:/proc/meminfo:/proc/stat:%home%/%user%/web/%domain%/public_html/~g» /usr/local/vesta/data/templates/web/nginx/php-fpm/seodor5.tpl sed -i -e «s~.*realpath_turbo.*~\t\t\trealpath_turbo.open_basedir=/tmp/:/home/%user%/tmp/:/proc/meminfo:/proc/stat:%home%/%user%/web/%domain%/public_html/~g» /usr/local/vesta/data/templates/web/nginx/php-fpm/seodor5.stpl

echo "php_admin_value[realpath_turbo.open_basedir] = /home/%user%/web/%domain%/public_html/" >> /usr/local/vesta/data/templates/web/php-fpm/default.tpl

echo «php_admin_value[realpath_turbo.open_basedir] = /home/%user%/web/%domain%/public_html/» >> /usr/local/vesta/data/templates/web/php-fpm/default.tpl

8. Оптимизация PHP-FPM

Делаем фиксированным количество дочерних процессов. В pm.max_children укажем 30 — это число зависит от кол-ва свободной памяти на сервере:

sed -i -e "s~.*ondemand.*~pm = static~g" /usr/local/vesta/data/templates/web/php-fpm/default.tpl sed -i -e "s~.*max_children.*~pm.max_children = 30~g" /usr/local/vesta/data/templates/web/php-fpm/default.tpl

sed -i -e «s~.*ondemand.*~pm = static~g» /usr/local/vesta/data/templates/web/php-fpm/default.tpl sed -i -e «s~.*max_children.*~pm.max_children = 30~g» /usr/local/vesta/data/templates/web/php-fpm/default.tpl

9. Отключение опасных функций в /etc/php.ini

sed -i ‘s/disable_functions =/disable_functions = get_defined_constants, apache_get_modules, virtual, getmyinode, apache_get_version, apache_getenv, ini_restore, openlog, syslog, highlight_file, show_source, symlink, ini_get_all, phpinfo, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, exec, shell_exec, system, passthru, popen, proc_close, proc_get_status, proc_nice, proc_terminate, leak, listen, chown, chgrp, apache_note, apache_setenv, closelog, debugger_off, debugger_on, define_sys, getmyuid, getmypid, diskfreespace, dl, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix, _getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname/g’ /etc/php.ini

После настройки сервера в VestaCP добавляете новый домен и для него применяете шаблоны Web NGINX (seodor5) и Backend PHP-FPM (default):

Отправить статью

Делитесь и помогайте друг другу быстрее находить нужную информацию в Интернете.

Источник

Оцените статью