1

Windows 7で仮想ホストを構成しています。プロジェクトはC:\project、次の構造で配置されています。

project
  \cache
  \configs
  \htdocs
    \css
    \images
    \js
    \.htaccess
    \index.php
  \includes
    \setup.php
    \en.php
  \lib
  \templates
  \templates_c

私のhttpd-vhosts.conf中で、私はVirtualHostを作成しました:

 <VirtualHost *:80>
    DocumentRoot "C:/project/htdocs"
    ServerName project.dev

    <Directory "C:/project/htdocs">
        Options Indexes FollowSymLinks ExecCGI Includes
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

そして、に追加さ127.0.0.1 project.devれましたC:\Windows\System32\drivers\etc\hosts

問題は、ファイルを提供するhtdocsディレクトリにしたいのhttpdですが、たとえば、includesディレクトリにあるファイルをPHPに含めたいということです。

どうすればこの問題を解決できますか?$_SERVER['DOCUMENT_ROOT']私はすでにApacheAliasと微調整まで非常に多くのソリューションを試し.htaccessましたが、これまでのところどれもうまくいきませんでした。簡単な解決策が必要です。たぶん私はDocumentRootの概念を完全に正しく理解していません。public_html/www/htdocs重要なファイルをブラウザ/ユーザーの範囲外に保ちながら、一般的なサーバーフォルダをエミュレートしたいだけです。

4

2 に答える 2

1

これは私が自分から取ったVHostですhttpd-vhosts.conf。私が作成した唯一の追加の構成は、私がヒットしていた403を回避することでした。

<VirtualHost *:80>
    ServerName "Markdown.loc"
    ServerAlias "www.Markdown.loc"
    DocumentRoot "C:\INTERNAL\PHP\Markdown"
    <Directory "C:\INTERNAL\PHP\Markdown">
        Options +Indexes
        AllowOverride All
    </Directory>
</VirtualHost>

他のすべてのVHostは次のようになります。

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/somesite.loc"
    ServerName somesite.loc
    ServerAlias www.somesite.loc
</VirtualHost>

ただし、htdocsと同じレベルのdirから何かを含めることを単に探している場合は、問題なく機能するinclude("../includes/somefile.php")はずです。

問題が間違っている場合はお知らせください。さらにサポートさせていただきます。

于 2013-03-03T03:09:45.170 に答える
1

仮想ホストまたは.htaccess内にインクルードパスを設定します。

php_value include_path ".;c:/project"
于 2013-03-03T03:25:04.093 に答える