【问题标题】:Apache: Change XAMPP/PHP handle from application/x-httpd-php to application/x-httpd-php5Apache:将 XAMPP/PHP 句柄从 application/x-httpd-php 更改为 application/x-httpd-php5
【发布时间】:2012-03-06 01:34:16
【问题描述】:

我的目标是不再需要我的 .htaccess 文件的本地副本和实时副本,而是能够对本地/实时配置使用相同的单个 .htaccess 文件。这将迫使我更好地理解配置服务器。

我的本​​地服务器是我计算机上的 XAMPP,而我的实时服务器是一个共享的网络主机,我显然无法更改设置。我还不能从头开始配置所有东西,所以我会坚持使用 XAMPP 一段时间。此外,任何熟悉 XAMPP 的人都应该知道,我曾尝试使用他们的论坛(登录/密码重置失败),而管理员已经好几天没有回复我的电子邮件,所以我确实尝试了更针对目标的路线,但没有成功。

更具体的问题是我想为我的本地服务器使用我的实时共享服务器的 PHP 处理程序。

要在我的实时共享网络主机上的非本机文件中执行 PHP,我使用以下...

public_html/.htaccess

AddType application/x-httpd-php5 .css .html .js .txt .xml

...我想配置我的计算机/本地设置来模拟这一点,因此我不必为本地/实时保留单独的 .htaccess 文件副本(这迫使我学习如何配置服务器)。目前我必须在本地使用以下...

public_html/.htaccess

AddType application/x-httpd-php .css .html .js .txt .xml

我能够找到配置在 XAMPP 1.7.7(当前最新版本)中的位置...

xampp\apache\conf\extra\httpd-xampp.conf

现在我对更改正在使用的 PHP 版本不感兴趣(不是我的目标)...我只是想确保我可以在本地使用与实际生活相同的句柄。我尝试简单地将字符串 '5' 添加到下面的第 17 行(?),尽管这不起作用(当然是保存、停止服务器、重新启动服务器)。

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

#
# PHP-Module setup
#
LoadFile "C:/MEDIA/INTERNET/xampp/php/php5ts.dll"
LoadModule php5_module "C:/MEDIA/INTERNET/xampp/php/php5apache2_2.dll"

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

#
# PHP-CGI setup
#
#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php-cgi
#</FilesMatch>
#<IfModule actions_module>
#    Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
#</IfModule>


<IfModule php5_module>
    PHPINIDir "C:/MEDIA/INTERNET/xampp/php"
</IfModule>

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

ScriptAlias /php-cgi/ "C:/MEDIA/INTERNET/xampp/php/"
<Directory "C:/MEDIA/INTERNET/xampp/php">
    AllowOverride None
    Options None
    Order deny,allow
    Deny from all
    <Files "php-cgi.exe">
        Allow from all
    </Files>
</Directory>

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

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

<IfModule alias_module>
    Alias /security "C:/MEDIA/INTERNET/xampp/security/htdocs/"
    <Directory "C:/MEDIA/INTERNET/xampp/security/htdocs">
        <IfModule php5_module>
            <Files "xamppsecurity.php">
                php_admin_flag safe_mode off
            </Files>
        </IfModule>
        AllowOverride AuthConfig
   </Directory>

    Alias /phpmyadmin "C:/MEDIA/INTERNET/xampp/phpMyAdmin/"
    <Directory "C:/MEDIA/INTERNET/xampp/phpMyAdmin">
        AllowOverride AuthConfig
    </Directory>

    Alias /webalizer "C:/MEDIA/INTERNET/xampp/webalizer/"
    <Directory "C:/MEDIA/INTERNET/xampp/webalizer">
        <IfModule php5_module>
            <Files "webalizer.php">
                php_admin_flag safe_mode off
            </Files>
        </IfModule>
        AllowOverride AuthConfig
    </Directory>
</IfModule>

所以我不知道如何分配“application/x-httpd-php5”来处理分配的任何“application/x-httpd-php”记住我不想更改我正在使用的 PHP 版本(工作正常)。

我还应该注意,在使用程序 Advanced Find & Replace 后,我在 XAMPP 目录中找到了八个带有字符串“application/x-httpd-php”的文件,但是上面的文件似乎是唯一的一个与 Apache 的配置相关。

【问题讨论】:

    标签: php apache configuration xampp


    【解决方案1】:

    不是你的问题的真正答案,但我不会对自己这样做。 Apache 的配置文件格式并不是真正为这样的东西而构建的。

    对我来说,拥有两个单独的 htaccess 文件(如 .htaccess.htaccess.local,并通过 AccessFileName 指令控制本地服务器:

    AccessFileName .htaccess.local
    

    是最好的选择。

    如果您真的想将所有内容都放在一个文件中,可以使用&lt;IfDefine&gt; 块来分隔本地和实时指令。您必须在本地启动服务器时设置一个定义,然后可以测试该定义的存在或不存在。

    【讨论】:

    • 不幸的是,这并不能帮助我学习如何配置 Apache,在这种情况下 PHP 虽然 AccessFileName 我很容易假设让我将 .htaccess 更改为其他东西,所以我很感谢你提到,但是我可以'不接受这个作为答案,将投票。
    • @John 很公平。我添加了一段关于你如何能够实现你想要的东西的段落。问题是 .htaccess 格式在条件块之类的东西上并不是很强大 - 它确实不是为此而设计的 - 但也许 IfDefine 可以为你工作,我从未使用过它,所以我不能肯定地说
    • 在花时间配置一切之后,这似乎是最好的方法。我现在继续使用 .local.htaccess 和 .htaccess 文件,并在本地记录配置更改,以防我必须重建我的服务器。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2011-11-18
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2022-01-27
    相关资源
    最近更新 更多