我試圖配置我的本地開發環境以讀取.less文件,以便在開發過程中可以編輯.less文件,並且僅當它轉換爲.css時時間去住。合理?我的MAMP測試服務器上的PHP腳本無法訪問node_module:less
我正在運行MAMP作爲我的本地測試服務器。我按照指示,我發現在這裏: http://programming-perils.com/155/parse-less-files-on-the-fly-and-serve-them-as-css/#comment-920
簡而言之,該計劃是使用htaccess文件捕獲請求.css文件,並將它們發送到PHP腳本編譯相同的名稱和的文件.LESS返回CSS代碼。
一切似乎都從命令行工作。我可以從命令行編譯一個.less文件並將其吐出css。我知道我的重寫規則正在工作,因爲我可以在瀏覽器中輸入url並查看我的php腳本的輸出。例如,如果我的PHP腳本調用echo shell_exec('pwd');
,我將看到在瀏覽器中打印的路徑。
問題是,我不能讓腳本運行得更少,除非我以root用戶身份登錄本地主機。當我退出SSH並運行命令時,我得到「權限被拒絕」。我懷疑當我的PHP腳本嘗試調用這個時會發生這種情況...所以它不會返回任何內容。
我想這個問題歸結爲如何讓我的PHP腳本運行較少的編譯器?
更新!我解決了這個問題...
事實證明,less命令(path/path/lessc
)需要sudo'ed。 PHP沒有這樣做,所以shell_exec()命令沒有返回任何東西。這就是爲什麼我的回聲陳述DID有效。
有很多方法來避開這個,但我確定編輯sudo visudo
的sudoers列表對我來說是最好的。 this post上有很多有用的提示。通過試驗和錯誤,我發現PHP使用www-data帳戶。加入這一行固定我的問題:
www-data ALL=(ALL) NOPASSWD: /var/root/node/npm/node_modules/less/bin/lessc
東西要記住的是,你還是要須藤添加到被送入了shell_exec命令()。希望這對別人有幫助。
嗨艾默生,我是作者,如果你指的是文章。當我提出這個解決方案時,我遇到了類似的問題,對不起,我之前沒有注意到這個問題,很高興你能夠正常工作。 –