无法在Ubuntu上使用phpbrew启动fpm

无法在Ubuntu上使用phpbrew启动fpm,php,linux,ubuntu,nginx,Php,Linux,Ubuntu,Nginx,我已经安装了phpbrew及其依赖项,但是使用规定的命令测试fpm时遇到问题: phpbrew switch 5.4.38 sudo phpbrew fpm start Did you mean 'app'? [Y/n] n Command fpm not found. available commands are: help, zsh, bash, meta, compile, archive, github:build-topics, app, init, known, install, l

我已经安装了phpbrew及其依赖项,但是使用规定的命令测试fpm时遇到问题:

phpbrew switch 5.4.38
sudo phpbrew fpm start
Did you mean 'app'? [Y/n] n
Command fpm not found. available commands are: help, zsh, bash, meta, compile, archive, github:build-topics, app, init, known, install, list, use, switch, each, config, info, env, extension, variants, path, cd, download, clean, update, ctags, list-ini, self-update, remove, purge, off, switch-off
Command: command not found
很明显,我在某个地方出了问题,但我找不到为什么它不会启动。我可以确认它在那里

cd ~/.phpbrew/php/php-5.4.38/sbin
ls
php-fpm
安装命令:

phpbrew install 5.4.38 +fpm +mysql;
信息:

版本 PHP-5.4.38

常数 PHP前缀:/home/datamechanics/.phpbrew/PHP/PHP-5.4.38 PHP二进制文件:/home/datamechanics/.phpbrew/PHP/PHP-5.4.38/bin/PHP PHP默认包含路径:: PHP包含路径::

一般信息

phpinfo()
PHP Version => 5.4.38

System => Linux dmdell02 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64
Build Date => Mar 10 2016 15:29:28
Configure Command =>  './configure'  '--prefix=/home/datamechanics/.phpbrew/php/php-5.4.38' '--with-config-file-path=/home/datamechanics/.phpbrew/php/php-5.4.38/etc' '--with-config-file-scan-dir=/home/datamechanics/.phpbrew/php/php-5.4.38/var/db' '--disable-all' '--enable-phar' '--enable-session' '--enable-short-tags' '--enable-tokenizer' '--with-pcre-regex' '--with-zlib=/usr' '--with-libdir=lib/x86_64-linux-gnu' '--enable-fpm' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--enable-dom' '--enable-libxml' '--enable-simplexml' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-xsl' '--with-libxml-dir=/usr'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /home/datamechanics/.phpbrew/php/php-5.4.38/etc
Loaded Configuration File => /home/datamechanics/.phpbrew/php/php-5.4.38/etc/php.ini
Scan this dir for additional .ini files => /home/datamechanics/.phpbrew/php/php-5.4.38/var/db
Additional .ini files parsed => (none)
PHP API => 20100412
PHP Extension => 20100525
Zend Extension => 220100525
Zend Extension Build => API220100525,NTS
PHP Extension Build => API20100525,NTS
Debug Build => no
Thread Safety => disabled
Zend Signal Handling => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => disabled
IPv6 Support => enabled
DTrace Support => disabled

Registered PHP Streams => compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transports => tcp, udp, unix, udg
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Extensions
Core, date, ereg, libxml, pcre, zlib, dom, SPL, session, standard, Reflection, mysqlnd, SimpleXML, Phar, mysqli, tokenizer, xml, xmlreader, xmlwriter, xsl, mysql

Database Extensions
mysqlnd
mysqli
mysql

如果你已经用sudo安装了phpbrew iteslf,那就没用了。phpbrew处处依赖函数

除非用PHPBREW_HOME=/blah PHPBREW显式定义PHPBREW_HOME。。。它将使用您的主环境变量生成安装/执行路径。但运行sudo会覆盖HOME,除非您告诉它使用-E:env | grep HOME=>/HOME/vagrant、sudo env | grep HOME=>HOME=/root、sudo-E env | grep HOME=>HOME=/HOME/vagrant来保护环境

换句话说,当您以普通用户身份运行它时,它会在/home/datamechanics/.phpbrew/中搜索php二进制文件;如果您使用sudo运行它,它会在/home/root/.phpbrew/中搜索php二进制文件

您很可能有3种选择来解决您的问题:

使用sudosudophpbrew安装5.4.38+fpm+mysql安装php 使用当前用户运行phpbrew fpm 使用sudo sudo PHPBREW_HOME=/HOME/datamechanics/.PHPBREW PHPBREW fpm start运行PHPBREW_HOME时显式设置PHPBREW_HOME
完成了所有这些,尝试将OSX用作开发服务器

现在使用PHPStorm和纯VirtualBox Ubuntu服务器安装。个人PHPStorm的价格和它的功能是惊人的。社区支持也是如此

尝试了Vagrant,但它的垃圾和它预示DNS和端口转发的事实并不是远程主机的正确表示-我们希望尽可能多地在建模服务器或真实服务器上进行测试

因此,答案是查看Windows和OSX无法提供行业Web服务器配置,并安装一个以Linux作为服务器的虚拟机

现在,我使用PHPStorm和VM在共享目录上进行编辑,使用Chrome中的零配置工具bookmarklet调试PHP

这将成为OSX笔记本电脑上的完美开发设置,我的主要目标是,它可以在任何地方使用,就像所有基于GIT的设备一样


很乐意提供提示,但考虑了我回答的这个问题。

这可能是因为sudo改变了您的路径环境。你试过用sudo-E运行它吗?谢谢ES-你能进一步澄清这一点吗,因为这可能是答案,运行phpbrew命令只是因为用户看起来工作正常,除了9000 in use error,但这只是配置。我是以sudo的身份安装的,为什么会出现这个问题?@Evgeny Oh-我是以sudo的身份安装phpbrew的,但不是php版本phpbrew install 5.4.38+fpm+mysql。没有足够的符号可以离开,因为我已经开始沿着您的选项1路线走了。你能告诉我,在安装了sudo的nginx的情况下,这些答案中哪一个是最好的吗?这是我正在整理的清单,因此我可以在将来@tim higham重复一遍,这取决于你想要实现的目标。例如,如果您需要为不同的用户提供多个php版本,其中一些用户有需要旧版本的遗留项目,那么您需要使用第二种方法。如果您安装的版本不在发行版的软件包中,但如果每个用户都有相同的版本,则可以,这是另一种情况,您应该选择第1条路径。第三个非常具体,我无法说出它的典型用例。感谢您的回答和进一步的评论。这里需要的主要结果是在linux上创建一个单用户Web服务器,该服务器应该运行最新的php,但也能够运行旧的php,例如,在有旧的mysql身份验证等不推荐的功能的情况下