AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 407815
Accepted
Arcticooling
Arcticooling
Asked: 2017-11-30 12:16:19 +0800 CST2017-11-30 12:16:19 +0800 CST 2017-11-30 12:16:19 +0800 CST

Uma maneira rápida de duplicar um site (Wordpress) no meu ambiente de servidor Nginx?

  • 772

Qual é a maneira mais rápida de duplicar um dos meus próprios sites (Wordpress) que atualmente está no meu ambiente de servidor Nginx no meu VPS, para fins de teste? Existe um script ou um utilitário que fará isso automaticamente?

Diga, o URL completo é:

https://111.111.111.111/example.com || `example.com`.

e o utilitário duplicará o site como:

https://111.111.111.111/test

O site é um site Wordpress simples com 30 páginas e 5 plugins básicos. Sem personalizações em nenhum lugar (sistema ou Wordpress).

scripting
  • 1 1 respostas
  • 650 Views

1 respostas

  • Voted
  1. Best Answer
    Arcticooling
    2018-01-07T15:41:36+08:002018-01-07T15:41:36+08:00

    Isso não é rápido, mas o código a seguir descreve a abordagem que usei. Copie e cole para testar e, se funcionou, execute como uma peça, colocando o código em um bloco:

    (
        The code...
    )
    

    O código

    cd /var/www/html/
    echo "1/3: Please enter the domain of the site you want to duplicate into a subdomain test version." && read domain
    echo "2/3: Please enter the password for your Mysql root user." && read -s rps
    echo "3/3: Please enter the password of the site's DB user." && read -s sps
    ipa=$(ifconfig | grep -Po "inet addr:\K[^\s]+" | grep -v "^127")
    
    rm -rf ./test/ ./test.sql
    cp -r ./${domain} ./test/
    sed -i "s/${domain}/test"/g ./test/wp-config.php
    cp -r /etc/nginx/sites-available/${domain}.conf /etc/nginx/sites-available/test.conf
    sed -i "s/${domain}/test"/g /etc/nginx/sites-available/test.conf
    ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
    
    echo "DROP USER IF EXISTS 'test'@'localhost';" | mysql -u root -p"${rps}"
    echo "DROP database IF EXISTS test;" | mysql -u root -p"${rps}"
    echo "CREATE USER 'test'@'localhost' IDENTIFIED BY \"${sps}\";" | mysql -u root -p"${rps}"
    echo "CREATE database test;" | mysql -u root -p"${rps}"
    echo "GRANT ALL PRIVILEGES ON test.* TO test@localhost;" | mysql -u root -p"${rps}"
    mysql -u root -p"${rps}" -e "SELECT user FROM mysql.user; SHOW grants FOR "test'@'localhost"; show databases;"
    
    mysqldump -u root -p"${rps}" "${domain}" > test.sql
    mysql -u test -p"${sps}" test < ./test.sql
    
    cd test
    wp search-replace "https://${domain}" "http://test.${ipa}/test" --allow-root
    # Note that https:// && http:// are needed to apply a URL rewrite rule.
    
    cat <<-TESTCONF > /etc/nginx/sites-available/test.${domain}.conf
        server {
            root /var/www/html/test/;
            server_name ${ipa} test.${domain};
    
            location / {
                index index.php index.html index.htm fastcgi_index;
                try_files $uri $uri =404 $uri/ /index.php?$args;
            }
    
            location ~ \.php$ {
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            listen 80;
        }
    TESTCONF
    
    unset domain rps sps ipa
    
    • 2

relate perguntas

  • problema ao iniciar aplicativos: linha de comando vs. gui

  • Shell Script para encontrar string no arquivo de log

  • Renomeie (acrescentar) arquivos CSV em massa com base em um valor dentro

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve