Apache:将XAMPP / PHP句柄从application / x-httpd-php更改为application / x-httpd-php5

时间:2012-02-14 17:03:33

标签: php apache configuration xampp

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

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

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

要在我的实时共享Web主机上的非本机文件中执行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 \阿帕奇\ CONF \额外\的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&amp;替换我在XAMPP目录中找到了8个文件,其中包含字符串“application / x-httpd-php”,但上面的文件是唯一与Apache配置相关的文件。

1 个答案:

答案 0 :(得分:3)

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

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

AccessFileName .htaccess.local

是最好的方式。

如果您确实希望将所有内容都放在一个文件中,则可以使用<IfDefine>块来分隔本地和实时指令。您必须在本地启动服务器时设置定义,然后可以测试该定义是否存在。