无法在 Ubuntu 上使用 phpbrew 启动 fpm


Cannot start fpm using phpbrew on Ubuntu

我已经安装了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.38PHP 二进制文件:/home/datamechanics/.phpbrew/php/php-5.4.38/bin/phpPHP 默认包含路径: .: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 在任何地方都依赖于 getPhpbrewHome 函数。

除非您使用 PHPBREW_HOME=/blah phpbrew ... 显式定义PHPBREW_HOME否则它将使用 HOME 环境变量来生成安装/执行路径。但是运行 sudo 会覆盖 HOME,除非您告诉它使用 -E 保留环境:env |grep HOME => /home/vagrantsudo env |grep HOME => HOME=/rootsudo -E env |grep HOME => HOME=/home/vagrant

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

您很可能有 3 个选项来解决您的问题:

  1. 使用 sudo sudo phpbrew install 5.4.38 +fpm +mysql安装 PHP
  2. 对当前用户运行phpbrew fpm
  3. 使用 sudo sudo PHPBREW_HOME=/home/datamechanics/.phpbrew phpbrew fpm start 运行时显式设置PHPBREW_HOME

完成所有这些尝试使用 OSX 作为开发服务器。

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

尝试过 Vagrant,但它的废话以及它预示 DNS 和端口转发的事实不是远程主机的正确表示 - 我们希望在建模服务器上尽可能多地进行测试还是真实?

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

我现在使用 PHPStorm 在带有 VM 的共享目录上进行编辑,使用 Chrome 中的零配置工具书签来调试 PHP。

这正在变成OSX笔记本电脑上的完美开发设置(我的主要目标),但可以在任何地方使用,因为所有基于GIT的。

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