如何在 CLI 中对 PHP 的配置进行操作以添加 pdo 模块
How to act on the configuration of PHP in CLI to add pdo module
目前,我正在努力在 Cloud Foundry 上部署 php (symfony)/MySQL 应用程序。部署后,当我在 SSH 中连接以启动用于创建数据库模式的命令原则时,我遇到了这个问题
vcap@5nkjb8jdl87:~/app$ ./php/bin/php app/console doctrine:schema:create --env=prod
Fatal error: Class 'PDO' not found in /home/vcap/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php on line 172
[Symfony\Component\Debug\Exception\ClassNotFoundException] Attempted to load class "PDO" from the global namespace.Did you forget a "use" statement?
doctrine:schema:create [--dump-sql] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interactio
-shell] [--process-isolation] [-e|--env ENV] [--no-debug] [--] <command>
vcap@5nkjb8jdl87:~/app$ ./php/bin/php -m
[PHP Modules]
bcmath
calendar
Core
ctype
date
dom
ereg
filter
hash
iconv
intl
json
libxml
mhash
mysqlnd
pcre
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
[Zend Modules]
vcap@5nkjb8jdl87:~/app$
如何在 ClI 中激活 php PDO 模块?
谢谢您的帮助
cdt
您需要安装php-mysql
apt-get install php-mysql
如果您正在使用 php7
apt-get install php7.0-mysql
找到您的 php.ini 文件并搜索 pdo_mysql
;extension=php_pdo_mysql.so
删除;
extension=pdo_mysql.so
保存文件并重启服务并验证。
当您使用 cf ssh
SSH 进入应用程序时,不幸的是系统不会自动为您配置环境。这会导致像 PHP 这样的东西以不同的方式运行(通常是失败),因为影响 PHP 运行方式和查找配置位置的环境变量没有设置。
要使事情与您的应用程序 运行s 相同,您需要做的是首先获取环境配置。执行此操作的过程记录在案 here.
但是在这样做之前请记住,执行 .profile.d
和 .profile
脚本可能会有 side-effects。这是因为您的应用程序可以扩展这两者。这通常是在您的应用程序启动之前作为 运行 命令的一种方式完成的。在执行以下命令之前,请确保这些脚本对 运行 是安全的!如果零件不安全,则不要 运行 它们。只执行安全的命令。
作为参考,该过程归结为 运行执行这些命令:
export HOME=/home/vcap/app
export TMPDIR=/home/vcap/tmp
cd /home/vcap/app
source /home/vcap/app/.profile.d/*.sh
source /home/vcap/app/.profile
这会获取初始化环境的 .profile.d
和 .profile
脚本。
更新:
一个更简单的方法是 运行 cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''"
。这将打开一个 bash shell 并让生命周期启动器处理采购和设置环境。
希望对您有所帮助!
目前,我正在努力在 Cloud Foundry 上部署 php (symfony)/MySQL 应用程序。部署后,当我在 SSH 中连接以启动用于创建数据库模式的命令原则时,我遇到了这个问题
vcap@5nkjb8jdl87:~/app$ ./php/bin/php app/console doctrine:schema:create --env=prod
Fatal error: Class 'PDO' not found in /home/vcap/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php on line 172
[Symfony\Component\Debug\Exception\ClassNotFoundException] Attempted to load class "PDO" from the global namespace.Did you forget a "use" statement?
doctrine:schema:create [--dump-sql] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interactio
-shell] [--process-isolation] [-e|--env ENV] [--no-debug] [--] <command>
vcap@5nkjb8jdl87:~/app$ ./php/bin/php -m
[PHP Modules]
bcmath
calendar
Core
ctype
date
dom
ereg
filter
hash
iconv
intl
json
libxml
mhash
mysqlnd
pcre
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
[Zend Modules]
vcap@5nkjb8jdl87:~/app$
如何在 ClI 中激活 php PDO 模块? 谢谢您的帮助 cdt
您需要安装php-mysql
apt-get install php-mysql
如果您正在使用 php7
apt-get install php7.0-mysql
找到您的 php.ini 文件并搜索 pdo_mysql
;extension=php_pdo_mysql.so
删除;
extension=pdo_mysql.so
保存文件并重启服务并验证。
当您使用 cf ssh
SSH 进入应用程序时,不幸的是系统不会自动为您配置环境。这会导致像 PHP 这样的东西以不同的方式运行(通常是失败),因为影响 PHP 运行方式和查找配置位置的环境变量没有设置。
要使事情与您的应用程序 运行s 相同,您需要做的是首先获取环境配置。执行此操作的过程记录在案 here.
但是在这样做之前请记住,执行 .profile.d
和 .profile
脚本可能会有 side-effects。这是因为您的应用程序可以扩展这两者。这通常是在您的应用程序启动之前作为 运行 命令的一种方式完成的。在执行以下命令之前,请确保这些脚本对 运行 是安全的!如果零件不安全,则不要 运行 它们。只执行安全的命令。
作为参考,该过程归结为 运行执行这些命令:
export HOME=/home/vcap/app
export TMPDIR=/home/vcap/tmp
cd /home/vcap/app
source /home/vcap/app/.profile.d/*.sh
source /home/vcap/app/.profile
这会获取初始化环境的 .profile.d
和 .profile
脚本。
更新:
一个更简单的方法是 运行 cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''"
。这将打开一个 bash shell 并让生命周期启动器处理采购和设置环境。
希望对您有所帮助!