

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea, carica e distribuisci l'applicazione
<a name="ex-create-app"></a>

Innanzitutto, create un pacchetto di WordPress applicazioni, quindi utilizzate il CodeDeploy CTs per creare e distribuire l'applicazione.

1. Scarica WordPress, estrai i file e crea un file. cartella /scripts.

   Comando Linux:

   ```
   wget https://github.com/WordPress/WordPress/archive/master.zip
   ```

   Windows: incolla `https://github.com/WordPress/WordPress/archive/master.zip` in una finestra del browser e scarica il file zip.

   Crea una directory temporanea in cui assemblare il pacchetto.

   Linux:

   ```
   mkdir /tmp/WordPress
   ```

   Windows: crea una cartella "WordPress", utilizzerai il percorso della directory in seguito.

1. Estrai il WordPress codice sorgente nella cartella WordPress "" e crea un file. cartella /scripts.

   Linux:

   ```
   unzip master.zip -d /tmp/WordPress_Temp
   cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
   rm -rf /tmp/WordPress_Temp
   rm -f master
   cd /tmp/WordPress
   mkdir scripts
   ```

   Windows: vai alla cartella "WordPress" che hai creato e lì crea una cartella «scripts».

   Se utilizzate un ambiente Windows, assicuratevi di impostare il tipo di interruzione per i file di script su Unix (LF). In Notepad \+\+, questa è un'opzione in basso a destra della finestra.

1. Crea il file CodeDeploy **appspec.yml**, nella WordPress directory (se copi l'esempio, controlla l'indentazione, ogni spazio conta). IMPORTANTE: assicurati che il percorso «sorgente» sia corretto per copiare WordPress i file (in questo caso, nella tua WordPress directory) nella destinazione prevista (/). var/www/html/WordPress Nell'esempio, il file appspec.yml si trova nella directory con WordPress i file, quindi è necessario solo «/». Inoltre, anche se hai usato un'AMI RHEL per il tuo gruppo Auto Scaling, lascia la riga «os: linux» così com'è. Esempio di file appspec.yml:

   ```
   version: 0.0
   os: linux
   files:
     - source: /
       destination: /var/www/html/WordPress
   hooks:
     BeforeInstall:
       - location: scripts/install_dependencies.sh
         timeout: 300
         runas: root
     AfterInstall:
       - location: scripts/config_wordpress.sh
         timeout: 300
         runas: root
     ApplicationStart:
       - location: scripts/start_server.sh
         timeout: 300
         runas: root
     ApplicationStop:
       - location: scripts/stop_server.sh
         timeout: 300
         runas: root
   ```

1. Crea script di file bash in. WordPress cartella /scripts.

   Innanzitutto, crea `config_wordpress.sh` con il seguente contenuto (se preferisci, puoi modificare direttamente il file wp-config.php).
**Nota**  
Sostituisci {{DBName}} con il valore fornito nell'HA Stack RFC (ad esempio,`wordpress`).  
Sostituisci {{DB\_MasterUsername}} con il `MasterUsername` valore fornito nell'HA Stack RFC (ad esempio,). `admin`  
Sostituisci {{DB\_MasterUserPassword}} con il `MasterUserPassword` valore fornito nell'HA Stack RFC (ad esempio,). `p4ssw0rd`  
Sostituire {{DB\_ENDPOINT}} con il nome DNS dell'endpoint negli output di esecuzione di HA Stack RFC (ad esempio,). `srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com` Puoi trovarlo con l'[GetRfc](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_GetRfc.html)operazione (CLI: get-rfc --rfc-id RFC\_ID) o nella pagina dei dettagli RFC della console AMS per l'HA Stack RFC che hai inviato in precedenza.

   ```
   #!/bin/bash
   chmod -R 755 /var/www/html/WordPress
   cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php
   cd /var/www/html/WordPress
   sed -i "s/database_name_here/{{DBName}}/g" wp-config.php
   sed -i "s/username_here/{{DB_MasterUsername}}/g" wp-config.php
   sed -i "s/password_here/{{DB_MasterUserPassword}}/g" wp-config.php
   sed -i "s/localhost/{{DB_ENDPOINT}}/g" wp-config.php
   ```

1. `install_dependencies.sh`Nella stessa directory, crea con il seguente contenuto:

   ```
   #!/bin/bash
   yum install -y php
   yum install -y php-mysql
   yum install -y mysql
   service httpd restart
   ```
**Nota**  
HTTPS viene installato come parte dei dati utente al momento del lancio per consentire il funzionamento dei controlli sanitari sin dall'inizio.

1. Nella stessa directory, crea `start_server.sh` con il seguente contenuto:
   + Per le istanze Amazon Linux, usa questo:

     ```
     #!/bin/bash
     service httpd start
     ```
   + Per le istanze RHEL, usa questo (i comandi aggiuntivi sono politiche che consentono a SELINUX di accettare): WordPress

     ```
     #!/bin/bash
     setsebool -P  httpd_can_network_connect_db 1
     setsebool -P  httpd_can_network_connect 1
     chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R
     restorecon -Rv /var/www/html
     service httpd start
     ```

1. Nella stessa directory create `stop_server.sh` con il seguente contenuto:

   ```
   #!/bin/bash
   service httpd stop
   ```

1. Crea il pacchetto zip.

   Linux:

   ```
   $ cd /tmp/WordPress
   $ zip -r wordpress.zip .
   ```

   Windows: vai alla cartella WordPress "" e seleziona tutti i file e crea un file zip, assicurati di chiamarlo wordpress.zip.

1. Carica il pacchetto dell'applicazione nel bucket S3.

   Il pacchetto deve essere disponibile per continuare a distribuire lo stack. 

   Hai automaticamente accesso a qualsiasi istanza di bucket S3 che crei. Puoi accedervi tramite i tuoi bastioni o tramite la console S3 e caricare il WordPress pacchetto drag-and-drop o sfogliare e selezionare il file zip.

   Puoi anche usare il seguente comando in una finestra di shell; assicurati di avere il percorso corretto del file zip:

   ```
   aws s3 cp wordpress.zip s3://BUCKET_NAME/
   ```

1. Distribuite il pacchetto di WordPress applicazioni.

   La raccolta dei seguenti dati prima di iniziare velocizzerà la distribuzione.

   DATI RICHIESTI:
   + `VPC-ID`: Questo valore determina dove si troverà il tuo S3 Bucket. Usa lo stesso ID VPC che hai usato in precedenza.
   + `CodeDeployApplicationName`e`CodeDeployApplicationName`: il `ApplicationName` valore utilizzato nell'RFC HA 2-Tier Stack imposta e il. CodeDeployApplicationName CodeDeployDeploymentGroupName L'esempio utilizza "WordPress" ma potresti aver usato un valore diverso.
   + `S3Location`: Per`S3Bucket`, usa quello `BucketName` che hai creato in precedenza. I `S3BundleType` e `S3Key` provengono dal pacchetto che hai inserito nel tuo negozio S3.

   1. Emetti lo schema JSON dei parametri di esecuzione per l' CodeDeploy applicazione, distribuisci CT in un file JSON denominato Deploy Params.json. CDApp

      ```
      aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.json
      ```

   1. Modifica lo schema come segue e salvalo come, puoi eliminare e sostituire i contenuti.

      ```
      {
      "Description":                       "DeployWPCDApp",
      "VpcId":                             "{{VPC_ID}}",
      "Name":                              "WordPressCDAppDeploy",
      "TimeoutInMinutes":                  60,
      "Parameters":   {
          "CodeDeployApplicationName":                "{{WordPress}}",
          "CodeDeployDeploymentGroupName":            "{{WordPress}}",
          "CodeDeployIgnoreApplicationStopFailures":   false,
          "CodeDeployRevision": {
            "RevisionType": "S3",
            "S3Location": {
              "S3Bucket":     "{{BUCKET_NAME}}",
              "S3BundleType": "zip",
              "S3Key":        "wordpress.zip" }
              }
          }
      }
      ```

   1. Esporta il modello JSON CreateRfc per in un file, nella cartella corrente, denominato Deploy CDApp RFC.json:

      ```
      aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.json
      ```

   1. Modifica e salva il file Deploy CDApp RFC.json, puoi eliminare e sostituire il contenuto. Tieni presente che `RequestedStartTime` ora `RequestedEndTime` sono facoltativi; la loro esclusione crea un RFC ASAP che viene eseguito non appena viene approvato (cosa che di solito avviene automaticamente). Per inviare una RFC pianificata, aggiungi questi valori.

      ```
      {
      "ChangeTypeVersion":    "1.0",
      "ChangeTypeId":         "ct-2edc3sd1sqmrb",
      "Title":                "CD-Deploy-For-WP-RFC"
      }
      ```

   1. Crea la RFC, specificando il file Deploy CDApp Rfc e il file dei parametri di esecuzione CDApp Deploy Params:

      ```
      aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json  --execution-parameters file://DeployCDAppParams.json
      ```

      Riceverai il nuovo RFC nella RfcId risposta. Salva l'ID per i passaggi successivi.

   1. Invia la RFC:

      ```
      aws amscm submit-rfc --rfc-id {{RFC_ID}}
      ```

      Se la RFC ha esito positivo, non riceverai alcun output.

   1. Per verificare lo stato della RFC, esegui

      ```
      aws amscm get-rfc --rfc-id {{RFC_ID}}
      ```