目前,我正致力于在云代工厂部署php(symfony)/ MySQL应用程序。在部署之后,当我在SSH中连接以启动命令doctrines以创建数据库的模式时,我遇到了这个问题
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>
&#13;
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$
&#13;
如何在ClI中激活php PDO模块? 谢谢您的帮助 CDT
答案 0 :(得分:1)
您需要安装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
保存文件并重新启动服务并验证。
答案 1 :(得分:0)
使用cf ssh
SSH连接到应用程序时,系统很遗憾不会自动为您配置环境。这会导致像PHP这样的东西以不同的方式运行(通常是失败的),因为没有设置影响PHP功能的方式以及查找配置的环境变量。
使您的应用程序运行时所需的操作是首先获取环境配置。执行此操作的过程记录为here。
但在此之前请注意,执行.profile.d
和.profile
脚本会产生副作用。这是因为这两个都可以通过您的应用程序进行扩展。这通常是在应用程序启动之前运行命令的一种方式。在执行以下命令之前,请确保这些脚本可以安全运行!如果部件不安全,则不要运行它们。只需执行安全的命令。
在此处作为参考,该过程归结为运行这些命令:
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
&amp;初始化环境的.profile
脚本。
<强>更新强>
更简单的方法是运行cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''"
。这将打开一个bash shell,它让生命周期启动器处理来源和建立环境。
希望有所帮助!