无法使用php exec函数执行nutch crawl命令

我必须使用php exec运行Nutch抓取命令,但它显示</ p>



“0错误:未设置JAVA_HOME”</ p>
</ blockquote>

该命令适用于终端</ strong>。 我在crawl.php中尝试了以下代码,其中放置了 apache-nutch-1.15 </ strong>目录。 </ p>

  exec('apache-nutch-1.15 / bin / nutch inject crawl / crawldb urls',$ output); 
</ code> </ pre>
\ n

这就产生了上述错误。</ p>

提前感谢您提供的任何帮助。</ p>
</ div>

展开原文

原文

I have to run Nutch crawl commands using php exec but it shows

"0 Error: JAVA_HOME is not set"

The command works fine with terminal. I have tried the below code in crawl.php where apache-nutch-1.15 directory is placed.

exec('apache-nutch-1.15/bin/nutch inject crawl/crawldb urls',$output);

and this gives the above mentioned error.

Thank you in advance for any assistance you can provide.

1个回答



为了运行Nutch,您需要设置 JAVA_HOME </ code>环境变量并指向正确的路径( 已安装JVM)。 这适用于您的终端,因为您已经设置了此变量。 您可以通过以下方式进行检查:</ p>

  $ env |  grep JAVA 
</ code> </ pre>

当使用PHP的 exec </ code>启动新进程时,未设置此环境变量,因为它不是shell, 你只是在没有任何“shell环境”的情况下开始一个进程。 您可以使用 putenv </ code> 功能 在调用 exec </ code>之前指定一些环境变量。</ p>
</ div>

展开原文

原文

In order to run Nutch you need the JAVA_HOME environment variable set and pointing to the proper path (where your JVM is installed). This works on your terminal because you have this variable set already. You can check this with:

$ env | grep JAVA

When a new process is started with exec from PHP, this environment variable is not set because it is not a shell, you're only starting a process without any "shell environment". You can use the putenv function to specify some environment variables before calling exec.

doubi3996
doubi3996 谢谢。 我将尝试其余的api。
一年多之前 回复
dongqiuge5435
dongqiuge5435 Apache Nutch有一个(有限的)REST API:wiki.apache.org/nutch/Nutch_1.X_RESTAPI您可以运行它并使用PHP与API交互来启动并(在某种程度上)配置爬网。
一年多之前 回复
dousi7919
dousi7919 再次感谢你给我澄清。你能建议我做一个解决方案吗?
一年多之前 回复
dqyy38265
dqyy38265 很可能运行php的用户无法访问/写入Nutch持久抓取数据的路径。
一年多之前 回复
douzhang3356
douzhang3356 谢谢jorge,它的工作和我使用的putenv就像你说的那样,putenv('JAVA_HOME = / usr / lib / jvm / java-8-oracle'); “JAVA_HOME未设置”错误消失了。 但现在它显示“Generator:java.io.FileNotFoundException:/var/www/html/NutchSearch/apache-nutch-1.15/crawl/crawldb/.locked(Permission denied)”。 所以我尝试了exec('chmod + x apache-nutch-1.15 / bin / nutch'); 但没有奏效
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐