如何在linux debian

时间:2017-10-20 15:29:53

标签: php linux scrapy debian debian-jessie

正如标题所说......我怎么能用php的特定url参数运行我的scrapy项目?我以前在Windows上试过这个并且它工作得很好,现在在linux上它什么也没做。

在Windows上工作:

pclose(popen('cd .. & scrapy crawl mySpider -a "urls=http://www.example.com/'.$variable1.'/'.$variable2.'"','r'));

在Linux上无法正常工作:

pclose(popen('sudo cd .. | sudo scrapy crawl mySpider -a "urls=http://www.example.com/'.$variable1.'/'.$variable2.'"','r'));

我已经检查过php文件试图以用户www-data的形式执行脚本,所以我将此用户添加到sudoer列表中进行测试,但它仍然无法正常工作。当我尝试直接在shell中使用该命令时,它正在工作。我还检查了所有文件是否归www-data所有,并且是可执行文件。我的蜘蛛由www-data拥有,拥有755项权利。 我在这里缺少什么?

编辑: 当我将用户更改为www-data并尝试运行它可以运行的命令时,只是php脚本没有运行。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我发现php并不了解Pipe操作符。

执行该命令的正确方法如下:

pclose(popen('cd .. ; scrapy crawl mySpider -a "urls=https://example.com', 'r'));

必须使用分号。