Android

Bagaimana untuk memasang drupal pada centos 7

How to install Drupal on CentOS 7

How to install Drupal on CentOS 7

Isi kandungan:

Anonim

Drupal adalah salah satu platform utama CMS sumber terbuka di seluruh dunia. Ia fleksibel, berskala dan boleh digunakan untuk membina pelbagai jenis laman web yang terdiri daripada blog peribadi kecil ke laman korporat, politik, dan kerajaan yang besar.

Dalam tutorial ini, kami akan menerangkan cara memasang Drupal 8.6 pada CentOS 7.

Terdapat banyak cara untuk memasang Drupal. Panduan ini merangkumi langkah-langkah yang perlu untuk memasang Drupal menggunakan template komposer untuk projek Drupal yang dipanggil projek drupal.

Kami akan menggunakan Nginx sebagai pelayan web, PHP terbaru 7.2 dan MySQL / MariaDB sebagai pelayan pangkalan data.

Prasyarat

Sebelum anda memulakan pemasangan, pastikan anda memenuhi prasyarat berikut:

  • Mempunyai nama domain yang menunjuk ke IP pelayan awam anda. Kami akan menggunakan example.com Memiliki Nginx dipasang. Mempunyai sijil SSL dipasang untuk domain anda. Anda boleh memasang secara percuma Mari Sijikan sijil SSL dengan mengikuti arahan ini. Dilog masuk sebagai pengguna dengan keistimewaan sudo.

Buat pangkalan data MySQL

Langkah pertama ialah membuat pangkalan data dan akaun pengguna baru dan memberikan kebenaran yang sesuai kepada pengguna.

Jika MySQL atau MariaDB sudah dipasang pada pelayan anda, anda boleh melangkau langkah ini, jika tidak, anda boleh memasang pakej pelayan MariaDB 5.5 dari repositori lalai CentOS dengan menaip:

sudo yum install mariadb-server Untuk pemasangan MariaDB / MySQL segar, disyorkan untuk menjalankan arahan mysql_secure_installation untuk meningkatkan keselamatan pelayan pangkalan data anda.

Masuk ke shell MySQL dengan menaip perintah berikut dan masukkan kata laluan apabila diminta:

mysql -u root -p

Untuk membuat pangkalan data bernama drupal , pengguna bernama drupaluser dan untuk memberikan kebenaran yang diperlukan kepada pengguna, jalankan arahan berikut:

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

Pasang PHP

CentOS 7 kapal dengan versi PHP 5.4, yang sudah ketinggalan zaman dan tidak lagi disokong. Versi PHP yang disyorkan untuk Drupal ialah PHP 7.2.

Untuk memasang PHP 7.2 pada CentOS 7 terlebih dahulu kita perlu mengaktifkan repositori EPEL dan Remi:

sudo yum install epel-release yum-utils sudo yum install sudo yum-config-manager --enable remi-php72

Setelah repositori diaktifkan untuk memasang PHP 7.2 dan semua pelanjutan PHP yang diperlukan menjalankan perintah berikut:

sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git

Kami memasang PHP FPM kerana kami akan menggunakan Nginx sebagai pelayan web.

Secara lalai PHP FPM akan berjalan sebagai pengguna apache pada port 9000. Kami akan menukar pengguna untuk nginx dan bertukar dari soket TCP ke soket Unix. Untuk melakukannya membuka fail /etc/php-fpm.d/www.conf dan edit garisan yang disorot dalam warna kuning:

/etc/php-fpm.d/www.conf

… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx

Pastikan direktori /var/lib/php mempunyai pemilikan yang betul menggunakan perintah berikut:

sudo chown -R root:nginx /var/lib/php

Akhirnya, dayakan dan mulakan perkhidmatan PHP FPM:

sudo systemctl enable php-fpm sudo systemctl start php-fpm

Pasang Komposer

Komposer adalah pengurus pergantungan untuk PHP. Kami akan memuat turun template Drupal dan memasang semua komponen Drupal yang diperlukan dengan komposer.

Perintah berikut akan memasang komposer di seluruh dunia dengan memuat turun pemasang Komposer dengan curl dan memindahkan fail ke direktori /usr/local/bin :

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Sahkan pemasangan dengan menjalankan arahan berikut yang akan mencetak versi komposer:

composer --version

Keluaran seharusnya kelihatan seperti ini:

Composer version 1.8.4 2019-02-11 10:52:10

Pasang Drupal

Sekarang komposer telah dipasang, buat projek Drupal baru menggunakan template Drupal di dalam direktori /var/www/my_drupal :

sudo /usr/local/bin/composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

Arahan di atas akan memuat turun template, mengambil semua pakej php yang diperlukan dan jalankan skrip yang diperlukan untuk menyediakan projek untuk pemasangan. Proses ini mungkin mengambil masa beberapa minit dan jika berjaya, akhir output akan kelihatan seperti ini:

Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777

Langkah seterusnya ialah memasang Drupal menggunakan Drush. Dalam arahan di bawah, kami melewati pangkalan data MySQL dan maklumat pengguna yang kami buat di bahagian pertama:

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

Pemasang akan meminta anda dengan mesej berikut, hanya tekan enter untuk meneruskan.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):

Sebaik sahaja pemasangan selesai, skrip akan mencetak nama pengguna dan kata laluan pentadbiran. Output seharusnya kelihatan seperti berikut:

Starting Drupal installation. This takes a while. Installation complete. User name: admin User password: frxka2Db5v

Akhirnya, tetapkan kebenaran yang betul supaya pelayan web boleh mempunyai akses penuh ke fail dan direktori tapak:

sudo chown -R nginx: /var/www/my_drupal

Konfigurasikan Nginx

Sekarang, anda seharusnya sudah mempunyai Nginx dengan sijil SSL yang dipasang pada sistem anda, jika tidak memeriksa prasyarat untuk tutorial ini.

Untuk membuat blok pelayan baru untuk projek Drupal baru kami, kami akan menggunakan resipi Nginx dari laman rasmi Nginx.

Buka editor teks anda dan buat fail berikut:

sudo nano /etc/nginx/conf.d/example.com /etc/nginx/conf.d/example.com

# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # 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 /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' fastcgi_split_path_info ^(.+?\.php)(# Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } } Jangan lupa untuk mengganti example.com dengan domain Drupal anda dan tetapkan laluan yang betul ke fail sijil SSL. Semua permintaan HTTP akan diarahkan ke HTTPS. Coretan yang digunakan dalam konfigurasi ini dicipta dalam panduan ini.

Sebelum memulakan semula perkhidmatan Nginx membuat ujian untuk memastikan tiada ralat sintaks:

sudo nginx -t

Mulakan semula perkhidmatan Nginx untuk perubahan berkuat kuasa dengan menaip:

sudo systemctl restart nginx

Uji Pemasangan

Buka penyemak imbas anda, ketik domain anda dan dengan asumsi pemasangan berjaya, skrin yang serupa dengan yang berikut akan muncul:

Anda boleh log masuk sebagai pentadbir dan mula menyesuaikan pemasangan Drupal baru anda.

Pasang Modul dan Tema Drupal

Sekarang anda telah memasang projek Drupal anda, anda perlu memasang beberapa modul dan tema. Modul dan tema Drupal dihoskan pada repositori penggubah adat, yang projek drupal mengkonfigurasi untuk kami keluar dari kotak.

Untuk memasang modul atau tema, semua yang perlu anda lakukan ialah cd ke direktori projek dan taipkan composer require drupal/module_or_theme_name . Sebagai contoh, jika kita mahu memasang modul Pathauto, kita perlu menjalankan arahan berikut:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto Dengan menyediakan sudo -u nginx kami menjalankan perintah sebagai pengguna nginx

Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles

Seperti yang anda dapat lihat dari output di atas komposer juga memasang semua kebergantungan pakej untuk kami.

Kemas kini Core Drupal

Sebelum menaik taraf, ia sentiasa merupakan idea yang baik untuk mengambil sandaran fail dan pangkalan data anda. Anda boleh menggunakan modul Cadangan dan Migrasi atau membuat sandaran pangkalan data dan fail anda secara manual.

Untuk membuat sandaran fail pemasangan, anda boleh menggunakan arahan rsync berikut, sudah tentu, anda perlu menggunakan laluan yang betul ke direktori pemasangan:

sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)

Untuk membuat sandaran pangkalan data kami boleh menggunakan arahan mysqldump standard:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

atau drush sql-dump :

cd /var/www/my_drupal vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

Sekarang kita buat sandaran yang kita boleh teruskan dan kemas kini semua fail teras Drupal dengan menjalankan perintah berikut:

sudo -u nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Kesimpulannya

Tahniah, anda telah berjaya memasang Drupal 8 menggunakan komposer dan belajar cara memasang modul dan tema. Anda kini boleh mula menyesuaikan laman web anda. Panduan Pengguna Drupal 8 adalah tempat permulaan yang baik untuk mengetahui lebih lanjut mengenai cara menguruskan pemasangan Drupal anda. Juga, jangan lupa untuk melawat projek templat Drupal Composer di Github.

centos drupal mysql mariadb cms nginx komposer