以下脚本是我在Ubuntu Nginx环境中使用的脚本,用于启动并运行WordPress webapp。
我使用域作为参数运行它:
bash ~/nwsm.sh example.com
我的问题是,为了获得尽可能短的脚本,可以通过一些WP-CLI自动化或其他自动化工具在该脚本中缩短哪些内容。
至于现在,它有35行代码,我想它可能会下降到<=30
线
#!/bin/sh
domain="$1"
read -sp "What\'s your DB root password?" dbrootp
read -sp "What\'s your DB user password?" dbuserp
cd ${drt}
cat <<-WEBAPPBASE > /etc/nginx/sites-available/${domain}.conf
server {
root ${drt}/${domain};
server_name ${domain} www.${domain};
location ~* \\.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {expires 365d;}
}
WEBAPPBASE
ln -s /etc/nginx/sites-available/${domain}.conf /etc/nginx/sites-enabled/
certbot --nginx -d ${domain} -d www.${domain} # HTTP/2
cat <<-DBSTACK | mysql -u root -p"${dbrootp}"
CREATE USER "${domain}"@"localhost" IDENTIFIED BY "${dbuserp}";
CREATE DATABASE "${domain}";
GRANT ALL PRIVILEGES ON ${domain}.* TO "${domain}"@"localhost";
DBSTACK
mkdir ${domain} && curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
cp ${domain}/wp-config-sample.php ${domain}/wp-config.php
sed -ir "s/username_here|database_name_here/${domain}/g ; s/password_here/${dbuserp}/g" ${domain}"/ ${domain}/wp-config.php
chown -R www-data:www-data ${domain}/*
chmod -R a-x,a=rX,u+w ${domain}/*
systemctl restart nginx.service
SO网友:Jesse Nickles
拥有;“最短”;我认为,除了出于娱乐目的之外,剧本在这里是一个毫无意义的目标。但是如果您正在寻找一些非常简单易懂的东西,您可以查看Bash脚本,比如我自己的免费SlickStack GitHub上的项目,面向LEMP堆栈新手。
请记住,如果您集成像WP-CLI这样的东西,它可能看起来是;“较短”;命令,但后端是一个相当复杂的脚本和别名系统。当您安装了WP-CLI并运行了所有必要的命令时,可能不会节省太多时间。。。
您似乎也跳过了WordPress要求的PHP-FPM和MySQL安装,更不用说其他常见的东西,如MU(必须使用)插件和drop-in插件,例如。object-cache.php
这也是当今的主流wp-config.php
配置等。
我花了数年时间将SlickStack组装在一起,采用了一种非常用户友好且最小的方法,但最终它仍然包含了几个不同的Bash脚本。。。最终,无论何时您进入服务器管理和DevOps工具,都可能需要30多行代码!在SlickStack的情况下ss-config
文件是您可以在安装之前修改所有堆栈变量和选项的地方,这意味着您不必编辑任何实际的Bash脚本。
您还可以搜索public Gists GitHub的规模往往小于回购。