我使用Laravel 5.3在家园与Vagant 1.8.7运行在VirtualBox.
我需要启用一些PHP扩展。
我知道我可以用ssh连接到框中并编辑php.ini以启用扩展,但这似乎是一种非常反流浪的方式。
我想告诉Vagrant为这个盒子提供特定的php扩展,这样我就可以简单地调用Vagrant up--provision
,盒子就可以启动了(有点像Vagrant,对吧?)
那么,我们如何在流浪者的家园中自动启用php扩展呢?
您应该首先使用ssh登录Homestad服务器(可能您已经知道这一点-流浪者ssh)。
然后转到/etc/php/7.0/fpm/还有这个位置的cli/etc/php/7.0/cli/编辑它与sudo viphp.ini(esc和: wq保存更改)。
然后您应该重新启动nginx:
sudo nginx -s reload"
然后,重新启动php fpm:
sudo service php7.0-fpm restart"
如果您不确定在您的家园上是PHP5.x还是PHP7.x,请使用
find / -name php.ini
要找到php.ini-你可能会得到2或3个结果。
以防仍然需要这个:
=
=
sudo apt-get update
sudo apt-get install php7.0-apcu -y
sudo service php7.0-fpm restart
或者简单地添加到after.sh:
sudo apt-get install php7.x-apcu -y
经过一些修补,下面是我想出的。我不保证这是正确的方法,只是在我的情况下,这似乎是有效的:
在.sh之后查找安装homestead时生成的。对我来说,在Mac El Capitain上,文件是在
~/.homestead/after.sh
创建的,我想象在windows上的类似位置有一个.bat
。
不要错误地编辑
~/homestad/src/stubs/after.sh
,这是homestad安装中的模板文件,而不是您实际生成的副本。
将以下行添加到.sh之后的
(这是我的整个文件,默认文件中只有前5行注释):
#!/bin/sh
# If you would like to do some extra provisioning you may
# add any commands you wish to this file and they will
# be run after the Homestead machine is provisioned.
# in the below --assume-yes is to avoid confirms [y/N]
# DEBIAN_FRONTEND=noninteractive is to avoid a big menu asking if it's ok to
# overwrite the php.ini file, may make --assume-yes redundant, not sure
# run apt-get update first, without it I was getting errors not finding the extensions
sudo DEBIAN_FRONTEND=noninteractive apt-get --assume-yes update
# load any extensions you like here
sudo DEBIAN_FRONTEND=noninteractive apt-get --assume-yes install php-xdebug
sudo DEBIAN_FRONTEND=noninteractive apt-get --assume-yes install php7.0-ldap # update to php7.2-ldap if using php 7.2 etc...
# enable xdebug via cli
sudo phpenmod -s cli xdebug
# restart php and nginx
sudo service php7.3-fpm restart && sudo service nginx restart
如果你在心理上不知道你需要的扩展名的确切名称(我不知道),你可以使用
sudo-apt-cache-search php7-*
或类似工具列出可用的扩展名
现在,如果你有宅地,在终端,
cd
到你的宅地目录,为我cd~/homestad
,然后运行vagrant destroy
在
/homestad
内运行流浪者-供应
要检查扩展是否安装正确,在
/Homestad
中运行以下两个命令:
流浪ssh
php-r“打印(获取加载的扩展());”
我的输出(添加了33和61):
DoDSoftware:Homestead DOoDSoftware$ vagrant ssh
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
vagrant@homestead:~$ php -r "print_r(get_loaded_extensions());"
Array
(
[0] => Core
[1] => date
[2] => libxml
[3] => openssl
[4] => pcre
[5] => zlib
[6] => filter
[7] => hash
[8] => pcntl
[9] => Reflection
[10] => SPL
[11] => session
[12] => standard
[13] => mysqlnd
[14] => PDO
[15] => xml
[16] => apcu
[17] => apc
[18] => bcmath
[19] => calendar
[20] => ctype
[21] => curl
[22] => dom
[23] => mbstring
[24] => fileinfo
[25] => ftp
[26] => gd
[27] => gettext
[28] => iconv
[29] => igbinary
[30] => imap
[31] => intl
[32] => json
[33] => ldap
[34] => exif
[35] => mcrypt
[36] => msgpack
[37] => mysqli
[38] => pdo_mysql
[39] => pdo_pgsql
[40] => pdo_sqlite
[41] => pgsql
[42] => Phar
[43] => posix
[44] => readline
[45] => shmop
[46] => SimpleXML
[47] => soap
[48] => sockets
[49] => sqlite3
[50] => sysvmsg
[51] => sysvsem
[52] => sysvshm
[53] => tokenizer
[54] => wddx
[55] => xmlreader
[56] => xmlwriter
[57] => xsl
[58] => zip
[59] => memcached
[60] => blackfire
[61] => Zend OPcache
[62] => xdebug
)
正如我在开始时所说的,我不能说这是正确的方法,但到目前为止它对我有效。
我想让short_open_tagsphp.ini 我想访问配置了homestead的vagrant box上的php.ini。我在/etc/php5/fpm/php.ini中看到了php.ini文件 但是有人知道吗? 谢谢
我对homestead和vagrant不熟悉,我安装了homestead,如laravel文档所示,但访问地址:192168.10.10时出现超时错误。 在此错误之前,我在ip上获得错误请求超时,因此我取消注释此行: 然后网络开始工作。 我也没有评论这一行: 所以它开始向我显示端口前进。 然后,我将这一行取消注释: 但还是有误差,不知道现在是什么误差。我通过登录ssh检查nginx文件夹:流浪汉s
我已经开始使用Azure并测试与Microsoft SQL数据库的连接。我想利用我们目前的php_odbc。dll扩展,而不是使用PDO方法。 我已经通过配置via App设置和配置via ini设置执行了添加扩展的步骤。这两种方法都会导致我的主索引页抛出500错误。我的主要索引。php只包括phpinfo();用于测试的函数。 https://docs.microsoft.com/bs-latn
问题内容: 我已经在Ubuntu 14.04(Trusty Tahr)上安装了PHP 7和MySQL 5.5.47。 我已经使用以下方法检查了已安装的扩展程序: 它输出: 我也无法使用phpinfo()看到MySQLi扩展。如何在PHP 7中启用/安装MySQLi扩展? 这就是为什么我不能使用phpMyAdmin的原因。它说:“缺少mysqli扩展名。” 问题答案: 我找到了解决方案。我可以在ph
我试图在Mac OS X上按照官方的留档说明安装Laravel家园。 我安装了VirtualBox和Vagrant。现在,我正尝试使用命令添加Homestead框。过了一会儿,下载停止了,我得到一个错误。它不允许我恢复下载,所以我必须删除部分下载文件并从零开始。我已经试过很多次了。 我想我的互联网连接有点慢,而且文件很大。 以下是完整的代码: 重试后: 感谢您的帮助。
我正在尝试安装一些symfony捆绑包来创建本教程中的管理工具:http://www.ens.ro/2012/07/13/symfony2-jobeet-day-12-the-admin-bundle/ 我正在使用symfony 2.3。*我使用composer作为我的依赖项,如下所述:无法使用composer设置奏鸣曲 但是,当我尝试按照上面的composer文件(php composer.ph