繁体   English   中英

<VirtualHost>在具有多个 PHP 版本的 XAMPP 中

[英]<VirtualHost> in XAMPP with multiples PHP versions

我最近已经发布了一个关于在 Windows 10 上的 XAMPP 7.4.16 服务器上运行多个版本的 PHP 的问题。起初它工作正常并且没有问题。 它是这样工作的:

PHP 8 8088 端口PHP 7.4 80 端口(默认) PHP 7.3 8083 端口PHP 7.2 8082 端口PHP 7.1 8081 端口PHP 7.0 8080 端口PHP 5.6 8056 端口

现在我需要创建一个 VirtualHost 来将域与在 Zend Framework 中开发的应用程序相关联,但我没有成功。 它是用 PHP 5.6 开发的,我需要它来响应服务器上的 viderahome.local 域。

这是我的代码:

配置文件

LoadModule vhost_alias_module modules/mod_vhost_alias.so

httpd-xampp.conf

<IfModule env_module>
    SetEnv MIBDIRS "C:/xampp/php/extras/mibs"
    SetEnv MYSQL_HOME "\\xampp\\mysql\\bin"
    SetEnv OPENSSL_CONF "C:/xampp/apache/bin/openssl.cnf"
    SetEnv PHP_PEAR_SYSCONF_DIR "\\xampp\\php"
    SetEnv PHPRC "\\xampp\\php"
    SetEnv TMP "\\xampp\\tmp"
</IfModule>


LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadFile "C:/xampp/php/libsqlite3.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"


<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

<IfModule php7_module>
    PHPINIDir "C:/xampp/php"
</IfModule>

<IfModule mime_module>
    AddType text/html .php .phps
</IfModule>

ScriptAlias /php-cgi/ "C:/xampp/php/"
<Directory "C:/xampp/php">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "C:/xampp/cgi-bin">
    <FilesMatch "\.php$">
        SetHandler cgi-script
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler None
    </FilesMatch>
</Directory>

<Directory "C:/xampp/htdocs/xampp">
    <IfModule php7_module>
        <Files "status.php">
            php_admin_flag safe_mode off
        </Files>
    </IfModule>
    AllowOverride AuthConfig
</Directory>

<IfModule alias_module>
    Alias /licenses "C:/xampp/licenses/"
    <Directory "C:/xampp/licenses">
        Options +Indexes
        <IfModule autoindex_color_module>
            DirectoryIndexTextColor "#000000"
            DirectoryIndexBGColor "#f8e8a0"
            DirectoryIndexLinkColor "#bb3902"
            DirectoryIndexVLinkColor "#bb3902"
            DirectoryIndexALinkColor "#bb3902"
        </IfModule>
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

    Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
        AllowOverride AuthConfig
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

    Alias /webalizer "C:/xampp/webalizer/"
    <Directory "C:/xampp/webalizer">
        <IfModule php7_module>
            <Files "webalizer.php">
                 php_admin_flag safe_mode off
            </Files>
        </IfModule>
        AllowOverride AuthConfig
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>
</IfModule>

用于在特定端口中运行某些 PHP 版本的虚拟主机

PHP 8.0 在 8088 端口

ScriptAlias /php_8.0 "C:/xampp/php_8.0"
<Directory "C:/xampp/php_8.0">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8088
<VirtualHost *:8088>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php
        Action application/x-httpd-php "/php_8.0/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

8083 端口中的 HP 7.3

ScriptAlias /php_7.3 "C:/xampp/php_7.3"
<Directory "C:/xampp/php_7.3">
    AllowOverride None
    Options None
    Require all denied
        <Files "php-cgi.exe">
            Require all granted
        </Files>
</Directory>

Listen 8083
<VirtualHost *:8083>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php
        Action application/x-httpd-php "/php_7.3/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

PHP 7.2 端口 8082

ScriptAlias /php_7.2 "C:/xampp/php_7.2"
<Directory "C:/xampp/php_7.2">
    AllowOverride None
    Options None
     Require all denied
     <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8082
<VirtualHost *:8082>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php
        Action application/x-httpd-php "/php_7.2/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

PHP 7.1 在 8081 端口

ScriptAlias /php_7.1 "C:/xampp/php_7.1"
<Directory "C:/xampp/php_7.1">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8081
<VirtualHost *:8081>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php
        Action application/x-httpd-php "/php_7.1/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

PHP 7.0 在 8080 端口

ScriptAlias /php_7.0 "C:/xampp/php_7.0"
<Directory "C:/xampp/php_7.0">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8080
<VirtualHost *:8080>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php
        Action application/x-httpd-php "/php_7.0/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

PHP 5.6 在 8056 端口

ScriptAlias /php_5.6 "C:/xampp/php_5.6"

<IfModule actions_module>
    Action application/x-httpd-php56-cgi "/php_5.6/php-cgi.exe"
</IfModule>

<Directory "C:/xampp/php_5.6">
    SetEnv PHPRC "C:/xampp/php_5.6"
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

httpd-vhost.conf

名称虚拟主机 *

<VirtualHost viderahome.local:8056>
    DocumentRoot "D:\Dados\dados\htdocs\servicos\viderahome\www"
    ServerName viderahome.local
    ErrorLog "D:\Dados\dados\htdocs\servicos\viderahome\error.log"
    CustomLog "D:\Dados\dados\htdocs\servicos\viderahome\access.log" combined
    <Directory "D:\Dados\dados\htdocs\servicos\viderahome\www">
        Order allow,deny
        Allow from all
        Require all granted
     </Directory>
</VirtualHost>

主机文件

C:\\windows\\system32\\drivers\\etc\\hosts

127.0.0.1 viderahome.local www.viderahome.local

日志

错误日志

[Wed Jun 30 08:31:41.565771 2021] [php7:notice] [pid 8356:tid 2060] [client 127.0.0.1:60483] PHP Notice: compact(): Undefined variable: extras in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\View\\Helper\\HeadLink.php on line 393
[Wed Jun 30 08:31:41.565898 2021] [php7:notice] [pid 8356:tid 2060] [client 127.0.0.1:60483] PHP Notice: compact(): Undefined variable: extras in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\View\\Helper\\HeadLink.php on line 393
[Wed Jun 30 08:31:41.565898 2021] [php7:notice] [pid 8356:tid 2060] [client 127.0.0.1:60483] PHP Notice: compact(): Undefined variable: extras in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\View\\Helper\\HeadLink.php on line 393
[Wed Jun 30 08:31:41.565898 2021] [php7:notice] [pid 8356:tid 2060] [client 127.0.0.1:60483] PHP Notice: compact(): Undefined variable: extras in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\View\\Helper\\HeadLink.php on line 393
[Wed Jun 30 08:31:41.597514 2021] [php7:error] [pid 8356:tid 2060] [client 127.0.0.1:60483] PHP Fatal error: Uncaught Zend_Session_Exception: Zend_Session::start() - D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Session.php(Line:477): Error #2 session_start(): Failed to read session data: files (path: /tmp) in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Session.php:490\nStack trace:\n#0 D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\application\\Bootstrap.php(84): Zend_Session::start()\n#1 D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Application\\Bootstrap\\BootstrapAbstract.php(669): Bootstrap->_initSession()\n#2 D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Application\\Bootstrap\\BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('session')\n#3 D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Application\\Bootstrap\\BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap('session')\n#4 D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Application.php(355): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NU in D:\\Dados\\dados\\htdocs\\servicos\\viderahome\\library\\Zend\\Session.php on line 490

访问日志

127.0.0.1 - - [30/Jun/2021:08:31:41 -0300] "GET / HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

每次我在浏览器中运行 URL viderahome.local 时,它都指向我的 Web 服务器的根目录,而不是 Zend 应用程序文件夹。

可能缺少什么?

此致。

里卡多。

在配置文件的顶部有一个 SetEnv,其中 php 的路径是硬编码的。 删除此处定义的环境变量,以便 Apache 不会覆盖您的别名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM