Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用shell_exec geogig init时权限被拒绝_Php_Permissions - Fatal编程技术网

在PHP中使用shell_exec geogig init时权限被拒绝

在PHP中使用shell_exec geogig init时权限被拒绝,php,permissions,Php,Permissions,GeoGig是一个新的地理数据版本控制工具,它与git具有相同的功能。 我正在实现这个新工具,但是当我使用shell_exec(“geogig init”)时,我遇到了一个问题。 我在apache中设置了PATH变量,该变量指向/opt/geogig/bin,其中是geogig的二进制文件,通过该变量,我可以在php中使用命令行geogig。 我的问题是,此命令创建了本地存储库的某个部分,但得到了一个shell_exec抛出的错误: 12:15:33.678 [main] ERROR o.loc

GeoGig是一个新的地理数据版本控制工具,它与git具有相同的功能。 我正在实现这个新工具,但是当我使用shell_exec(“geogig init”)时,我遇到了一个问题。 我在apache中设置了PATH变量,该变量指向/opt/geogig/bin,其中是geogig的二进制文件,通过该变量,我可以在php中使用命令行geogig。 我的问题是,此命令创建了本地存储库的某个部分,但得到了一个shell_exec抛出的错误:

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.
有人有主意吗?
感谢

GeoGig正在尝试读取或写入一些文件,但用户PHP正在运行,因为该文件没有读取或写入权限。我建议您按照错误消息所说的操作,并“查看日志以了解更多详细信息”。以了解该文件是什么。

我通过使用命令行sudo visudo添加visudo解决了此问题:
secure_path=“……:/opt/geogig/bin”
在文件末尾:
www-data-ALL=NOPASSWD:ALL

在shell_exec中,我添加了“sudo geogig init”

我希望这能帮助任何面临同样问题的人

谢谢你,克里斯