PHP-CLI无法在来宾虚拟机(Centos 6)内使用Samba Share(使用cifs)执行脚本,

我有一个在Virtualbox中作为guest虚拟机运行的centos 6虚拟机。 我已经build立了一个LAMP栈,我可以从主机(Windows)环境访问。

我已经用“mount -t cifs”挂载了一个SMB共享,​​我可以使用apache来提供这个共享中的文件(目前为止都是很好的)

问题我现在试图从命令行运行一个简单的test.php脚本这是我得到的输出(下面)

注意,如果我不正确地拼写文件名(不同的消息)会发生什么情况,所以文件就在那里,就好像php不能执行它一样。

我已经把它作为一个图像,因为我找不到从我的虚拟terminal复制任何方式。 任何帮助表示赞赏,我已经花费了比我想象的更多的时间来启动和运行。

编辑3:我不能从samba共享运行一个文件的时候,能够从命令行运行php,所以它与mount有关。 我安装了这个驱动器…

mount -t cifs -o username=xxxx,password=xxxx,nounix,fir_mode=0777,file_mode=0777,gid=48,uid=48 //path/to/samba/share /var/www/vhosts 

在这里输入图像说明

编辑1: -bash:hexdump test.php 0000000 6574 7473 6620 6c69 0a65 000000a

EDIT2:

strace -o mystraceoutput.txt -f -e trace =文件php test.php

 4423 execve("/usr/bin/php", ["php", "test.php"], [/* 19 vars */]) = 0 4423 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) 4423 open("/etc/ld.so.cache", O_RDONLY) = 3 4423 open("/lib/libcrypt.so.1", O_RDONLY) = 3 4423 open("/usr/lib/libedit.so.0", O_RDONLY) = 3 4423 open("/lib/libncurses.so.5", O_RDONLY) = 3 4423 open("/usr/lib/sse2/libgmp.so.3", O_RDONLY) = 3 4423 open("/lib/libbz2.so.1", O_RDONLY) = 3 4423 open("/lib/libz.so.1", O_RDONLY) = 3 4423 open("/lib/libpcre.so.0", O_RDONLY) = 3 4423 open("/lib/libm.so.6", O_RDONLY) = 3 4423 open("/lib/libdl.so.2", O_RDONLY) = 3 4423 open("/lib/libnsl.so.1", O_RDONLY) = 3 4423 open("/usr/lib/libxml2.so.2", O_RDONLY) = 3 4423 open("/lib/libgssapi_krb5.so.2", O_RDONLY) = 3 4423 open("/lib/libkrb5.so.3", O_RDONLY) = 3 4423 open("/lib/libk5crypto.so.3", O_RDONLY) = 3 4423 open("/lib/libcom_err.so.2", O_RDONLY) = 3 4423 open("/usr/lib/libssl.so.10", O_RDONLY) = 3 4423 open("/usr/lib/libcrypto.so.10", O_RDONLY) = 3 4423 open("/lib/libc.so.6", O_RDONLY) = 3 4423 open("/lib/libresolv.so.2", O_RDONLY) = 3 4423 open("/lib/libfreebl3.so", O_RDONLY) = 3 4423 open("/lib/libtinfo.so.5", O_RDONLY) = 3 4423 open("/lib/libkrb5support.so.0", O_RDONLY) = 3 4423 open("/lib/libkeyutils.so.1", O_RDONLY) = 3 4423 open("/lib/libpthread.so.0", O_RDONLY) = 3 4423 open("/lib/libselinux.so.1", O_RDONLY) = 3 4423 statfs64("/selinux", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=2711275, f_bfree=2380713, f_bavail=2242985, f_files=689520, f_ffree=642048, f_fsid={-1727257207, 1632688387}, f_namelen=255, f_frsize=4096}) = 0 4423 open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3 4423 getcwd("/var/www/vhosts/vhosts/user/mysite.co.uk/web", 4096) = 45 4423 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 4423 open("/etc/localtime", O_RDONLY) = 3 4423 lstat64("/usr/local/sbin/php", 0xbfe43dec) = -1 ENOENT (No such file or directory) 4423 lstat64("/usr/local/bin/php", 0xbfe43dec) = -1 ENOENT (No such file or directory) 4423 lstat64("/sbin/php", 0xbfe43dec) = -1 ENOENT (No such file or directory) 4423 lstat64("/bin/php", 0xbfe43dec) = -1 ENOENT (No such file or directory) 4423 lstat64("/usr/sbin/php", 0xbfe43dec) = -1 ENOENT (No such file or directory) 4423 lstat64("/usr/bin/php", {st_mode=S_IFREG|0755, st_size=3281860, ...}) = 0 4423 lstat64("/usr/bin", {st_mode=S_IFDIR|0555, st_size=20480, ...}) = 0 4423 lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 4423 access("/usr/bin/php", X_OK) = 0 4423 open("/usr/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 4423 open("/etc/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 4423 open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 4423 open("/etc/php.ini", O_RDONLY) = 3 4423 lstat64("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69109, ...}) = 0 4423 lstat64("/etc", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 4423 open("/etc/php.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 4423 stat64("/etc/php.d/curl.ini", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0 4423 open("/etc/php.d/curl.ini", O_RDONLY) = 3 4423 stat64("/etc/php.d/fileinfo.ini", {st_mode=S_IFREG|0644, st_size=57, ...}) = 0 4423 open("/etc/php.d/fileinfo.ini", O_RDONLY) = 3 4423 stat64("/etc/php.d/json.ini", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0 4423 open("/etc/php.d/json.ini", O_RDONLY) = 3 4423 stat64("/etc/php.d/phar.ini", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0 4423 open("/etc/php.d/phar.ini", O_RDONLY) = 3 4423 stat64("/etc/php.d/zip.ini", {st_mode=S_IFREG|0644, st_size=47, ...}) = 0 4423 open("/etc/php.d/zip.ini", O_RDONLY) = 3 4423 open("/usr/lib/php/modules/curl.so", O_RDONLY) = 3 4423 open("/etc/ld.so.cache", O_RDONLY) = 3 4423 open("/usr/lib/libcurl.so.4", O_RDONLY) = 3 4423 open("/lib/libidn.so.11", O_RDONLY) = 3 4423 open("/usr/lib/libldap-2.4.so.2", O_RDONLY) = 3 4423 open("/lib/librt.so.1", O_RDONLY) = 3 4423 open("/usr/lib/libssl3.so", O_RDONLY) = 3 4423 open("/usr/lib/libsmime3.so", O_RDONLY) = 3 4423 open("/usr/lib/libnss3.so", O_RDONLY) = 3 4423 open("/usr/lib/libnssutil3.so", O_RDONLY) = 3 4423 open("/lib/libplds4.so", O_RDONLY) = 3 4423 open("/lib/libplc4.so", O_RDONLY) = 3 4423 open("/lib/libnspr4.so", O_RDONLY) = 3 4423 open("/usr/lib/libssh2.so.1", O_RDONLY) = 3 4423 open("/usr/lib/liblber-2.4.so.2", O_RDONLY) = 3 4423 open("/usr/lib/libsasl2.so.2", O_RDONLY) = 3 4423 open("/usr/lib/php/modules/fileinfo.so", O_RDONLY) = 3 4423 open("/usr/lib/php/modules/json.so", O_RDONLY) = 3 4423 open("/usr/lib/php/modules/phar.so", O_RDONLY) = 3 4423 open("/usr/lib/php/modules/zip.so", O_RDONLY) = 3 4423 open("/proc/sys/crypto/fips_enabled", O_RDONLY) = 3 4423 stat64("/root/.terminfo", 0xbfe454b0) = -1 ENOENT (No such file or directory) 4423 stat64("/etc/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 4423 access("/etc/terminfo/l/linux", R_OK) = -1 ENOENT (No such file or directory) 4423 stat64("/usr/share/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 4423 access("/usr/share/terminfo/l/linux", R_OK) = 0 4423 open("/usr/share/terminfo/l/linux", O_RDONLY|O_LARGEFILE) = 3 4423 open("/root/.editrc", O_RDONLY) = -1 ENOENT (No such file or directory) 4423 open("/etc/nsswitch.conf", O_RDONLY) = 3 4423 open("/etc/ld.so.cache", O_RDONLY) = 3 4423 open("/lib/libnss_files.so.2", O_RDONLY) = 3 4423 open("/etc/protocols", O_RDONLY|O_CLOEXEC) = 3 4423 open("/etc/protocols", O_RDONLY|O_CLOEXEC) = 3 4423 open("test.php", O_RDONLY) = 3 4423 getcwd("/var/www/vhosts/vhosts/user/mysite.co.uk/web", 4096) = 45 4423 lstat64("/var/www/vhosts/vhosts/user/mysite.co.uk/web/test.php", {st_mode=S_IFREG|0777, st_size=10, ...}) = 0 4423 lstat64("/var/www/vhosts/vhosts/user/mysite.co.uk/web", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0 4423 lstat64("/var/www/vhosts/vhosts/user/mysite.co.uk", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0 4423 lstat64("/var/www/vhosts/vhosts/user", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0 4423 lstat64("/var/www/vhosts/vhosts", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0 4423 lstat64("/var/www/vhosts", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0 4423 lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 4423 lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 

然后执行被中断与以前相同的错误(PHP的致命错误:等….)

通过将“noserverino”添加到安装参数来解决

你确定test.php确实包含 test.php吗? 这可能会导致不好的结果。

如果你可以在复制到本地文件存储时从CLI运行相同的 PHP文件,那么我认为这可能是一个SELinux安全问题。

尝试查看SELinux通知的消息或暂时禁用它。 即使在本地文件系统上,SELinux阻止访问的文件也存在很多问题(直到我们find了)。