Windows 7x64 で最新の Zend Server を実行し、htdoc をドロップボックスに同期するさまざまな方法を試し、httpd.conf の 2 行を編集しました。
DocumentRoot "C:\Program Files (x86)\Zend\Apache2/htdocs"
<Directory "C:\Program Files (x86)\Zend\Apache2/htdocs">
さまざまなシンボリックリンク、ドロップボックスの場所など
元の状態に戻すと、php include と require が機能しなくなります。まったく同じ開発環境のデスクトップでまったく同じスクリプトが機能するため、スクリプトが問題ないことはわかっています。
すべてのユーザー名/パスワード/データベース名/その他を、通常は htdocs ディレクトリの外に保存される php ファイルに入れます。
require_once('constants.php');
(トラブルシューティングのために同じディレクトリで、 $_SERVER からdirまですべてを試しました。
このエラーをスローします:
警告: require_once(1): ストリームを開くことができませんでした: 17行目のC:\Program Files (x86)\Zend\Apache2\htdocs\index.phpにそのようなファイルまたはディレクトリはありません
致命的なエラー: require_once(): C:\Program Files (x86)\Zend の必須 '1' (include_path='.;C:\Program Files ( x86 )\Zend\ZendServer\share\ZendFramework\library') を開くことができませんでした17行目の\Apache2\htdocs\index.php
- スクリプトは、まったく同じソフトウェアを搭載した別のマシンで正常に動作しています。
- スクリプトをテストする目的では、同じディレクトリにある require_once でさえ機能しません。
- 変更する前に httpd.conf のバックアップを作成しましたが、元に戻しても効果はありませんでした。
- 正常なマシンから httpd.conf をコピーしましたが、変更はありません。
- zend パッケージ全体を 2 回完全に再インストールしましたが、変更はありません。
何がこれを引き起こしているのか途方に暮れています。何か案は?
これは、健全なマシンからすぐに使えるもので、# 削除されています:
DocumentRoot "C:\Program Files (x86)\Zend\Apache2/htdocs"
Each directory to which Apache has access can be configured with respect
to which services and features are allowed and/or disabled in that
directory (and its subdirectories).
First, we configure the "default" to be a very restrictive set of
features.
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Note that from this point forward you must specifically allow
particular features to be enabled - so if something's not working as
you might expect, make sure that you have specifically enabled it
below.
This should be changed to whatever you set DocumentRoot to.
<Directory "C:\Program Files (x86)\Zend\Apache2/htdocs">
Possible values for the Options directive are "None", "All",
or any combination of:
Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
Note that "MultiViews" must be named *explicitly* --- "Options All"
doesn't give it to you.
The Options directive is both complicated and important. Please see
http://httpd.apache.org/docs/2.2/mod/core.html#options
for more information.
Options Indexes FollowSymLinks
AllowOverride controls what directives may be placed in .htaccess files.
It can be "All", "None", or any combination of the keywords:
Options FileInfo AuthConfig Limit
AllowOverride None
Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>