首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过PHP从命令提示符运行wordpress代码

问通过PHP从命令提示符运行wordpress代码
EN

Stack Overflow用户
提问于 2011-03-03 15:30:25
回答 3查看 2.8K关注 0票数 2

我需要从命令行运行自定义WP脚本: php,无论我做什么,它都不能工作。我收到这样的信息:

建立数据库连接时出错

我试过了

代码语言:javascript
复制
define('DOING_AJAX', true);
define('WP_USE_THEMES', false);
$_SERVER = array(
    "HTTP_HOST" => "mysite.com",
    "SERVER_NAME" => "mysite.com",
    "REQUEST_URI" => "/myscript.php",
    "REQUEST_METHOD" => "GET"
);
require_once('wp-load.php');

提到了here,但它不起作用。我设置的所有服务器变量都是好的,我从浏览器中启动的网页复制了整个$_SERVER变量(在那里它可以工作)

我的工作目录是WP安装的根目录,所以我只使用命令行中的php myscript.php。我尝试了网络上提到的其他几个代码,但它们都不适合我。例如:有:

代码语言:javascript
复制
define('WP_USE_THEMES', false);
require('wp-blog-header.php');

总是相同的信息:错误建立数据库连接,,正如我在web浏览器上说的,它工作正常。

这是从php使用的php.ini中提取mysql字符串:

代码语言:javascript
复制
Configure Command =>  '/var/tmp/apache_mod_php/apache_mod_php-53.3.1~2/php/configure'  '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--sysconfdir=/private/etc' '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with-libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.3.1~2/Root/usr/local' '--with-png-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.3.1~2/Root/usr/local' '--enable-gd-native-ttf' '--with-ldap=/usr' '--with-ldap-sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte' '--enable-zip' '--with-pcre-regex=/usr'
mysql
Client API version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $
mysql.allow_local_infile => On => On
mysql.allow_persistent => On => On
mysql.connect_timeout => 60 => 60
mysql.default_host => no value => no value
mysql.default_password => no value => no value
mysql.default_port => no value => no value
mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
mysql.default_user => no value => no value
mysql.max_links => Unlimited => Unlimited
mysql.max_persistent => Unlimited => Unlimited
mysql.trace_mode => Off => Off
mysqli
Client API library version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $
PDO drivers => mysql, sqlite, sqlite2
pdo_mysql
Client API version => mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $
pdo_mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
EN

回答 3

Stack Overflow用户

发布于 2011-03-03 16:27:07

对于这类问题,首先要做的是:

  • 检查错误日志以获取有关错误
  • check php cli conf

的更多信息。

由于您是在本地环境中执行此命令,所以mysql服务器可能不接受来自外部的连接。

票数 0
EN

Stack Overflow用户

发布于 2011-03-03 17:47:41

它起作用了:

sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

PHP CLI使用的套接字是错误的路径

票数 0
EN

Stack Overflow用户

发布于 2012-04-27 00:30:36

秘诀是,您为WP使用的常量定义了相同的名称。改变DB_USER/DB_PASSWORD/DB_HOST,一切都会好起来的:D (天啊,我花了两个小时才找到“bug")

干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5182822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档