【问题标题】:Plesk, enable multiple PHP instances of same versionsPlesk,启用多个相同版本的 PHP 实例
【发布时间】:2017-02-28 21:07:35
【问题描述】:

我有一个 Plesk 安装,其中我已经有许多域并且它们可以有自己的 PHP 版本。

我想设置一个测试域。这需要使用与实际域相同的 PHP 版本,但我不希望它共享相同的 PHP 进程。特别是,它不应共享同一组 PHP 扩展,这些扩展在 Plesk 中按版本级别配置,而不是按域级别配置。

但是我看不到使用 Plesk 的方法,或者我什至不知道这是否可行。

我想确保测试不会对其他域产生不利影响,因此需要进行一些额外的分离。

注意:通常情况下,会设置单独的服务器进行测试;但是,在这种特殊情况下这是不切实际的,所以如果这是错误的方法,我想听听有关如何支持在共享服务器上进行测试而不会造成干扰的建议。

【问题讨论】:

    标签: php centos plesk


    【解决方案1】:

    您可以通过

    创建半隔离的 PHP 处理程序
    # cp -r /opt/plesk/php/7.1 /opt/plesk/php/7.1_test
    
    # /usr/local/psa/bin/php_handler --add -id 7.1.2-test -displayname 7.1.2-test -path /opt/plesk/php/7.1_test/bin/php-cgi  -clipath /opt/plesk/php/7.1_test/bin/php -phpini /opt/plesk/php/7.1_test/etc/php.ini -type fastcgi
    
    # now add xdebug extension to /opt/plesk/php/7.1_test/etc/php.ini
    # echo "extension=/opt/plesk/php/7.1_test/lib64/php/modules/xdebug.so"  >> /opt/plesk/php/7.1_test/etc/php.ini
    

    唯一的问题是这个 PHP 处理程序仍然会从原始 /opt/plesk/php/7.1/etc/php.d/ 获取加载的扩展,因为这个路径是编译的,正如我看到的 it can't be redefined in php.ini

    原始答案

    对于 Windows,您可以设置单独的 IIS 应用程序池:

    对于 Linux,您可以使用该域正在使用 PHP-FPM 处理程序:

    29271 ?        Ss     0:00      0  3408 129231 5800  0.5 php-fpm: master process (/opt/plesk/php/7.0/etc/php-fpm.conf)
    29584 ?        S      0:00      0  3408 149283 16624  1.6  \_ php-fpm: pool d1.cl1.a10-52-31-113.qa.plesk.ru
    29593 ?        S      0:00      0  3408 149283 16624  1.6  \_ php-fpm: pool cl1.a10-52-31-113.qa.plesk.ru
    

    【讨论】:

    • 只是为了确认理解。我正在使用 Linux (CentOS),并且主域已经在使用 PHP-FPM。如果我添加第二个域,它将在 Plesk 中显示 PHP 5.4.6 FPM 上有 2 个域。这让我觉得它们是共享的。您是说尽管 Plesk 管理页面上的印象,它仍然是他们自己的 PHP 进程,对吗?
    • 还有一个问题 - 不能只为一个域启用 PHP 扩展,而不能为另一个域启用 PHP 扩展,即使它们使用相同的 PHP 版本。
    • 太好了,这可能是我需要的——我会测试并确认。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多