自动创建WP应用程序目录(域名作为变量参数传递)

时间:2018-01-16 作者:Arcticooling

这是迄今为止我为WordPress自动创建目录的最远的一次。如何在Linux命令行中进一步实现自动化?

#!/bin/sh
domain="$1"
echo "Please save your DB user password" && read -s dbup

cd ${drt}
curl -L http://wordpress.org/latest.tar.gz | tar -zxv -C ${domain}/
cp ${domain}/wp-config-sample.php ${domain}/wp-config.php
sed -i "s/database_name_here/${domain}"/g ${domain}/wp-config.php
sed -i "s/username_here/${domain}/g" ${domain}/wp-config.php
sed -i "s/password_here/${dbup}/g" ${domain}/wp-config.php

chown -R ${domain}:${domain} ${domain}/* && chmod -R a-x,a=rX,u+w ${domain}/* && systemctl restart nginx.service
我的目的是减少代码行的数量。

1 个回复
最合适的回答,由SO网友:kero 整理而成

好的,我刚刚查看了WP CLI文档。有三个重要步骤:

  1. Download WordPress: (我会将其与选项一起使用--path--locale, 但这些是可选的)

    wp core download
    
  2. Create a proper wp-config.php:

    wp config create --dbname=... --dbuser=... --dbpass=... --dbhost=...
    
  3. Install WordPress:

    wp core install --url=... --title=... --admin_user=... --admin_email=...
    
    现在有多种方法可以将它们结合起来,添加自己的逻辑,甚至可以自定义修改,如chmod。我可能会使用这样的脚本

    #!/bin/bash
    # Call this script with 9 arguments:
    # $1 absolute path where to install
    # $2 dbname
    # $3 dbuser
    # $4 dbpass
    # $5 dbhost
    # $6 URL
    # $7 site title
    # $8 admin user
    # $9 admin email
    
    # download WP
    wp core download --path=$1
    
    # create wp-config.php
    wp config create --path=$1 --dbname=$2 --dbuser=$3 --dbpass=$4 --dbhost=$5
    
    # install WP
    wp core install --path=$1 --url=$6 --title=$7 --admin_user=$8 --admin_email=$9
    
    # harden security
    # maybe set chmod (https://www.wordfence.com/learn/how-to-restrict-wordpress-file-permissions/)
    # maybe move wp-config.php one folder above web root (https://www.wordfence.com/learn/how-to-harden-wordpress-sites/#securing-your-database)
    
    通过传递绝对路径(并通过--path, 您可以将此脚本存储在某个中心位置,并使用它在服务器上的不同位置安装多个实例)

    像这样使用它

    ./install_wp.sh /var/www/html/demo/wp demo_db demo demo_password localhost https://demo.local DemoSite demouser [email protected] && history -c
    
    我正在使用&& history -c 删除bash历史记录,因为它包含敏感的db数据。在我的本地计算机上,我得到了错误:1:/usr/sbin/sendmail:not found,它将管理员密码打印到了stdout。

结束

相关推荐

Unable to create directory

最近我注意到,在我将网站上传到另一台服务器后,我似乎遇到了某种上传问题一旦我使用FTP将网站复制并移动到新主机上,我就无法通过wp-admin 因为我得到:无法创建目录。),我无法在帖子或页面上上传媒体,因为我得到:无法创建目录wp-content/uploads/2014/08其父目录是否可由服务器写入?我还注意到wp-admin/theme-editor.php 有一条消息说:“保存更改之前,需要将此文件设置为可写。有关详细信息,请参阅Codex。”我的开发托管服务器上的站点版本上没有此消息,我也没有