【发布时间】:2012-04-21 04:40:24
【问题描述】:
我编写了这个小 BASH 脚本,它创建一个文件夹、解压缩 Wordpress 并为网站创建一个数据库。
最后一步实际上是安装 Wordpress,这通常涉及将浏览器指向 install.php 并在 GUI 中填写表格。
我想从 BASH shell 中执行此操作,但不知道如何调用 wp_install() 并将所需的参数传递给它:
-admin_email
-admin_password
-weblog_title
-用户名
(install.php 中的第 85 行)
这是一个类似的问题,but in python
#!/bin/bash
#ask for the site name
echo "Site Name:"
read name
# make site directory under splogs
mkdir /var/www/splogs/$name
dirname="/var/www/splogs/$name"
#import wordpress from dropbox
cp -r ~/Dropbox/Web/Resources/Wordpress/Core $dirname
cd $dirname
#unwrap the double wrap
mv Core/* ./
rm -r Core
mv wp-config-sample.php wp-config.php
sed -i 's/database_name_here/'$name'/g' ./wp-config.php
sed -i 's/username_here/root/g' ./wp-config.php
sed -i 's/password_here/mypassword/g' ./wp-config.php
cp -r ~/Dropbox/Web/Resources/Wordpress/Themes/responsive $dirname/wp-content/t$
cd $dirname
CMD="create database $name"
mysql -uroot -pmypass -e "$CMD"
如何更改脚本以自动运行安装程序而无需打开浏览器?
【问题讨论】:
-
您需要从命令行调用
php并运行install.php。如何通过命令行模拟表单post到页面,其实是php的问题,而不是bash的问题。 -
假设你是对的——这更像是一个 php 的东西。不过,让所有东西都从 Bash 运行对我来说很重要。所以,你是说,我可以在脚本中发出: php ./install.php?step=2&weblog_title=[...] ?
-
只需进行全新安装,将数据库转储到文件中,将其保存为模板文件,然后在每次新安装时使用它,只需简单地替换管理员邮件/管理员用户名/博客标题的字符串即可。这就是我很长时间以来的做法。无需通过 install.php。
-
好点 strkol,我还没有想到复制/粘贴的方式。出于好奇,我仍然很想知道如何通过 shell 来做到这一点。但是,归根结底,任何允许自动化的方法都是关键——不要真正关心它是如何完成的。
-
Milk Miruku 关于使用 WPCLi 的建议很棒。一定要看看。
标签: wordpress bash installation automation