2016-03-27 8 views
0

GeoGigはバージョン管理用の新しいツールですが、gitと同じ機能を持っています。 私はこの新しいツールを実装していますが、shell_exec( "geogig init")を使用すると問題に直面しています。 私はapacheのPATH変数を設定しました。これは/ opt/geogig/binを指しています。ここでgeogigのバイナリファイルがあります。これは私のphpの中でコマンドラインgeogigを使うことができます。 私の問題は、このコマンドは、ローカルリポジトリの特定の部分を作成することですが、もしくはshell_execスローエラーを取得:PHPでshell_exec geogig initを使用しているときに許可が拒否されました

12:15:33.678 [main] ERROR o.locationtech.geogig.cli.GeogigCLI - An unhandled error occurred: java.io.IOException: Permission denied. See the log for more details. 
org.locationtech.geogig.storage.ConfigException: java.io.IOException: Permission denied 
    at org.locationtech.geogig.storage.fs.IniFileConfigDatabase$2.iniFile(IniFileConfigDatabase.java:63) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.fs.INIFile.checkReload(INIFile.java:330) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.fs.INIFile.get(INIFile.java:56) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.fs.IniFileConfigDatabase.getGlobal(IniFileConfigDatabase.java:100) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.bdbje.JEObjectDatabase.newTransaction(JEObjectDatabase.java:878) ~[geogig-bdbje-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.bdbje.JEObjectDatabase.putInternal(JEObjectDatabase.java:630) ~[geogig-bdbje-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.AbstractObjectStore.put(AbstractObjectStore.java:224) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.ForwardingObjectDatabase.put(ForwardingObjectDatabase.java:127) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.di.ObjectDatabasePutInterceptor$GraphUpdatingObjectDatabase.put(ObjectDatabasePutInterceptor.java:65) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.storage.ForwardingObjectDatabase.put(ForwardingObjectDatabase.java:127) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.api.porcelain.InitOp.callInternal(InitOp.java:216) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.api.porcelain.InitOp._call(InitOp.java:125) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.api.porcelain.InitOp._call(InitOp.java:64) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.api.AbstractGeoGigOp.call(AbstractGeoGigOp.java:133) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.cli.porcelain.Init.runInternal(Init.java:99) ~[geogig-cli-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68) ~[geogig-cli-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:543) [geogig-cli-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:385) [geogig-cli-1.0-RC1a.jar:1.0-RC1a] 
    at org.locationtech.geogig.cli.GeogigCLI.main(GeogigCLI.java:340) [geogig-cli-1.0-RC1a.jar:1.0-RC1a] 
Caused by: java.io.IOException: Permission denied 
    at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_74] 
    at java.io.File.createNewFile(File.java:1012) ~[na:1.8.0_74] 
    at org.locationtech.geogig.storage.fs.IniFileConfigDatabase$2.iniFile(IniFileConfigDatabase.java:61) ~[geogig-core-1.0-RC1a.jar:1.0-RC1a] 
    ... 18 common frames omitted 
An unhandled error occurred: java.io.IOException: Permission denied. See the log for more details. 

誰もがアイデアを持っているの? ありがとう

答えて

0

GeoGigが読み書きしようとしているファイルには、読み書きする権限を持たないユーザーPHPが実行しているものがあります。私はあなたにエラーメッセージが表示され、 "詳細はログを参照してください"とお勧めします。そのファイルが何であるかを調べる。

0

私は、コマンドラインのsudo visudoをしてvisudoをして追加することで問題を解決: secure_path="......:/opt/geogig/bin" と、ファイルの末尾: www-data ALL=NOPASSWD: ALL

そして、私は「sudoをgeogigのinit」追加しましたもしくはshell_execで

私はこれが同じ問題に直面している人に役立つことを願っています。

ありがとうChris

関連する問題