Drupal adalah sistem manajemen konten sumber terbuka yang terkenal berdasarkan PHP. Ini tersedia secara gratis dan dirilis di bawah Lisensi Publik Umum GNU. Drupal dapat digunakan untuk semua ukuran situs web, dari situs web internasional besar hingga blog pribadi dan situs perusahaan atau pemerintah. Bagian inti drupal bernama "Drupal Core", berisi sistem manajemen konten dasar, manajemen pengguna, manajemen menu, penyesuaian tata letak, dan administrasi sistem. Drupal Core dapat diperluas dengan plugin, hingga saat ini komunitas drupal telah menyediakan lebih dari 31.000 modul untuk Drupal. Versi Drupal saat ini adalah 8.0.
Dalam tutorial ini, kita akan menginstal Drupal 8 dengan server web Nginx, MariaDB sebagai server database dan PHP-FPM untuk menangani permintaan PHP. Saya juga akan menunjukkan cara memasang Sertifikat SSL untuk mengamankan situs web Drupal.
Prasyarat
- Ubuntu 15.10 - versi 64bit.
- Hak istimewa root.
Langkah 1 - Perbarui sistem Ubuntu
Masuk ke server ubuntu dengan ssh, lalu menjadi pengguna root dan perbarui repositori ubuntu:
sudo su
sudo apt-get update
Langkah 2 - Instal Nginx dan PHP-FPM
Nginx atau "engine-x" adalah server HTTP cepat yang berfokus pada kinerja tinggi dengan penggunaan memori/RAM yang rendah. Kita dapat menggunakan Nginx juga sebagai proxy terbalik, untuk protokol HTTP, HTTPS, POP3 dan IMAP. Dalam tutorial ini, kita akan menggunakan Nginx sebagai server HTTP berkemampuan SSL.
Instal Nginx dengan perintah apt berikut sebagai pengguna sudo/root:
sudo apt-get install nginx -y
Selanjutnya install php-fpm dengan php-gd yang dibutuhkan oleh drupal core:
apt-get install php5-fpm php5-cli php5-gd php5-mysql -y
Pada langkah selanjutnya, kita akan mengkonfigurasi Nginx.
Langkah 3 - Konfigurasi Nginx dan PHP-FPM
Pada langkah ini, kita akan mengkonfigurasi Nginx untuk menggunakan php-fpm untuk melayani permintaan HTTP untuk halaman PHP. Buka direktori php-fpm "/etc/php/fpm" dan edit file "php.ini":
cd /etc/php/fpm/
vim php.ini
Daring 773 , batalkan komentar pada baris cgi.fix_pathinfo dan ubah nilainya menjadi "0 ".
cgi.fix_pathinfo=0
Simpan file dan keluar dari editor.
Sekarang kita modifikasi konfigurasi default nginx virtualhost. Edit file "default" dan aktifkan direktif php-fpm.
cd /etc/nginx/sites-available/
vim default
Batalkan komentar pada baris 45 - 52 untuk menggunakan php-fpm dengan nginx.
location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; }
Simpan file dan keluar.
Kemudian uji konfigurasi Nginx dengan perintah "nginx -t " untuk memastikan validitasnya:
nginx -t
Jika tidak ada kesalahan, restart nginx dan layanan php-fpm:
systemctl restart nginx
systemctl restart php5-fpm
Selanjutnya, uji apakah php-fpm berfungsi dengan baik dengan nginx dengan membuat file info php baru di direktori web "/var/www/html".
cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php
Kunjungi IP server:192.168.1.101/info.php sebuah peramban web. Hasilnya akan seperti screenshot di bawah ini.
Langkah 4 - Instal dan Konfigurasi MariaDB
MariaDB adalah garpu server basis data dari sistem manajemen basis data relasional MYSQL, ia menawarkan fungsionalitas pengganti drop-in untuk mysql.
Instal MariaDB versi terbaru dengan perintah apt-get:
sudo apt-get install mariadb-client mariadb-server -y
Ketika instalasi telah selesai, mulai MariaDB:
systemctl start mysql
Nama layanan MariaDB adalah "mysql", itu sebabnya perintah systemctl menggunakan kata mysql di sini.
Sekarang kita akan mengkonfigurasi username dan password MariaDB dengan perintah di bawah ini:
mysql_secure_installation
Masuk ke shell MariaDB dengan kata sandi Anda dan buat database baru untuk drupal yang disebut "drupaldb " dan buat pengguna MariaDB/MySQL baru "drupaluser " dengan sandi "[email protected] " dan terakhir berikan izin kepada pengguna ke database. Harap pilih sandi yang aman alih-alih "[dilindungi email]" untuk penginstalan Anda!
mysql -u root -p
create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;
\q
Basis Data "drupaldb " dengan pengguna "drupaluser " telah dibuat.
Langkah 5 - Buat Sertifikat SSL yang Ditandatangani Sendiri
Buka /etc/nginx direktori dan buat direktori baru dengan nama "ssl" untuk file konfigurasi SSL.
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
Kemudian buat sertifikat SSL baru yang ditandatangani sendiri dengan perintah openssl di bawah ini:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt
Isi informasi yang diminta. File sertifikat SSL telah dibuat, sekarang ubah izin file kunci pribadi "drupal.key" menjadi 600:
chmod 600 drupal.key
Langkah 6 - Konfigurasikan VirtualHost untuk Drupal
Kami akan menginstal Drupal 8 di direktori "/var/www/drupal8" dengan nama domain "drupal8.me". Silakan ganti nama domain di instalasi Anda dengan nama domain situs web yang ingin Anda gunakan untuk instalasi drupal ini. Jadi mari kita buat direktorinya:
mkdir -p /var/www/drupal8
Kemudian masuk ke direktori virtualhost Nginx "/etc/nginx/sites-available/" dan buat file baru "drupal8" dengan editor vim:
cd /etc/nginx/sites-available/
vim drupal8
Rekatkan konfigurasi Nginx untuk drupal di bawah ini ke dalam file drupal8:
server { server_name drupal8.me; root /var/www/drupal8; ## <-- Your only path reference. listen 80; listen [::]:80; listen 443 default ssl; ssl_certificate /etc/nginx/ssl/drupal.crt; ssl_certificate_key /etc/nginx/ssl/drupal.key; # Redirect HTTP to HTTPS if ($scheme = http) { return 301 https://$server_name$request_uri; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Very rarely should these ever be accessed outside of your lan location ~* \.(txt|log)$ { allow 192.168.0.0/16; deny all; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to "hidden" files and directories whose names begin with a # period. This includes directories used by version control systems such # as Subversion or Git to store control files. location ~ (^|/)\. { return 403; } location / { # try_files $uri @rewrite; # For Drupal <= 6 try_files $uri /index.php?$query_string; # For Drupal >= 7 } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # In Drupal 8, we must also match new paths where the '.php' appears in the middle, # such as update.php/selection. The rule we use is strict, and only allows this pattern # with the update.php front controller. This allows legacy path aliases in the form of # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have # any paths like that, then you might prefer to use a laxer rule, such as: # location ~ \.php(/|$) { # The laxer rule will continue to work if Drupal uses this new URL pattern with front # controllers other than update.php in a future release. location ~ '\.php$|^/update.php' { fastcgi_split_path_info ^(.+?\.php)(|/.*)$; #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/php5-fpm.sock; } # Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7 try_files $uri @rewrite; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
Simpan file dan keluar dari editor.
File host virtual Drupal telah dibuat, sekarang kita harus mengaktifkannya dengan membuat symlink ke file di direktori "sites-enabled":
ln -s /etc/nginx/sites-available/drupal8 /etc/nginx/sites-enabled/
Uji konfigurasi Nginx dan mulai ulang Nginx:
nginx -t
systemctl restart nginx
Langkah 7 - Instal dan Konfigurasi Drupal
Kita harus menginstal git dan drush sebelum memulai instalasi Drupal. Drush adalah shell baris perintah dan antarmuka skrip Unix untuk Drupal. Instal dengan tepat perintah berikut:
sudo apt-get install git drush -y
Kemudian masuk ke direktori drupal8 yang sudah kita buat tadi dan download Drupal dengan perintah git atau drush:
cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git
Jika Anda ingin menggunakan drush, jalankan perintah di bawah ini sebagai gantinya:
drush dl drupal-8
Tunggu hingga unduhan selesai, lalu pindahkan semua file Drupal ke direktori utama:
mv drupal/* /var/www/drupal8/
Pada langkah selanjutnya kita akan mengkonfigurasi file pengaturan Drupal. Dari direktori utama Drupal, buka direktori "sites/default" dan salin dua file konfigurasi "settings.php " dan "services.yml ":
cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml
Kemudian kita harus membuat direktori baru dengan nama "file " di dalam direktori "sites/default". Perintah "chmod" memastikan bahwa file konfigurasi dan direktori "files" dapat ditulis untuk instalasi Drupal:
mkdir files/
chmod a+w *
Sekarang kunjungi situs Drupal Anda (dalam kasus saya http://drupal8.me) dengan Web Browser, Anda akan diarahkan ke koneksi https secara otomatis dan halaman installer Drupal akan muncul.
Pilih bahasa Anda, saya akan menggunakan "Bahasa Inggris" di sini.
Klik "Simpan dan lanjutkan" .
Sekarang pilih jenis instalasi. Anda dapat menggunakan tipe standar atau minimal. Saya akan menggunakan "Standar ".
Sekarang Anda akan ditampilkan halaman konfigurasi database. Isi detail database untuk database yang telah kita buat untuk Drupal.
Tunggu hingga penginstalan selesai.
Sekarang kita harus mengkonfigurasi pengaturan profil situs seperti nama situs, pengguna dan kata sandi untuk admin, email dll.
Sekarang Drupal diinstal. Anda akan diarahkan ke halaman beranda Drupal.
Anda akan melihat pesan kesalahan tentang izin dari file konfigurasi drupal "settings.php" dan "services.yml". Cukup ubah izin mereka dengan perintah berikut:
cd sites/default/
chmod 644 settings.php services.yml
Sekarang Drupal 8 diinstal dengan Nginx dan SSL di ubuntu 15.10.
Kesimpulan
Drupal adalah kerangka kerja manajemen konten sumber terbuka gratis berdasarkan PHP. Ini dapat digunakan untuk blog pribadi, beranda pribadi, atau situs web perusahaan. Drupal didistribusikan di bawah lisensi GNU. Komponen utama Drupal disebut sebagai "Drupal Core" dan hingga saat ini komunitas Drupal mengembangkan lebih dari 31.000 modul untuk memperluasnya. Versi stabil saat ini adalah 8.0. Drupal mudah dipasang dan dikonfigurasi, kita dapat menggunakan Nginx atau Apache sebagai server web dan PHP-FPM untuk menangani permintaan PHP.