Simpelax
@Simpelax
Нищий студент

Как заставить работать Phalcon и PhpMyAdmin на разных fpm-сокетах?

Доброго времени суток. Нужна помощь чтобы подружить два приложения на разных php - Fpm сокетах.
Вводные:
- есть удалённый сервер Ubuntu 22.04 (стек LEMP);
- Phalcon 4.1.2;
- PHP 7.3.33 как основа, также установлен последний PHP 8.1.13, но отключён ввиду того, что Фалкон указанной версии не совместим с ней;
- Default конфиг Nginx с двумя location :
1.
spoiler
location / {
        # Matches URLS `$_GET['_url']`
        try_files $uri $uri/ /index.php?_url=$uri&$args;
    }

    # When the HTTP request does not match the above
    # and the file ends in .php
    location ~ [^/]\.php(/|$) {
        # try_files $uri =404;

        # Ubuntu and PHP7.0-fpm in socket mode
        # This path is dependent on the version of PHP install
        fastcgi_pass  unix:/run/php/php7.3-fpm.sock;


        # Alternatively you use PHP-FPM in TCP mode (Required on Windows)
        # You will need to configure FPM to listen on a standard port
        # https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/
        # fastcgi_pass  127.0.0.1:9000;

        fastcgi_index /index.php;

        include fastcgi_params;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        # fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        # and set php.ini cgi.fix_pathinfo=0
        
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires       max;
        log_not_found off;
        access_log    off;
    }

Это корневой локейшен для запуска Phalcon с указанием на работу на сокете 7.3.
2.
spoiler
location /phpmyadmin {
	root /usr/share/;
	index index.php index.html index.htm;
	location ~ ^/phpmyadmin/(.+.php)$ {
		try_files $uri =404;
		root /usr/share/;
		fastcgi_pass unix:/run/php/php8.1-fpm.sock;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}

	location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
		root /usr/share/;
	}
     }

Второй локейшен для открытия по domain/phpmyadmin с фронтом и сокетом для 8.1 (при установке ПМА ставится и сам php 8.1 хотя он нахер не нужон, но apt считает иначе ставит его и использует на нём)

Суть проблемы - при настройке default конфига на работу корня на 7.3 и комментировании локации ПМА открывается фалкон прила, работает и, напротив, при использовании 8.1 сокета работает админка пхп, но фалкон прила погибает.
Если поставить два разных сокета на разные локейшены дропает 500 ошибку на обоих путях.
Тут видны запущенные процессы сокетов
6385f65554450291659343.png
Я убил процесс сокета 8.1 в надежде на то, что ПМА переключится сама на 7.3, но, естественно, это не помогло.

Моя голова уже на две части разложилась, не понимаю как решить проблему, умоляю помогите. Доп информацию предоставлю по запросу так как не знаю, какая может оказаться ценной для решения вопроса. Заранее спасибо тебе, добрый человек.
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
Simpelax
@Simpelax Автор вопроса
Нищий студент
Пришёл к решению, как и сказал Дмитрий настройка nginx'a оказалось верной, проблема была в том, что при установкe phpmyadmin с помощью apt ставится последняя версия php и сокета для него (8.1) и заставляет все работать на нём попутно ломая конфигурацию Phalcon, пропадают phalcon.so и сам модуль phalcon из списка модулей php при использовании php -m в терминале.
Помогла повторная компиляция фалкона, автоматически добавляя недостающие фрагменты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы