별칭(apache)을 통해 액세스할 때 원시 소스를 표시하는 PHP 스크립트

별칭(apache)을 통해 액세스할 때 원시 소스를 표시하는 PHP 스크립트

몇 가지 다른 도메인이 있는 서버가 있습니다(각각 별도의 VHost에 있음). 각 VHost는 제대로 실행되고 PHP가 제대로 실행됩니다. 예를 들어 도메인 중 두 개는 foo.com과 bar.com입니다. bar.com 디렉토리의 파일을 포함할 foo.com 별칭을 만들려고 합니다. 쉽지요?

# Apache config file for foo.com
Alias /bar-alias /var/www/vhosts/bar.com/httpdocs/somedir
<Directory "/var/www/vhosts/bar.com/httpdocs/somedir">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow From All
        Deny From None
</Directory>

PHP 스크립트를 실행하려고 할 때를 제외하고는 훌륭하고 멋지게 작동합니다. 내 구성에서 www.foo.com/bar-alias/script.php로 이동하면 스크립트를 실행하는 대신 스크립트의 소스 코드가 반환됩니다. 나는 Apache가 이런 방식으로 PHP를 실행하도록 하는 방법을 알아내려고 벽에 머리를 찧었고, 아무것도 얻지 못했습니다.

(그렇다면조금도가능하다면 심볼릭 링크나 그런 작업을 수행하는 것을 피하고 싶습니다. 이것은 Apache의 구성 내에서만 수행할 수 있어야 하는 작업처럼 보이지만 어떻게 해야 할지 모르겠습니다.)

답변1

전체 http conf 읽기를 마치기 전에 별칭을 실행하는 것 같습니다. 별칭 앞이나 뒤에 다음 줄이 있습니까? 위로 이동해 보세요.
Include conf.d/*.conf

답변2

사실은 내가생각하다알겠어요. 엄청난 좌절감에 저는 구성의 이전 부분에서 다음을 복사하여 <Directory>이 별칭에 대한 블록에 집어넣었습니다...

<IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>

그리고 놀랍게도, 제가 예상했던 대로 작동하기 시작했습니다. 좀 더 노력할 예정이지만(실제로는 그럴 필요가 없을 것 같습니다) 당분간은 충분히 잘 작동하고 있습니다.

관련 정보