這兩天碰到乙個小問題卡了我老半天……就是linux下php程式與其他程式通訊。
我們需要實現使用者在web頁面上進行操作時可以啟用我們在伺服器端的後台程式(用c、c++編寫)。
之前在windows下,已經使用命名管道實現(請見我之前的博文這次將伺服器整體移往linux下。
伺服器環境 centos 5 + apache + mysql + php
於是乎基本按照之前的**框架,很快就在伺服器端調通了。(但是我是使用的root使用者直接執行的php指令碼測試的)
但是後來測試通過web訪問的時候,提示說拿不到命名管道的許可權。
於是乎開始解決這個問題……
修改php.ini的open_basedir等設定,未果。
修改httpd.conf的若干設定,未果。
將命名管道chmod 777,未果。
將apache伺服器使用者組設成 root,未果。
再將命名管管道chown apache:root,未果。
嘗試php讀寫普通檔案,沒問題。
翻php官方手冊,未發現問題。
於是乎我開始抓狂了。
最後開始翻國外的程式設計論壇,終於看到有個人跟我情況類似。但是他說他把httpd換了個目錄然後restart service就行了,照著嘗試,未果……
最後看到有人說可能是selinux的問題,我在崩潰之餘懷著最後一絲希望把selinux禁了,然後重啟。
首先是一切正常,
然後gnome居然報了一堆錯,不管了,繼續
然後……
居然可以了!
萬惡的selinux……
原來centos5、rhel、fedora等自帶的預設安裝selinux,其在很大的程度上加強了整個linux系統的安全性。但是很多使用者許可權上受到限制,比如在我這個問題中,就是其把apache使用者的命名管道讀寫許可權給關閉了。
看來還是需要惡補 linux啊,太菜了~
LINUX下PHP對命名管道操作許可權問題解決小記
這兩天碰到乙個小問題卡了我老半天 就是linux下php程式與其他程式通訊。我們需要實現使用者在web頁面上進行操作時可以啟用我們在伺服器端的後台程式 用c c 編寫 之前在windows下,已經使用命名管道實現 請見我之前的博文http blog.csdn.net rcfalcon archive...
Linux命名管道
命名管道實現了沒有親緣關係的程序的通訊,建立命名管道時候,系統建立了乙個fifo的檔案,通過對檔案的操作,實現走了沒有親緣關係的管道也可以資料交換,相比普通管道 命名管道多了管道的開啟和刪除,因為是檔案嗎,當然劇本檔案的屬性了。1.可以通過該shell命令建立命名管道,mknod 和mkfifo,比...
Linux下程序間通訊 命名管道
管道是一種兩個程序間進行單向通訊的機制。因為管道傳遞資料的單向性,管道又稱為半雙工管道。管道的這一特點決定了器使用的侷限性。管道是linux支援的最初unix ipc形式之一,具有以下特點 1,資料只能由乙個程序流向另乙個程序 其中乙個讀管道,乙個寫管道 如果要進行雙工通訊,需要建 立兩個管道 2,...