LINUX下PHP對命名管道操作許可權問題解決小記

2021-05-21 22:03:46 字數 992 閱讀 5613

這兩天碰到乙個小問題卡了我老半天……就是linux下php程式與其他程式通訊。

我們需要實現使用者在web頁面上進行操作時可以啟用我們在伺服器端的後台程式(用c、c++編寫)。

之前在windows下,已經使用命名管道實現(請見我之前的博文http://blog.csdn.net/rcfalcon/archive/2010/02/09/5303142.aspx),這次將伺服器整體移往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下,已經使用命名管道實現 請見我之前的博文這次將伺服器整體移往linux下。伺服器環境 centos 5 apa...

Linux命名管道

命名管道實現了沒有親緣關係的程序的通訊,建立命名管道時候,系統建立了乙個fifo的檔案,通過對檔案的操作,實現走了沒有親緣關係的管道也可以資料交換,相比普通管道 命名管道多了管道的開啟和刪除,因為是檔案嗎,當然劇本檔案的屬性了。1.可以通過該shell命令建立命名管道,mknod 和mkfifo,比...

Linux下程序間通訊 命名管道

管道是一種兩個程序間進行單向通訊的機制。因為管道傳遞資料的單向性,管道又稱為半雙工管道。管道的這一特點決定了器使用的侷限性。管道是linux支援的最初unix ipc形式之一,具有以下特點 1,資料只能由乙個程序流向另乙個程序 其中乙個讀管道,乙個寫管道 如果要進行雙工通訊,需要建 立兩個管道 2,...