One place for hosting & domains

      Cara Menginstal tumpukan Linux, Apache, MySQL, PHP (LAMP) pada Ubuntu 20.04


      Pengantar

      Tumpukan “LAMP” adalah sekumpulan perangkat lunak sumber terbuka yang biasanya diinstal bersama untuk memungkinkan server menjadi hos dari situs web yang dinamis dan aplikasi web yang ditulis dalam PHP. Istilah ini sebenarnya merupakan singkatan yang mewakili sistem operasi Linux dengan server web Apache. Data situs disimpan di dalam basis data MySQL dan konten dinamis diolah dengan menggunakan PHP.

      Dalam panduan ini, kita akan menginstal tumpukan LAMP pada server Ubuntu 20.04.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda akan memerlukan server Ubuntu 20.04 dengan akun pengguna yang mendukung sudo non-root dan firewall dasar. Ini dapat dikonfigurasi menggunakan panduan penyiapan server awal untuk Ubuntu 20.04 kami.

      Langkah 1 — Menginstal Apache dan Memperbarui Firewall

      Server web Apache adalah salah satu server web paling populer di dunia. Server web Apache terdokumentasi dengan baik, memiliki komunitas pengguna yang aktif, dan digunakan secara luas dalam sejarah web, yang membuatnya menjadi pilihan asali yang hebat untuk menjadi hos situs web.

      Instal Apache menggunakan manajer paket Ubuntu, apt:

      • sudo apt update
      • sudo apt install apache2

      Jika ini adalah kali pertama Anda menggunakan sudo dalam sesi ini, Anda akan diminta memberikan kata sandi pengguna Anda untuk memastikan Anda memiliki privilese yang benar untuk mengelola paket sistem dengan apt. Anda juga akan diminta mengonfirmasi instalasi Apache dengan menekan Y, lalu ENTER.

      Setelah instalasi selesai, Anda akan perlu menyesuaikan pengaturan firewall Anda untuk memperbolehkan lalu lintas HTTP. UFW memiliki berbagai profil aplikasi berbeda yang dapat Anda manfaatkan untuk menyelesaikannya. Untuk mendapatkan daftar semua profil aplikasi UFW yang tersedia, Anda dapat menjalankan:

      Anda akan melihat keluaran seperti ini:

      Output

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Berikut adalah makna dari setiap profil ini:

      • Apache: Profil ini hanya membuka porta 80 (lalu lintas web normal dan tidak terenkripsi).
      • Apache Full: Profil ini membuka baik porta 80 (lalu lintas web normal dan tidak terenkripsi) dan porta 443 (lalu lintas terenkripsi TLS/SSL).
      • Apache Secure: Profile ini hanya membuka porta 443 (lalu lintas terenkripsi TLS/SSL).

      Untuk saat ini, sebaiknya izinkan hanya koneksi pada porta 80, karena ini adalah instalasi Apache yang baru dan Anda belum memiliki sertifikat TLS/SSL yang dikonfigurasi untuk mengizinkan lalu lintas HTTPS di server Anda.

      Untuk hanya memperbolehkan lalu lintas pada porta 80, gunakan profil Apache:

      • sudo ufw allow in "Apache"

      Anda dapat memverifikasi perubahan dengan:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Lalu lintas pada porta 80 sekarang diperbolehkan melewati firewall.

      Anda dapat melakukan pemeriksaan cepat untuk memastikan segalanya berjalan sesuai rencana dengan mengunjungi alamat IP publik server Anda di peramban web Anda (lihat catatan di bawah judul berikutnya untuk mengetahui alamat IP publik Anda jika Anda belum memiliki informasi ini):

      http://your_server_ip
      

      Anda akan melihat laman web Apache Ubuntu 20.04 asali, yang tersedia dengan tujuan pengujian dan informasi. Laman itu akan terlihat seperti ini:

      Ubuntu 20.04 Apache asali

      Jika Anda melihat halaman ini, maka server web Anda telah terinstal dengan benar dan dapat diakses melalui firewal Anda.

      Cara Menemukan Alamat IP Publik Server Anda

      Jika Anda tidak mengetahui alamat IP publik server Ada, ada sejumlah cara untuk mengetahuinya. Biasanya, ini adalah alamat yang digunakan untuk terhubung ke server Anda melalui SSH.

      Ada beberapa cara untuk melakukannya dari baris perintah. Pertama, Anda dapat menggunakan alat iproute2 untuk mengetahui alamat IP dengan mengetik ini:

      • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

      Ini akan menampilkan dua atau tiga baris tanggapan. Semua adalah alamat yang benar, tetapi komputer Anda mungkin hanya dapat menggunakan salah satunya, jadi silakan mencoba masing-masing alamat itu.

      Cara alternatifnya adalah menggunakan utilitas curl untuk menghubungi pihak luar supaya memberitahukan bagaimana pihak luar melihat server Anda. Hal ini dilakukan dengan menanyakan alamat IP Anda kepada server tertentu:

      • curl http://icanhazip.com

      Terlepas dari cara yang digunakan untuk mengetahui alamat IP Anda, ketik alamat IP pada bilah alamat di peramban web Anda untuk melihat laman Apache asali.

      Langkah 2 — Menginstal MySQL

      Setelah server web hidup dan berfungsi, Anda perlu menginstal sistem basis data agar dapat menyimpan dan mengelola data untuk situs Anda. MySQL adalah sistem manajemen basis data populer yang digunakan dalam lingkungan PHP.

      Sekali lagi, gunakan apt untuk memperoleh dan menginstal perangkat lunak ini:

      • sudo apt install mysql-server

      Ketika diminta, lakukan konfirmasi instalasi dengan mengetik Y, lalu ENTER.

      Ketika instalasi selesai, Anda disarankan untuk menjalankan skrip keamanan yang sudah terinstal sebelumnya dengan MySQL. Skrip ini akan menghapus beberapa pengaturan asali yang tidak aman dan mengunci akses ke sistem basis data Anda. Mulai skrip interaktif dengan menjalankan:

      • sudo mysql_secure_installation

      Anda akan ditanya apakah Anda ingin mengonfigurasi VALIDATE PASSWORD PLUGIN.

      Catatan: Mengaktifkan fitur ini merupakan keputusan yang Anda pertimbangkan sendiri. Jika diaktifkan, kata sandi yang tidak cocok dengan kriteria yang ditentukan akan ditolak oleh MySQL dengan suatu kesalahan. Akan lebih aman jika Anda tetap menonaktifkan validasi, tetapi Anda harus selalu menggunakan kata sandi yang kuat dan unik untuk kredensial basis data.

      Jawab Y untuk ya, atau jawaban lain untuk melanjutkan tanpa mengaktifkan.

      VALIDATE PASSWORD PLUGIN can be used to test passwords
      and improve security. It checks the strength of password
      and allows the users to set only those passwords which are
      secure enough. Would you like to setup VALIDATE PASSWORD plugin?
      
      Press y|Y for Yes, any other key for No:
      

      Jika Anda menjawab “ya”, Anda akan diminta untuk memilih tingkat validasi kata sandi. Harap ingat bahwa jika Anda memasukkan 2 sebagai tingkat terkuat, Anda akan menjumpai kesalahan saat berusaha menentukan kata sandi yang tidak mengandung angka, huruf kapital dan huruf kecil, serta karakter khusus, atau kata sandi yang berdasarkan pada kata-kata kamus umum.

      There are three levels of password validation policy:
      
      LOW    Length >= 8
      MEDIUM Length >= 8, numeric, mixed case, and special characters
      STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file
      
      Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
      

      Terlepas dari pilihan pengaturan VALIDATE PASSWORD PLUGIN, server Anda akan meminta Anda untuk memilih dan mengonfirmasi kata sandi untuk pengguna root MySQL. Ini tidak sama dengan root sistem. Pengguna root basis data adalah pengguna administratif dengan privilese penuh terhadap sistem basis data. Meskipun metode autentikasi asali untuk pengguna root MySQL mengecualikan penggunaan kata sandi, sekalipun kata kata sandi sudah dibuat, Anda tetap harus menentukan kata sandi yang kuat di sini sebagai langkah keamanan tambahan. Kita akan membahas hal ini sebentar lagi.

      Jika Anda mengaktifkan validasi kata sandi, Anda akan diperlihatkan kekuatan kata sandi untuk kata sandi root yang baru saja Anda masukkan dan server Anda akan bertanya apakah Anda ingin melanjutkan dengan kata sandi itu. Jika Anda puas dengan kata sandi ini, tekan Y untuk “ya” di prompt:

      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
      

      Untuk pertanyaan lainnya, tekan Y dan tombol ENTER pada setiap pertanyaan. Ini akan menghapus sebagian pengguna anonim dan basis data percobaan, menonaktifkan log masuk root dari jarak jauh, dan memuat aturan-aturan baru ini sehingga MySQL segera menerapkan perubahan yang Anda buat.

      Setelah Anda selesai, lakukan percobaan apakah Anda dapat melakukan log masuk ke konsol MySQL dengan mengetik:

      Ini akan menghubungkan ke server MySQL sebagai root pengguna basis data administratif, yang ditentukan berdasarkan penggunaan sudo saat menjalankan perintah ini. Anda akan melihat keluaran seperti ini:

      Output

      Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 22 Server version: 8.0.19-0ubuntu5 (Ubuntu) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>

      Untuk keluar dari konsol MySQL, ketik:

      Perhatikan bahwa Anda tidak perlu memberikan kata sandi untuk terhubung sebagai pengguna root, meskipun Anda telah menentukannya saat menjalankan skrip mysql_secure_installation. Hal itu dikarenakan metode autentikasi asali untuk pengguna MySQL administratif adalah unix_socket alih-alih kata sandi. Meskipun awalnya ini mungkin terlihat seperti masalah keamanan, tetapi ini membuat server basis data menjadi lebih aman karena pengguna yang diizinkan melakukan log masuk sebagai pengguna MySQL root hanya pengguna sistem dengan privilese sudo yang terhubung dari konsol atau melalui aplikasi yang berjalan dengan privilese yang sama. Dalam praktiknya, itu berarti Anda tidak akan dapat menggunakan pengguna root basis data administratif untuk terhubung dari aplikasi PHP. Pengaturan kata sandi untuk akun MySQL root berfungsi sebagai perlindungan, apabila metode autentikasi asali diubah dari unix_socket menjadi kata sandi.

      Untuk keamanan yang lebih baik, saran terbaiknya adalah memiliki akun pengguna khusus dengan pengaturan privilese yang lebih sempit untuk setiap basis data, terutama jika Anda berencana memiliki beberapa basis data di mana server Anda adalah hosnya.

      Catatan: Saat menyusun tulisan ini, pustaka PHP MySQL asli mysqlnd tidak mendukung caching_sha2_authentication, metode autentikasi asali untuk MySQL 8. Karena itu, saat menciptakan pengguna basis data untuk aplikasi PHP di MySQL 8, Anda perlu memastikan pengguna telah dikonfigurasi untuk menggunakan mysql_native_password. Kami akan mendemonstrasikan caranya di Langkah 6.

      Server MySQL Anda kini telah terinstal dan terlindungi. Selanjutnya, kita akan menginstal PHP, komponen terakhir dalam tumpukan LAMP.

      Langkah 3 — Menginstal PHP

      Anda telah memiliki Apache terinstal untuk menyajikan konten dan MySQL terinstal untuk menyimpan dan mengelola data Anda. PHP adalah komponen persiapan kita yang akan memproses kode untuk menampilkan konten dinamis ke pengguna akhir. Selain paket php, Anda akan memerlukan php-mysql, suatu modul PHP yang memungkinkan PHP berkomunikasi dengan basis data yang berbasis MySQL. Anda juga akan memerlukan libapache2-mod-php untuk memungkinkan Apache menangani berkas PHP. Paket PHP inti akan secara otomatis terinstal sebagai dependensi.

      Untuk menginstal paket ini, jalankan:

      • sudo apt install php libapache2-mod-php php-mysql

      Setelah instalasi selesai, Anda dapat menjalankan perintah berikut ini untuk mengonfirmasi versi PHP Anda:

      Output

      PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

      Di titik ini, tumpukan LAMP Anda sudah berfungsi sepenuhnya, tetapi sebelum Anda dapat menguji setelan Anda dengan skrip PHP, sebaiknya instal Apache Virtual Host yang tepat untuk menyimpan berkas dan folder situs web Anda. Kita akan melakukan itu di langkah selanjutnya.

      Langkah 4 — Menciptakan Hos Virtual untuk Situs Web Anda

      Ketika menggunakan server web Apache, Anda bisa menciptakan hos virtual (serupa dengan blok server di Nginx) untuk merangkum detail konfigurasi dan menjadi hos dari lebih dari satu domain dari server tunggal. Dalam panduan ini, kita akan menyiapkan domain bernama your_domain, tetapi Anda harus menggantinya dengan nama domain Anda sendiri.

      Catatan: Jika Anda menggunakan DigitalOcean sebagai penyedia hos DNS, lihat dokumen produk kami untuk instruksi mendetail tentang cara mempersiapkan nama domain baru dan mengarahkannya ke server Anda.

      Apache pada Ubuntu 20.04 memiliki satu blok server yang aktif secara asali, yang dikonfigurasi untuk menyajikan dokumen-dokumen dari direktori /var/www/html. Meskipun ini berfungsi baik untuk situs tunggal, ini bisa menjadi sulit dijalankan jika Anda menjadi hos dari beberapa situs. Alih-alih memodifikasi /var/www/html, kita akan menciptakan suatu struktur direktori dalam /var/www untuk situs your_domain, dengan membiarkan /var/www/html sebagai direktori asali yang akan ditampilkan jika permintaan klien tidak cocok dengan situs lain.

      Buat direktori untuk your_domain sebagai berikut:

      • sudo mkdir /var/www/your_domain

      Selanjutnya, tentukan kepemilikan direktori dengan variabel lingkungan $USER, yang akan merujuk pada pengguna sistem Anda saat ini:

      • sudo chown -R $USER:$USER /var/www/your_domain

      Kemudian, buka berkas konfigurasi baru dalam direktori sites-available Apache dengan menggunakan editor baris perintah yang Anda sukai. Di sini, kita akan menggunakan nano:

      • sudo nano /etc/apache2/sites-available/your_domain.conf

      Ini akan menciptakan berkas kosong yang baru. Tempelkan konfigurasi dasar berikut:

      /etc/apache2/sites-available/your_domain.conf

      <VirtualHost *:80>
          ServerName your_domain
          ServerAlias www.your_domain
          ServerAdmin webmaster@localhost
          DocumentRoot /var/www/your_domain
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Simpan dan tutup berkas setelah Anda selesai. Jika Anda menggunakan nano, Anda dapat melakukannya dengan menekan CTRL+X, kemudian Y dan ENTER.

      Dengan konfigurasi VirtualHost ini, kita menyuruh Apache untuk menyajikan your_domain menggunakan /var/www/your_domain sebagai direktori root web. Jika Anda ingin menguji Apache tanpa nama domain, Anda dapat menghapus atau memberikan komentar pada opsi ServerName dan ServerAlias dengan menambahkan karakter # di depan masing-masing baris opsi.

      Anda dapat menggunakan a2ensite untuk mengaktifkan hos virtual yang baru:

      • sudo a2ensite your_domain

      Anda mungkin ingin menonaktifkan situs web asali yang terinstal dengan Apache. Ini diperlukan jika Anda tidak menggunakan nama domain khusus, karena dalam hal ini, konfigurasi asali Apache akan menimpa hos virtual Anda. Untuk menonaktifkan situs web asali Apache, ketikkan:

      • sudo a2dissite 000-default

      Untuk memastikan berkas konfigurasi Anda tidak berisi kesalahan sintaks, jalankan:

      • sudo apache2ctl configtest

      Terakhir, muat ulang Apache agar perubahan ini diterapkan:

      • sudo systemctl reload apache2

      Situs web Anda yang baru kini sudah aktif, tetapi root web /var/www/your_domain masih kosong. Buat berkas index.html di dalam lokasi itu sehingga kita dapat menguji apakah hos virtual bekerja sesuai harapan:

      • nano /var/www/your_domain/index.html

      Sertakan konten berikut di dalam berkas ini:

      /var/www/your_domain/index.html

      <html>
        <head>
          <title>your_domain website</title>
        </head>
        <body>
          <h1>Hello World!</h1>
      
          <p>This is the landing page of <strong>your_domain</strong>.</p>
        </body>
      </html>
      

      Sekarang, buka peramban Anda dan akses nama domain server atau alamat IP Anda sekali lagi:

      http://server_domain_or_IP
      

      Anda akan melihat sebuah laman seperti ini:

      Pengujian hos virtual Apache

      Jika Anda melihat laman ini, ini berarti hos virtual Apache Anda bekerja sesuai harapan.

      Anda dapat meninggalkan berkas ini di lokasinya saat ini sebagai laman landas sementara untuk aplikasi Anda sampai Anda menyiapkan berkas index.php untuk menggantinya. Setelah Anda melakukannya, ingat untuk menghapus atau mengganti nama berkas index.html dari root dokumen Anda, karena berkas ini lebih diutamakan daripada berkas index.php secara asali.

      Catatan Tentang DirectoryIndex pada Apache

      Dengan pengaturan DirectoryIndex asali pada Apache, berkas yang diberi nama index.html akan selalu lebih diutamakan daripada berkas index.php. Ini berguna untuk menyiapkan laman pemeliharaan di aplikasi PHP, dengan menciptakan berkas index.html sementara yang mengandung suatu pesan informatif bagi pengunjung. Karena lebih diutamakan daripada laman index.php, laman ini akan menjadi laman landas untuk aplikasi. Setelah pemeliharaan selesai, index.html diubah namanya atau dihapus dari root dokumen, sehingga mengembalikan laman aplikasi reguler.

      Jika Anda ingin mengubah perilaku ini, Anda akan perlu mengedit berkas /etc/apache2/mods-enabled/dir.conf dan memodifikasi urutan di mana berkas index.php terdaftar di dalam arahan DirectoryIndex:

      • sudo nano /etc/apache2/mods-enabled/dir.conf

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
              DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
      </IfModule>
      

      Setelah menyimpan dan menutup berkas, Anda perlu memuat ulang Apache agar perubahan tersebut diterapkan:

      • sudo systemctl reload apache2

      Dalam langkah berikutnya, kita akan menciptakan skrip PHP untuk menguji apakah PHP telah terinstal dan terkonfigurasi dengan benar di server Anda.

      Langkah 5 — Menguji Pemrosesan PHP pada Server Web

      Kini setelah Anda memiliki lokasi khusus untuk menjadi hos dari berkas dan folder situs web Anda, kita akan menciptakan skrip percobaan PHP untuk mengonfirmasi bahwa Apache dapat menangani dan memproses permintaan untuk berkas PHP.

      Buat berkas baru bernama info.php di dalam folder root web khusus Anda:

      • nano /var/www/your_domain/info.php

      Ini akan membuka suatu berkas kosong. Tambahkan teks berikut, yang merupakan kode PHP yang valid, di dalam berkas:

      /var/www/your_domain/info.php

      <?php
      phpinfo();
      

      Setelah Anda selesai, simpan dan tutup berkas.

      Untuk menguji skrip ini, buka peramban web Anda dan akses alamat IP atau nama domain server Anda, diikuti dengan nama skrip, yang dalam hal ini adalah info.php:

      http://server_domain_or_IP/info.php
      

      Anda akan melihat halaman yang serupa dengan ini:

      Info PHP Ubuntu 20.04

      Laman ini menyajikan informasi tentang server Anda dari sudut pandang PHP. Ini berguna untuk mengawakutu dan memastikan pengaturan Anda telah diterapkan dengan benar.

      Jika Anda dapat melihat laman ini di peramban Abda, maka instalasi PHP Anda bekerja sesuai harapan.

      Setelah memeriksa informasi yang relevan mengenai server PHP Anda melalui laman itu, sebaiknya hapus berkas yang Anda buat, karena berkas tersebut mengandung informasi sensitif tentang lingkungan PHP A dan server Ubuntu Anda. Anda dapat menggunakan rm untuk melakukannya:

      • sudo rm /var/www/your_domain/info.php

      Anda selalu dapat menciptakan kembali laman ini jika Anda perlu mengakses kembali informasi tersebut sewaktu-waktu.

      Langkah 6 — Menguji Koneksi Basis Data dari PHP (Opsional)

      Jika Anda ingin menguji apakah PHP dapat terhubung ke MySQL dan menjalankan kueri basis data, Anda dapat menciptakan tabel percobaan dengan kueri dan data semu sebagai kontennya dari skrip PHP. Sebelum melakukan itu, kita perlu menciptakan basis data percobaan dan pengguna MySQL baru yang dikonfigurasi dengan benar untuk mengaksesnya.

      Saat menyusun tulisan ini, pustaka PHP MySQL asli mysqlndtidak mendukung caching_sha2_authentication, metode autentikasi asali untuk MySQL 8. Kita akan perlu menciptakan pengguna baru dengan metode autentikasi mysql_native_password agar dapat terhubung ke basis data MySQL dari PHP.

      Kita akan menciptakan basis data bernama example_database dan pengguna bernama example_user, tetapi Anda dapat mengganti nama-nama ini dengan nilai yang berbeda.

      Pertama, hubungkan ke konsol MySQL menggunakan akun root:

      Untuk menciptakan basis data baru, jalankan perintah berikut dari konsol MySQL:

      • CREATE DATABASE example_database;

      Sekarang Anda dapat menciptakan pengguna baru dan memberikan mereka privilese penuh pada basis data khusus yang baru saja Anda ciptakan.

      Perintah berikut menciptakan pengguna baru bernama example_user, yang menggunakan mysql_native_password sebagai metode autentikasi asali. Kita mendefinisikan kata sandi pengguna ini sebagai password, tetapi Anda harus mengganti nilai ini dengan kata sandi pilihan Anda yang aman.

      • CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

      Sekarang, kita perlu memberikan izin terhadap basis data example_database kepada pengguna ini:

      • GRANT ALL ON example_database.* TO 'example_user'@'%';

      Ini akan memberikan pengguna example_user privilese penuh terhadap basis data example_database database, yang juga mencegah pengguna ini untuk tidak membuat atau memodifikasi basis data lainnya di server Anda.

      Sekarang, keluar dari shell MySQL dengan:

      Anda dapat menguji apakah pengguna baru memiliki izin yang tepat dengan melakukan log masuk ke konsol MySQL lagi, kali ini dengan menggunakan kredensial pengguna khusus:

      Perhatikan tanda -p dalam perintah ini, yang akan meminta Anda kata sandi yang digunakan saat menciptakan pengguna example_user. Setelah log masuk ke konsol MySQL, pastikan Anda memiliki akses ke basis data example_database:

      Ini akan menampilkan keluaran berikut:

      Output

      +--------------------+ | Database | +--------------------+ | example_database | | information_schema | +--------------------+ 2 rows in set (0.000 sec)

      Selanjutnya, kita akan menciptakan tabel percobaan bernama todo_list. Dari konsol MySQL, jalankan pernyataan berikut:

      • CREATE TABLE example_database.todo_list (
      • item_id INT AUTO_INCREMENT,
      • content VARCHAR(255),
      • PRIMARY KEY(item_id)
      • );

      Masukkan beberapa baris konten ke dalam tabel percobaan. Anda mungkin ingin mengulangi perintah selanjutnya beberapa kali lagi, dengan menggunakan nilai yang berbeda:

      • INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

      Untuk memastikan data berhasil tersimpan di tabel, jalankan:

      • SELECT * FROM example_database.todo_list;

      Anda akan melihat keluaran berikut:

      Output

      +---------+--------------------------+ | item_id | content | +---------+--------------------------+ | 1 | My first important item | | 2 | My second important item | | 3 | My third important item | | 4 | and this one more thing | +---------+--------------------------+ 4 rows in set (0.000 sec)

      Setelah memastikan Anda memiliki data yang valid dalam tabel percobaan, Anda dapat keluar dari konsol MySQL:

      Sekarang Anda dapat menciptakan skrip PHP yang akan terhubung ke MySQL dan melakukan kueri untuk konten Anda. Buat berkas PHP baru pada direktori root web khusus Anda menggunakan editor pilihan Anda. Kita akan menggunakan nano untuk itu:

      • nano /var/www/your_domain/todo_list.php

      Skrip PHP berikut terhubung ke basis data MySQL dan melakukan kueri untuk konten tabel todo_list, yang menampilkan hasilnya dalam sebuah daftar. Jika ada masalah dengan koneksi basis data, akan dilakukan pengecualian. Salin konten ini ke skrip todo_list.php:

      /var/www/your_domain/todo_list.php

      <?php
      $user = "example_user";
      $password = "password";
      $database = "example_database";
      $table = "todo_list";
      
      try {
        $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
        echo "<h2>TODO</h2><ol>";
        foreach($db->query("SELECT content FROM $table") as $row) {
          echo "<li>" . $row['content'] . "</li>";
        }
        echo "</ol>";
      } catch (PDOException $e) {
          print "Error!: " . $e->getMessage() . "<br/>";
          die();
      }
      

      Simpan dan tutup berkas setelah Anda selesai mengedit.

      Anda dapat mengakses laman ini di peramban web Anda dengan mengunjungi nama domain atau alamat IP publik yang dikonfigurasi untuk situs web Anda, diikuti dengan /todo_list.php:

      http://your_domain_or_IP/todo_list.php
      

      Anda akan melihat laman seperti ini, yang menunjukkan konten yang telah Anda masukkan ke dalam tabel percobaan Anda:

      Contoh todo list PHP

      Ini berarti lingkungan PHP Anda telah siap terhubung dan berinteraksi dengan server MySQL.

      Kesimpulan

      Dalam panduan ini, kita telah membangun fondasi yang fleksibel untuk menyajikan aplikasi dan situs web PHP kepada pengunjung Anda, dengan menggunakan Apache sebagai server web dan MySQL sebagai sistem basis data.

      Sebagai langkah berikutnya, Anda harus memastikan bahwa koneksi ke server web Anda sudah aman, dengan melayaninya melalui HTTPS. Untuk melakukannya, Anda dapat menggunakan Let’s Encrypt untuk mengamankan situs Anda dengan sertifikat TLS/SSL gratis.



      Source link

      Cómo instalar WordPress en Ubuntu 20.04 con una pila LAMP


      Introducción

      WordPress es una tecnología de código abierto extremadamente popular para crear sitios web en el Internet actual. Usado por el 63 % de los sitios web que utilizan un sistema de gestión de contenidos (GMS), los sitios de WordPress representan el 36 % de todos los sitios web que están en línea actualmente.

      Existen muchos enfoques diferentes para obtener acceso a WordPress y algunos procesos de configuración son más complejos que otros. Este tutorial está destinado para aquellos que desean instalar y administrar una instancia WordPress en un servidor en la nube no gestionado a través de la línea de comandos. Aunque este enfoque requiere más pasos que una instalación WordPress ya hecha, ofrece a los administradores mayor control sobre su entorno de WordPress.

      Si lo que desea es acceder a una instalación de WordPress ya lista, DigitalOcean Markeplace ofrece una aplicación con solo un clic para comenzar con WordPress a través de la instalación cuando prepara su servidor.

      Dependiendo de sus necesidades y objetivos, puede encontrar otras opciones que son más adecuadas. Como software de código abierto, WordPress puede descargarse e instalarse de forma gratuita, pero para que esté disponible en la web, probablemente necesite una infraestructura en la nube y un nombre de dominio. Siga esta guía si está interesado en trabajar a través de la instalación del lado del servidor y configurar un sitio WordPress.

      Este tutorial usará una pila LAMP (Linux, Apache, MySQL y PHP), que es una opción para una arquitectura de servidor compatible con WordPress proporcionando el sistema operativo Linux, el servidor web Apache, la base de datos MySQL y el lenguaje de programación PHP. Instalaremos y configuraremos WordPress a través de LAMP en un servidor Linux Ubuntu 20.04.

      Requisitos previos

      Para completar este tutorial, necesitará acceso a un servidor Ubuntu 20.04 y necesitará completar estos pasos antes de comenzar esta guía:

      • Configure su servidor siguiendo nuestra Guía de configuración inicial del servidor Ubuntu 20.04, y asegúrese de tener un usuario sudo no root.
      • Instale una pila LAMP siguiendo nuestra Guía sobre LAMP para instalar y configurar este software.
      • Proteja su sitio: WordPress asume la entrada del usuario y almacena datos del usuario, de forma que es importante tener una capa de seguridad. TLS/SSL es la tecnología que le permite cifrar el tráfico de su sitio para que su conexión y la de sus usuarios sea segura. Aquí tiene dos opciones disponibles para cumplir con este requisito:
        • Si tiene nombre de dominio, puede proteger su sitio con Let´s Encrypt, que proporciona certificados de confianza gratuitos. Para la configuración, siga nuestra guía de Let’s Encrypt para Apache.
        • Si no cuenta con un dominio y solo utiliza esta configuración para pruebas o cuestiones personales, puede emplear en su lugar un certificado autofirmado. Le proporciona el mismo tipo de cifrado, pero sin la validación del dominio. Para la configuración, siga nuestra guía de SSL autofirmados para Apache.

      Cuando complete los pasos de configuración, inicie sesión en su servidor como usuario sudo y continúe.

      Paso 1: Creación de una base de datos de MySQL y un usuario para WordPress

      El primer paso que daremos es preparatorio. WordPress utiliza MySQL para administrar y almacenar el sitio y la información del usuario. Ya instalamos MySQL, pero debemos crear una base de datos y un usuario para que use WordPress.

      Para comenzar, inicie sesión en la cuenta root de MySQL (administrativa) emitiendo este comando (tenga en cuenta que este no es el usuario root de su servidor):

      Una vez instalado el software le solicitará la contraseña que configuró para la cuenta root de MySQL.

      Nota: Si no puede acceder a su base de datos MySQL a través de root, como usuario sudo puede actualizar la contraseña de su usuario root iniciando sesión en la base de datos de esta forma:

      Una vez que reciba la instrucción de MySQL, puede actualizar la contraseña del usuario root. Aquí, sustituya new_password por una contraseña segura de su elección.

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

      Ahora puede escribir EXIT; y puede volver a iniciar sesión en la base de datos a través de la contraseña con el siguiente comando:

      En la base de datos, puede crear una base de datos exclusiva para que WordPress la controle. Puede ponerle el nombre que quiera, pero usaremos el nombre wordpress en esta guía. Cree la base de datos para WordPress escribiendo lo siguiente:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      Nota: Cada instrucción de MySQL debe terminar en punto y coma (;). Asegúrese de que esto no falte si experimenta problemas.

      A continuación, crearemos una cuenta de usuario separada de MySQL que usaremos exclusivamente para realizar operaciones en nuestra nueva base de datos. Crear bases de datos y cuentas específicas puede ayudarnos desde el punto de vista de administración y seguridad. Usaremos el nombre wordpressuser en esta guía, pero puede usar el nombre que sea más relevante para usted.

      Crearemos esta cuenta, configuraremos una contraseña y concederemos acceso a la base de datos que hemos creado. Podemos hacerlo escribiendo el siguiente comando. Recuerde elegir una contraseña segura aquí para su usuario de base de datos donde tenemos password:

      • CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

      A continuación, deje saber a la base de datos que nuestro wordpressuser debería tener acceso completo a la base de datos que configuramos:

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

      Ahora tiene una base de datos y una cuenta de usuario, creadas específicamente para WordPress. Debemos eliminar los privilegios de modo que la instancia actual de MySQL sepa sobre los cambios recientes que hemos realizado:

      Cierre MySQL escribiendo lo siguiente:

      En el siguiente paso, crearemos la base para los complementos de WordPress descargando extensiones PHP para nuestro servidor.

      Paso 2: Instalación de extensiones de PHP adicionales

      Cuando configuramos nuestra pila LAMP, solo necesitamos un conjunto de extensiones muy reducido para que PHP se comunicara con MySQL. WordPress y muchos de sus complementos aprovechan las extensiones de PHP adicionales.

      Podemos descargar e instalar algunas de las extensiones de PHP más populares para usarlas con WordPress escribiendo lo siguiente:

      • sudo apt update
      • sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

      Esto sentará las bases para instalar complementos adicionales en nuestro sitio WordPress.

      Nota: Cada complemento de WordPress tiene su propio conjunto de requisitos. Para algunos, posiblemente sea necesario instalar paquetes de PHP adicionales. Compruebe la documentación de sus complementos para ver sus requisitos de PHP. Si están disponibles, pueden instalarse con apt como ya se ha mostrado.

      Necesitaremos reiniciar Apache para cargar estas nuevas extensiones; realizaremos más configuraciones en Apache en la próxima sección, así que puede esperar hasta entonces o reiniciar ahora para completar el proceso de extensión de PHP.

      • sudo systemctl restart apache2

      Paso 3: Ajuste de la configuración de Apache para permitir reemplazos y reescrituras .htaccess

      A continuación, realizaremos algunos ajustes de menor importancia en nuestra configuración de Apache. Conforme a los tutoriales de los requisitos previos, debe tener un archivo de configuración para su sitio en el directorio /etc/apache2/sites-available/.

      En esta guía, utilizaremos /etc/apache2/sites-available/wordpress.conf, pero debe sustituir la ruta a su archivo de configuración cuando proceda. Además, emplearemos /var/www/wordpresscomo el directorio root de nuestra instalación de WordPress. Debería usar el root web especificada en su propia configuración. Si siguió nuestro tutorial LAMP, puede ser su nombre de dominio en vez de wordpress en ambas instancias.

      Nota: Es posible que utilice la configuración predeterminada 000-default.conf (con /var/www/html como su root web). Se puede usar si solo va a alojar un sitio web en este servidor. En caso negativo, resulta mejor dividir la configuración necesaria en chunks lógicos, un archivo por sitio.

      Con nuestras rutas identificadas, podemos pasar a trabajar con .htaccess de forma que Apache pueda manejar los cambios en la configuración directorio por directorio.

      Habilitar reemplazos .htaccess

      Actualmente, el uso de archivos .htaccess está desactivado. WordPress y muchos de sus complementos utilizan estos archivos de forma amplia para realizar ajustes de comportamiento del servidor web dentro del directorio.

      Abra el archivo de configuración de Apache para su sitio web con un editor de texto como nano.

      • sudo nano /etc/apache2/sites-available/wordpress.conf

      Para permitir archivos .htaccess, debemos configurar la directiva AllowOverride dentro de un bloque Directory orientado a nuestro root de documentos. Agregue el siguiente bloque de texto dentro del bloque VirtualHost en su archivo de configuración. Asegúrese de utilizar el directorio root web correcto:

      /etc/apache2/sites-available/wordpress.conf

      <Directory /var/www/wordpress/>
          AllowOverride All
      </Directory>
      

      Cuando termine, guarde y cierre el archivo. En nano, puede hacer esto pulsando CTRL y X juntos, luego Y, y luego ENTER.

      Habilitar el módulo de reescritura

      A continuación, podemos habilitar mod_rewrite para usar la característica de permalink de WordPress:

      Esto le permite tener permalinks a sus publicaciones más legibles por el ser humano, como en los siguientes dos ejemplos:

      http://example.com/2012/post-name/
      http://example.com/2012/12/30/post-name
      

      El comando a2enmod invoca una secuencia de comandos que habilita el módulo especificado en la configuración Apache.

      Habilitar los cambios

      Antes de implementar los cambios realizados, compruebe que no hay errores de sintaxis ejecutando la siguiente prueba.

      • sudo apache2ctl configtest

      Puede recibir un resultado como el siguiente:

      Output

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

      Si desea eliminar la línea superior, simplemente agregue una directiva ServerName a su archivo de configuración principal (global) de Apache en /etc/apache2/apache2.conf. ServerName puede ser el dominio o la dirección IP de su servidor. Este es solo un mensaje, sin embargo, y no afecta a la funcionalidad de su sitio. En tanto el resultado contenga Sintaxis OK, podrá continuar.

      Reinicie Apache para implementar los cambios: Asegúrese de reiniciar ahora, incluso si ha reiniciado anteriormente en este tutorial.

      • sudo systemctl restart apache2

      A continuación, descargaremos y configuraremos el propio WordPress.

      Paso 4: Descargar WordPress

      Ahora que el software de nuestro servidor está configurado, podemos descargar y configurar WordPress. Preferentemente por motivos de seguridad, siempre se recomienda obtener la versión más reciente de WordPress del sitio del producto.

      Cambie a un directorio que permita la escritura (recomendamos uno temporal como /tmp) y descargue la versión comprimida.

      • cd /tmp
      • curl -O https://wordpress.org/latest.tar.gz

      Extraiga el archivo comprimido para crear la estructura de directorios de WordPress:

      Moveremos estos archivos a nuestro root de documentos por ahora. Antes de hacerlo, podemos añadir un archivo ficticio .htaccess de modo que esté disponible para que WordPress lo use más adelante.

      Cree el archivo escribiendo lo siguiente:

      • touch /tmp/wordpress/.htaccess

      También copiaremos sobre el archivo de configuración de muestra al nombre de archivo que lee WordPress:

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      También podemos crear el directorio de actualización, de modo que WordPress no tenga problemas de permisos al intentar hacerlo por su cuenta siguiendo una actualización a su software:

      • mkdir /tmp/wordpress/wp-content/upgrade

      Ahora podemos copiar todo el contenido del directorio en nuestro root de documentos. Usaremos un punto al final de nuestro directorio de origen para indicar que todo lo que está dentro del directorio debe copiarse, incluyendo archivos ocultos (como el archivo .htaccess que hemos creado):

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Asegúrese de sustituir el directorio /var/www/wordpress por el directorio que haya configurado en su servidor.

      Paso 5: Configurar el directorio de WordPress

      Antes de realizar la configuración basada en web de WordPress, debemos ajustar algunos elementos en nuestro directorio de WordPress.

      Realizar ajustes de propiedad y permisos

      Un paso importante que debemos lograr es configurar permisos de archivo razonables y la propiedad.

      Empezaremos por dar la propiedad de todos los archivos al usuario y al grupo www-data. Este es el usuario como el que se ejecuta el servidor web Apache, y este último deberá poder leer y escribir archivos de WordPress para presentar el sitio web y realizar actualizaciones automáticas.

      Actualice la propiedad con el comando chown que le permite modificar la propiedad del archivo. Asegúrese de apuntar al directorio relevante de su servidor.

      • sudo chown -R www-data:www-data /var/www/wordpress

      A continuación, ejecutaremos dos comandos find para establecer los permisos correctos de los directorios y archivos de WordPress:

      • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
      • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

      Estos permisos deberían hacer que pueda trabajar de forma efectiva con WordPress, pero tenga en cuenta que algunos complementos y procedimientos pueden requerir ajustes adicionales.

      Configurar el archivo de configuración de WordPress

      Ahora, debemos realizar algunos cambios en el archivo de configuración principal de WordPress.

      Cuando abramos el archivo, nuestra primera tarea será ajustar algunas claves secretas para proporcionar un nivel de seguridad a nuestra instalación. WordPress proporciona un generador seguro para estos valores, para que no tenga que crear valores correctos por su cuenta. Solo se utilizan internamente, de modo que no dañará la usabilidad el tener valores complejos y seguros aquí.

      Para obtener valores seguros del generador de claves secretas de WordPress, escriba lo siguiente:

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

      Obtendrá valores únicos que se parecen al resultado del bloque siguiente.

      Advertencia: Debe solicitar valores únicos cada vez. NO copie los siguientes valores.

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

      Son líneas de configuración que podemos pegar directamente en nuestro archivo de configuración para establecer claves seguras. Copie el resultado que obtuvo ahora.

      A continuación, abra el archivo de configuración de WordPress:

      • sudo nano /var/www/wordpress/wp-config.php

      Busque la sección que contiene los valores de ejemplo para esos ajustes.

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Elimine esas líneas y pegue los valores que copió de la línea de comandos:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

      A continuación, vamos a modificar algunos de los ajustes de conexión de la base de datos al principio del archivo. Debe ajustar el nombre de la base de datos, su usuario y la contraseña asociada que configuramos dentro de MySQL.

      El otro cambio que debemos realizar es configurar el método que debe emplear WordPress para escribir el sistema de archivos. Debido a que hemos dado permiso al servidor web para escribir donde debe hacerlo, podemos fijar de forma explícita el método del sistema de archivos a “direct”. Si no lo configuramos con nuestros ajustes actuales, WordPress solicitaría las credenciales de FTP cuando realicemos algunas acciones.

      Este ajuste se puede agregar debajo de los ajustes de conexión de la base de datos o en cualquier otra parte del archivo:

      /var/www/wordpress/wp-config.php

      . . .
      
      // ** MySQL settings - You can get this info from your web host ** //
      /** The name of the database for WordPress */
      define( 'DB_NAME', 'wordpress' );
      
      /** MySQL database username */
      define( 'DB_USER', 'wordpressuser' );
      
      /** MySQL database password */
      define( 'DB_PASSWORD', 'password' );
      
      /** MySQL hostname */
      define( 'DB_HOST', 'localhost' );
      
      /** Database Charset to use in creating database tables. */
      define( 'DB_CHARSET', 'utf8' );
      
      /** The Database Collate type. Don't change this if in doubt. */
      define( 'DB_COLLATE', '' );
      
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Guarde y cierre el archivo cuando termine.

      Paso 6: Completar la instalación a través de la interfaz web

      Ahora que la configuración del servidor está completa, podemos finalizar la instalación a través de la interfaz web.

      En su navegador web, vaya al nombre de dominio o a la dirección IP pública de su servidor:

      https://server_domain_or_IP
      

      Seleccione el idioma que desee usar:

      Selección de idioma de WordPress

      A continuación, accederá a la página principal de configuración.

      Seleccione un nombre para su sitio WordPress y seleccione un nombre de usuario. Se recomienda elegir algo único y evitar nombres de usuario comunes como “admin” por motivos de seguridad. De forma automática, se generará una contraseña segura. Guárdela o seleccione una contraseña segura alternativa.

      Introduzca su dirección de correo electrónico y defina si quiere que los motores de búsqueda no indexen su sitio:

      Instalación de la configuración de WordPress

      Cuando haga clic para seguir, irá a una página que le pide que inicie sesión:

      Solicitud de inicio de sesión de WordPress

      Tras iniciar sesión, accederá al panel de administración de WordPress:

      Solicitud de inicio de sesión de WordPress

      En este momento, puede comenzar a diseñar su sitio web WordPress. Si es la primera vez que utiliza WordPress, explore la interfaz un poco para conocer su nuevo CMS.

      Conclusión

      Enhorabuena, WordPress está ahora instalado y listo para usarse.

      En este momento, quizá quiera hacer lo siguiente:

      • Seleccionar los ajustes de sus permalinks para las publicaciones de WordPress, que encontrará en Ajustes > Permalinks.
      • Seleccionar un nuevo tema en Apariencia > Temas.
      • Instalar nuevos complementos para aumentar la funcionalidad de su sitio bajo Complementos > Añadir nuevo.
      • Si va a colaborar con otros, puede también desear agregar usuarios adicionales en este momento bajo Usuarios > Añadir Nuevo.

      Puede encontrar recursos adicionales para formas alternativas de instalar WordPress, aprender a instalar WordPress en diferentes distribuciones de servidores, automatizar sus instalaciones de WordPress y escalar sus sitios de WordPress consultando nuestra etiqueta WordPress Community.



      Source link

      Como instalar o WordPress no Ubuntu 20.04 com uma pilha LAMP


      Introdução

      Hoje, o WordPress é uma ferramenta de código aberto extremamente popular para fazer sites e blogs na internet. Usado por 63% de todos os sites que usam um sistema de gerenciamento de conteúdo (CMS), os sites com WordPress representam 36% de todos os sites que estão atualmente online.

      Há muitas abordagens diferentes para se obter acesso ao WordPress e alguns processos de configuração são mais complexos do que outros. Este tutorial destina-se àqueles que desejam instalar e administrar uma instância do WordPress em um servidor na nuvem não gerenciado através da linha de comando. Embora esta abordagem exija mais passos do que uma instalação do WordPress pronta, ela oferece aos administradores controle maior sobre seu ambiente WordPress.

      Se você estiver procurando acessar uma instalação do WordPress pronta, o Marketplace da DigitalOcean oferece um aplicativo com um clique para você começar com a instalação do WordPress ao desenvolver seu servidor.

      Dependendo das suas necessidades e objetivos, você pode encontrar outras opções que sejam mais adequadas. Como software de código aberto, o WordPress pode ser baixado e instalado livremente, mas para ficar disponível na Web é provável que seja necessário comprar uma infraestrutura na nuvem e um nome de domínio. Continue seguindo este guia se você estiver interessado em trabalhar na instalação e configuração da parte do servidor de um site WordPress.

      Este tutorial usará uma pilha LAMP (Linux, Apache, MySQL e PHP), que é uma opção para uma arquitetura de servidor que suporta o WordPress, fornecendo o sistema operacional Linux, o servidor Web Apache, o banco de dados MySQL e a linguagem de programação PHP. Instalaremos e configuraremos o WordPress via LAMP em um servidor Linux Ubuntu 20.04.

      Pré-requisitos

      Para completar este tutorial, você precisará de acesso a um servidor Ubuntu 20.04 e completar esses passos antes de iniciar este guia:

      • Crie seu servidor seguindo nosso guia de configuração inicial de servidor com o Ubunutu 20.04 e certifique-se de possuir um usuário sudo não root.
      • Instale uma pilha LAMP seguindo nosso guia LAMP para instalar e configurar este software.
      • Proteja seu site: o WordPress recebe entradas do usuário e armazena os dados dele, então é importante que haja camada de segurança. O TLS/SSL é a tecnologia que permite criptografar o tráfego do seu site para que sua conexão e a dos seus usuários permaneçam seguras. Aqui estão duas opções disponíveis para atender a este requisito:
        • Caso tenha um nome de domínio… você pode proteger seu site com o Let’s Encrypt, que fornece certificados confiáveis e gratuitos. Siga nosso guia do Let’s Encrypt para o Apache para configurar isto.
        • Se não tiver um domínio…, e esteja usando essa configuração para teste ou uso pessoal, ao invés disso, utilize um certificado auto-assinado. Tal certificado proporciona o mesmo tipo de criptografia, mas sem a validação de domínio. Siga nosso guia SSL auto-assinado para o Apache para configurar.

      Quando tiver concluído os passos de configuração, faça login no seu servidor como seu usuário sudo e continue abaixo.

      Passo 1 — Criando um banco de dados do MySQL e um usuário para o WordPress

      O primeiro passo que vamos dar é um passo preparatório. O WordPress utiliza o MySQL para gerenciar e armazenar as informações do site e as do usuário. Já temos o MySQL instalado, mas precisamos criar um banco de dados e um usuário para o WordPress usar.

      Para começar, faça login na conta root (administrativa) do MySQL emitindo este comando (note que este não é usuário root do seu servidor):

      Será solicitada a senha que você configurou para a conta raiz do MySQL quando instalou o software.

      Nota: Se você não puder acessar seu banco de dados MySQL via root como um usuário sudo, você pode atualizar a senha do seu usuário root fazendo login no banco de dados desta forma:

      Depois de receber o prompt MySQL, fica disponível atualizar a senha do usuário root. Aqui, substitua new_password por uma senha forte da sua escolha.

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

      Agora, digite EXIT; e faça novamente login no banco de dados com a senha utilizando o seguinte comando:

      Dentro banco de dados, podemos criar um banco de dados exclusivo para o WordPress controlar. Chame isso do que quiser, mas vamos usar o nome wordpress neste guia. Crie o banco de dados para o WordPress digitando:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      Nota: cada instrução do MySQL deve terminar em um ponto e vírgula (;). Verifique para garantir que a instrução foi seguida (ou seja, o ponto e vírgula foi usado), caso estiver enfrentando algum problema.

      Em seguida, vamos criar uma conta de usuário do MySQL separada que vamos usar exclusivamente para operar nosso novo banco de dados. Criar bancos de dados e contas específicas pode nos ser útil do ponto de vista de gestão e segurança. Usaremos o nome wordpressuser neste guia, mas sinta-se livre para usar qualquer nome que seja relevante para você.

      Vamos criar essa conta, definir uma senha e conceder o acesso ao banco de dados que criamos. Podemos fazer isso digitando o seguinte comando: Lembre-se de escolher aqui uma senha forte para seu banco de dados. Substitua-a em password:

      • CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

      Em seguida, informe ao banco de dados que nosso usuário wordpressuser deve ter acesso completo ao banco de dados que configuramos:

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

      Agora, você tem um banco de dados e uma conta de usuário, criados especificamente para o WordPress. Precisamos liberar os privilégios para que a instância atual do MySQL saiba sobre as alterações recentes que fizemos:

      Saia do MySQL digitando:

      No próximo passo, vamos instaurar algumas bases para plug-ins do WordPress baixando extensões PHP para nosso servidor.

      Passo 2 — Como instalar as extensões adicionais do PHP

      Ao configurar nossa pilha LAMP, precisamos apenas de um conjunto mínimo de extensões para fazer com que o PHP se comunique com o MySQL. O WordPress e muitos dos seus plug-ins potencializam extensões adicionais do PHP.

      Podemos baixar e instalar algumas das extensões PHP mais populares para serem usadas com o WordPress digitando:

      • sudo apt update
      • sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

      Isso irá preparar o terreno para instalarmos plug-ins adicionais em nosso site do WordPress.

      Nota: cada plug-in do WordPress tem seus próprios requisitos. Alguns podem precisar de pacotes adicionais do PHP para serem instalados. Verifique a documentação do plug-in para descobrir seus requisitos PHP. Se estiverem disponíveis, eles podem podem ser instalados com o apt como mostrado acima.

      Precisaremos reiniciar o Apache para carregar essas novas extensões. Considerando que vamos fazer mais configurações no Apache na próxima seção, você pode esperar ou reiniciar agora para completar o processo das extensão do PHP.

      • sudo systemctl restart apache2

      Passo 3 — Ajustando a configuração do Apache para permitir que o .htaccess substitua e reescreva

      A seguir, vamos fazer alguns pequenos ajustes na nossa configuração do Apache. Baseado nos tutoriais de pré-requisitos, você deve ter um arquivo de configuração para seu site no diretório /etc/apache2/sites-available/.

      Neste guia, vamos usar o /etc/apache2/sites-available/wordpress.conf como exemplo, mas você deve substituir o caminho para seu arquivo de configuração, se apropriado. Além disso, utilizaremos o /var/www/wordpress como o diretório root de nossa instalação do WordPress. Você deve usar a raiz da Web especificada em sua própria configuração. Se você seguiu nosso tutorial LAMP, ela pode ser seu nome de domínio em vez de wordpress em ambas as instâncias.

      Nota: é possível que esteja usando a configuração padrão 000-default.conf (com /var/www/html como sua raiz para a Web). Esta configuração pode ser usada sem problemas se você só for hospedar um site neste servidor. Se não for o caso, é melhor dividir a configuração necessária em pacotes lógicos, um arquivo por site.

      Com nossos caminhos identificados, podemos seguir em frente e trabalhar com o .htaccess para que o Apache consiga lidar com as alterações de configuração para cada diretório.

      Habilitando os arquivos de Substituição do .htaccess

      Atualmente, o uso dos arquivos do .htaccess está desabilitado. O WordPress e muitos plug-ins do WordPress usam esses arquivos de maneira intensa dentro do diretório para fazer ajustes no comportamento do servidor Web.

      Abra o arquivo de configuração do Apache para seu site com um editor de texto como o nano.

      • sudo nano /etc/apache2/sites-available/wordpress.conf

      Para permitir os arquivos .htaccess, precisamos configurar a diretiva AllowOverride dentro de um bloco Directory apontando para nossa raiz de documentos. Adicione o seguinte bloco de texto dentro do bloco VirtualHost no seu arquivo de configuração, tendo certeza de usar o diretório root Web correto:

      /etc/apache2/sites-available/wordpress.conf

      <Directory /var/www/wordpress/>
          AllowOverride All
      </Directory>
      

      Quando você terminar, salve e feche o arquivo. No nano, você pode fazer isso pressionando CTRL e X juntos, então Y, depois ENTER.

      Habilitando o módulo Rewrite (Reescrita)

      Em seguida, podemos habilitar o mod_rewrite para que possamos usar o recurso de permalink (ou link permanente) do WordPress:

      Isso permite que você tenha permalinks mais humanamente legíveis para seus posts, como nos dois exemplos a seguir:

      http://example.com/2012/post-name/
      http://example.com/2012/12/30/post-name
      

      O comando a2enmod chama um script que habilita o módulo especificado dentro da configuração do Apache.

      Habilitando as alterações

      Antes de implementarmos as alterações que fizemos, verifique se não cometemos nenhum erro de sintaxe executando o seguinte teste.

      • sudo apache2ctl configtest

      Pode ser que receba um resultado como o seguinte:

      Output

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

      Se quiser suprimir a linha superior, basta adicionar uma diretiva de ServerName ao seu arquivo de configuração principal (global) do apache em Apache em /etc/apache2/apache2.conf. O ServerName pode ser o domínio ou endereço IP do seu servidor. No entanto, isso é apenas uma mensagem, e não afeta a funcionalidade do seu site. Contanto que a saída mostre Syntax OK, você estará pronto para continuar.

      Reinicie o Apache para implementar as alterações. Neste momento, certifique-se de fazer a reinicialização, mesmo que tenha reiniciado anteriormente neste tutorial.

      • sudo systemctl restart apache2

      Em seguida, vamos baixar e configurar o WordPress propriamente dito.

      Passo 4 — Como baixar o WordPress

      Agora que nosso software de servidor está configurado, podemos baixar e configurar o WordPress. Por motivos de segurança, é sempre recomendável obter a versão mais recente do WordPress do site deles.

      Vá até um diretório gravável (recomendamos um temporário como o /tmp) e baixe o lançamento compactado.

      • cd /tmp
      • curl -O https://wordpress.org/latest.tar.gz

      Extraia o arquivo comprimido para criar a estrutura de diretórios do WordPress:

      Vamos mover esses arquivos temporariamente para nossa raiz de documentos. Antes de fazermos isso, adicionamos um arquivo de .htaccess fictício para que esteja disponível para o WordPress usar mais tarde.

      Crie o arquivo digitando:

      • touch /tmp/wordpress/.htaccess

      Também vamos copiar o exemplo de arquivo de configuração no nome do arquivo que o WordPress lê:

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      Também podemos criar o diretório upgrade, para que o WordPress não se depare com problemas de permissão ao tentar fazer isso sozinho após uma atualização no software:

      • mkdir /tmp/wordpress/wp-content/upgrade

      Agora, podemos copiar o conteúdo todo do diretório para nossa root de documento. Estamos usando um ponto no final do nosso diretório fonte para indicar que tudo dentro do diretório deve ser copiado, incluindo arquivos escondidos (como o arquivo .htaccess que criamos):

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Certifique-se de substituir o diretório /var/www/wordpress pelo diretório que você configurou no seu servidor.

      Passo 5 — Configurando o diretório do WordPress

      Antes de fazermos a configuração do WordPress baseada na Web, precisamos ajustar alguns itens em nosso diretório do WordPress.

      Como ajustar as propriedades e permissões

      Um passo importante que precisamos realizar é configurar permissões e propriedade dos arquivos que sejam adequadas.

      Vamos começar concedendo a propriedade de todos os arquivos para o usuário e grupo www-data. Este é o usuário sob o qual o servidor Web Apache executa. O Apache terá que ser capaz de ler e gravar arquivos do WordPress para atender o site e realizar atualizações automáticas.

      Atualize a propriedade com o comando chown que lhe permite modificar a propriedade dos arquivos. Certifique-se de apontar para o diretório relevante do seu servidor.

      • sudo chown -R www-data:www-data /var/www/wordpress

      Em seguida, iremos executar dois comandos find para definir as permissões para os diretórios e arquivos do WordPress:

      • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
      • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

      Essas permissões devem ser suficientes para que você trabalhe com o WordPress de maneira efetiva, mas note que alguns plug-ins e procedimentos podem exigir ajustes adicionais.

      Como configurar o arquivo de configuração do WordPress

      Agora, precisamos fazer algumas alterações no arquivo de configuração principal do WordPress.

      Ao abrimos o arquivo,nossa prioridade será ajustar algumas chaves secretas para acrescentar alguma segurança à nossa instalação. O WordPress oferece um gerador seguro para esses valores para que você não tenha que tentar obter bons valores por conta própria. Estes valores são usados internamente, então a usabilidade não será prejudicada se houverem valores complexos e seguros aqui.

      Para pegar valores seguros do gerador de chave secreta do WordPress, digite:

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

      Você receberá de volta valores únicos que se assemelham ao resultado do bloco abaixo.

      Aviso! É importante que você solicite sempre valores únicos. Não copie os valores abaixo!

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

      Essas são linhas de configuração que podemos colar diretamente no nosso arquivo de configuração para definir chaves seguras. Copie o resultado que acabou de receber.

      Em seguida, abra o arquivo de configuração do WordPress:

      • sudo nano /var/www/wordpress/wp-config.php

      Encontre a seção que contém os valores de exemplo para essas configurações.

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Exclua essas linhas e cole os valores que copiou da linha de comando:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

      A seguir, vamos modificar algumas das configurações de conexão do banco de dados no início do arquivo. Você precisa ajustar o nome do banco de dados, o usuário do banco de dados e a senha associada que você configurou no MySQL.

      A outra mudança que precisamos fazer é definir o método que o WordPress deve usar para gravar no sistema de arquivos. Uma vez que demos permissão ao servidor Web para escrever onde ele precisa, podemos definir explicitamente o método do sistema de arquivos como “direct”. Deixar de definir esse método de acesso – usando nossas configurações atuais, levaria o WordPress a solicitar credenciais FTP quando realizássemos algumas ações.

      Esta configuração pode ser adicionada abaixo das configurações de conexão do banco de dados ou em qualquer outro lugar no arquivo:

      /var/www/wordpress/wp-config.php

      . . .
      
      // ** MySQL settings - You can get this info from your web host ** //
      /** The name of the database for WordPress */
      define( 'DB_NAME', 'wordpress' );
      
      /** MySQL database username */
      define( 'DB_USER', 'wordpressuser' );
      
      /** MySQL database password */
      define( 'DB_PASSWORD', 'password' );
      
      /** MySQL hostname */
      define( 'DB_HOST', 'localhost' );
      
      /** Database Charset to use in creating database tables. */
      define( 'DB_CHARSET', 'utf8' );
      
      /** The Database Collate type. Don't change this if in doubt. */
      define( 'DB_COLLATE', '' );
      
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Salve e feche o arquivo quando você terminar.

      Agora que a configuração do servidor está completa, podemos concluir a instalação através da interface com a Web.

      No seu navegador Web, navegue até o nome de domínio do seu servidor ou endereço IP público:

      https://server_domain_or_IP
      

      Selecione a linguagem que você gostaria de usar:

      WordPress language selection

      Em seguida, você chegará à página de configuração principal.

      Selecione um nome para seu site WordPress e escolha um nome de usuário. Recomenda-se escolher algo único e evitar nomes de usuário comuns como “admin” por fins de segurança. Uma senha forte será gerada automaticamente. Salve essa senha ou selecione uma senha forte alternativa.

      Digite seu endereço de e-mail e selecione se deseja impedir que mecanismos de pesquisa façam a indexação do seu site:

      WordPress setup installation​​​

      Quando clicar adiante, você será levado para uma página que solicita que você faça login:

      WordPress login prompt

      Assim que fizer login, será levado para o painel de administração do WordPress:

      WordPress login prompt

      Neste momento, você pode começar a projetar seu site do WordPress! Se esta é a primeira vez que usa o WordPress, explore a interface um pouco para se familiarizar com seu novo CMS.

      Conclusão

      Parabéns, o WordPress agora está instalado e pronto para ser usado!

      Agora, pode ser interessante começar a fazer o seguinte:

      • Escolher sua configuração de permalinks para posts do WordPress, que pode ser encontrada em Settings > Permalinks.
      • Selecione um novo tema em Appearance > Themes.
      • Instale novos plug-ins para aumentar a funcionalidade do seu site em Plugins > Add New.
      • Se você for colaborar com outros, também pode desejar adicionar usuários adicionais em Users > Add New.

      É possível encontrar recursos adicionais para formas alternativas de instalar o WordPress, aprender como instalar o WordPress em diferentes distribuições de servidor, automatizar suas instalações do WordPress e escalar seus sites do WordPress conferindo nosso marcador comunitário do WordPress.



      Source link