1

私はWindows7+XAMPP環境のオフィスでZendFrameworkを使用しています。変更したくても変更できないので、適応する必要があります。そのため、Linuxに似た環境で動作するように、CygwinとConsole2を自然にインストールしました。PHPとMySQLのパスはWindowsの環境変数に含まれているため、CMDで行う場合は次のようになります。

php --version
PHP 5.4.4 (cli) (built: Jun 13 2012 21:27:06)

応答があります。Cygwig環境で同じことを行うと、応答も得られるので、CygwinはPHPパスを見つけることができます。Zend Frameworkについては、zipファイルをダウンロードし、ZF binディレクトリの内容C:\xampp\php(つまり、zf.sh、zf.bat、zf.php)とすべてのライブラリフォルダーの内容を抽出C:\xampp\php\pear\Zendして、正しいパスに配置しました。使用済み。

Windows CMDでは、次のようにエイリアスに似たものを作成することができました。

#cmd_aliases.txt
zf=php C:\xampp\php\zf.php $*

#cmd_autorun.cmd
@echo off
cls
doskey /macrofile=C:\Users\hector.ayala\Documents\cmd_aliases.txt

#cmd_autorun_install.cmd
reg add "hkcu\software\microsoft\command processor" /v Autorun /t reg_sz /d C:\cmd_autorun.cmd

そして今CMDで私はすることができます:

>zf show version
Zend Framework Version: 1.11.12

...意図した通り。ただし、 CygWinで同様のことを行うことはできません... Cygwinでこれを行いました:$ cd ZendFramework-XX $ mv bin / * / usr / local / bin $ chmod + x /usr/local/bin/zf.sh $ ln -s /usr/local/bin/zf.sh / usr / local / bin / zf

つまり、zf.shでZFを起動するために、にシンボリックリンクを作成しましたzf。しかし、私はこれを手に入れました:

$ zf show version
Could not open input file: /usr/local/bin/zf.php

それから私は言った、まあ!多分それはZFの問題です...私のPHPは私にそれのバージョンを返すので、PHPは機能します、確かにphpファイルのどんな種類でも機能します:

$ php simple_test.php
Could not open input file: simple_test.php

なに…?なぜPHPは機能するのに、同時に機能しないのですか?CMDで行ったように、単純なカスタムでZend Framekork CLIを呼び出すために何ができるzfでしょうか?

4

1 に答える 1

1

私は道を見つけました!!!! cygpathについて知りませんでした。これは、WindowsパスとPOSIXパスを変換するためのコマンドラインユーティリティです。Windowsがパスを理解できなかったため、zf.sh処理できず、そのためPHPバージョンを取得できましたが、PHPはファイルへのパスを理解できなかったため、Could not open input fileエラーが発生しました。したがって、必要なPHPは、パスを理解することだけでした。

それで、与えられたリンクの助けを読んでcygpath、私はこのコマンドを理解zf.shして、私のニーズに役人を適応させることができました。だから私はこれから最後の行に変更しました:

"$PHP_BIN" -d safe_mode=Off -f "$PHP_DIR/zf.php" -- "$@"

これに:

"$PHP_BIN" -d safe_mode=Off -f "$(cygpath -aw $PHP_DIR/zf.php)" -- "$@"

今それは動作します!

$ zf show version
Zend Framework Version: 1.11.12

うまくいけば、誰かがこれが役に立つと思うでしょう;)

于 2012-09-06T21:56:50.317 に答える