2010-02-04 54 views
19
當我運行 php -m cmd時,

POSIX沒有出現,但是,我在Linux上使用Plesk 9從phpinfo()–enable-posix=shared看到它.如何在php中安裝posix

基本上,我不能使用 http://www.php.net/manual/en/ref.posix.php

中描述的posix_*()函數不存在:

if (function_exists('posix_getuid')) { 
    echo "posix_getuid available"; 
} else { 
    echo "posix_getuid not available"; // this prints in my server. 
} 

有人可以告訴我如何安裝它嗎?謝謝。

 
[PHP Modules] 
bz2 
calendar 
ctype 
curl 
date 
dbase 
dom 
exif 
fileinfo 
filter 
ftp 
gd 
geoip 
gettext 
gmp 
hash 
iconv 
imap 
ionCube Loader 
json 
libxml 
mbstring 
mcrypt 
memcache 
mhash 
mysql 
mysqli 
openssl 
pcntl 
pcre 
PDO 
pdo_mysql 
pdo_sqlite 
readline 
Reflection 
session 
shmop 
SimpleXML 
sockets 
SPL 
sqlite 
standard 
tokenizer 
wddx 
xml 
xmlreader 
xmlwriter 
xsl 
zip 
zlib 
+0

您在Windows或Linux? – 2010-02-04 05:43:57

+0

Linux的發行版? – 2010-02-04 06:14:10

回答

37

我發現瞭解決方案:

yum install php-process 

此包使PHP-POSIX。

+1

順便說一句 - 如果你使用的是一個典型的亞馬遜AMI,你會希望這個Package中的System_Daemon包正常工作。 – Ross 2012-08-20 15:42:06

+0

php-process包的名稱取決於您正在運行的php版本,例如'php56w-process.x86_64','php71w-process.x86_64'。 – 2017-07-03 02:51:07

3

雖然解決了,原來的問題似乎是posix_getpwuid不支持Windows:

來自:http://www.php.net/manual/en/function.posix-getpwuid.php

在Windows上,posix_getpwuid()不落實

  • 如果你只是想要當前用戶的用戶名,您可以使用get_current_user()

  • 要正確獲取正在運行的用戶,請測試function_exists('posix_getpwuid'),如果不是,則假定您在Windows上運行,並調用getenv('USERNAME')

+0

我認爲你的回答與這個問題完全無關。這個問題發生在Linux上,而使用的函數是另外一個。 – Sven 2012-11-07 22:25:53

1

在openSUSE的使用命令zypper install php-posix安裝PHP-過程使用PHP函數posix_getuid