Menginstal LEMP (Linux, Nginx, MySQL/MariADB, PHP/PHP-FPM dan PhpMyadmin) di Gentoo Linux

Menginstal LEMP (Linux, Nginx, MySQL/MariADB, PHP/PHP-FPM dan PhpMyadmin) di Gentoo Linux

Gentoo adalah salah satu distribusi linux tercepat karena pembangunannya dari orientasi sumber dan disediakan oleh program manajemen perangkat lunaknya - Portage - Alat tertentu yang diperlukan untuk membangun platform pengembang web lengkap yang bertindak dan bekerja sangat cepat dan, juga, memiliki tingkat penyesuaian yang tinggi.

Instal Nginx di Gentoo Linux

Topik ini akan membawa Anda melalui proses instalasi langkah demi langkah untuk membangun platform lingkungan web yang lengkap dengan Lemp (Linux nginx, mysql/mariadb, php-fpm/phpMyadmin), dan dengan bantuan pada Gunakan bendera Disediakan oleh Manajemen Paket Portage, yang menawarkan serangkaian fungsionalitas paket pada proses kompilasi - modul atau pengaturan yang diperlukan untuk platform web, akan sangat mengubah konfigurasi server.

Persyaratan

  1. Instalasi Gentoo dengan profil yang dikeraskan untuk server yang menghadap internet - Panduan Instalasi Gentoo.
  2. Jaringan dikonfigurasi dengan alamat IP statis.

Langkah 1: Instal Nginx Web Server

1. Sebelum mencoba melanjutkan dengan instalasi nginx, pastikan bahwa NIC Anda telah dikonfigurasi dengan alamat IP statis dan pastikan sumber portage dan sistem Anda sudah mutakhir.

$ sudo su - # emerge --sync # emerge -update --deep - -with -bdeps = y @world
Perbarui Gentoo Linux

2. Setelah proses pembaruan selesai, lanjutkan dengan instalasi NGINX dengan memilih pengaturan dan modul yang disukai dengan menggemakan Nginx menggunakan bendera ke Portage membuat.conf mengajukan. Daftar Pertama Modul Instalasi Default Nginx dengan menjalankan perintah berikut.

# emerge -pv nginx

Untuk informasi modul terperinci (gunakan bendera untuk paket) penggunaan equery memerintah.

# Equery menggunakan nginx
Cantumkan semua modul bendera

Kemudian instal nginx dengan perintah berikut.

# emerge --ask nginx
Instal Nginx Web Server

Jika Anda memerlukan modul tambahan (webdav, fancyIndex, geoip, dll) selain yang default, yang akan dikompilasi oleh nginx, tambahkan semuanya pada satu baris di portage membuat.conf file dengan Nginx_modules_http arahan, lalu kompilasi ulang nginx dengan modul baru.

# echo 'nginx_modules_http = "dav auth_pam fancyIndex geoip fastcgi uwsgi gzip menulis ulang"' >>/etc/portage/make.conf # emerge --ask nginx
Kompilasi nginx untuk modul baru

3. Setelah portage selesai nginx yang muncul, mulailah http daemon dan verifikasi dengan mengarahkan browser Anda ke http: // localhost.

Verifikasi server web nginx

Langkah 2: Pasang PHP

4. Untuk menggunakan bahasa pemrograman web dinamis php dengan server nginx, instal Manajer Proses PHP-FastCGI (FPM) dengan menambahkan FPM dan ekstensi PHP penting lainnya pada bendera penggunaan portage dan pastikan Anda menghapus ekstensi apache.

# Emerge -pv PHP
Instal PHP di Gentoo
# Equery menggunakan PHP
Pemilihan ekstensi PHP
# echo "dev -lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2" >>/etc/portage/package.Gunakan # Emerge -Task PHP

5. Sebelum memulai php-fpm beberapa perubahan harus diterapkan pada file konfigurasi layanan. Membuka php-fpm file konfigurasi dan membuat perubahan berikut.

# nano/etc/php/fpm-php5.5/php-fpm.conf

Temukan dan Batalkan Komentari Arahan berikut agar terlihat seperti ini.

error_log =/var/log/php-fpm.Log Listen = 127.0.0.1: 9000 ## Di sini Anda dapat menggunakan soket http apa pun (kombinasi ip-port) yang Anda inginkan ## pm.start_server = 20

6. Setelah file konfigurasi php-fpm diedit, ubah izin file log php-fpm dan mulai layanan.

# CHMOD 755/VAR/LOG/PHP-FPM.Log # /etc /init.D/PHP-FPM Mulai

Bahkan jika layanan PHP-FPM dimulai, Nginx tidak dapat berkomunikasi dengan PHP Gateway, jadi, beberapa perubahan perlu dilakukan pada file konfigurasi NGINX.

Langkah 3: Edit Konfigurasi Nginx

7. File Konfigurasi Template Default Nginx Just menyediakan soket http dasar hanya untuk localhost. Untuk mengubah perilaku ini dan mengaktifkan host virtual, terbuka Nginx.conf file terletak di /etc/nginx/ jalur dan buat konfigurasi berikut.

# nano/etc/nginx/nginx.conf

Temukan yang pertama server blok yang sesuai dengan localhost dan mendengarkan 127.0.0.1 Alamat IP dan memuji semua pernyataannya agar terlihat di tangkapan layar di bawah ini.

Nonaktifkan Konfigurasi HTTP Dasar

Jangan tutup file dan pindahkan ke bagian paling bawah dan tambahkan pernyataan berikut sebelum terakhir penutupan kawat gigi keriting ““.

Termasuk/etc/nginx/diaktifkan situs/*.conf;
Aktifkan host virtual nginx

8. Buat selanjutnya Situs-Enabled Dan situs-tersedia (Untuk host virtual yang tidak digunakan) direktori nginx dan file konfigurasi untuk localhost pada protokol http dan https.

# mkdir/etc/nginx/situs-tersedia # mkdir/etc/nginx/situs-diable

Buat konfigurasi file berikut untuk localhost.

# nano/etc/nginx/situs-tersedia/localhost.conf

Tambahkan konten file berikut.

server dengarkan 80; server_name localhost; access_log/var/log/nginx/localhost_access_log main; ERROR_LOG/VAR/LOG/NGINX/LOCALHOST_ERROR_LOG info; root/var/www/localhost/htdocs; Lokasi / indeks indeks.Indeks HTML.indeks htm.PHP; Autoindex aktif; autoIndex_exact_size off; autoIndex_localtime on;  Lokasi ~ \.php $  # tes untuk skrip yang tidak ada atau melempar kesalahan 404 tanpa baris ini, nginx akan secara membabi buta mengirim permintaan apa pun yang berakhir .PHP ke PHP-FPM TRY_FILES $ URI = 404; termasuk/etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; ## Pastikan soket sesuai dengan file conf php-fpm
Buat konfigurasi host virtual nginx

Untuk LocalHost dengan SSL Buat file konfigurasi berikut.

# nano/etc/nginx/situs-tersedia/localhost-ssl.conf

Tambahkan konten file berikut.

Server Listen 443 SSL; server_name localhost; SSL di; ssl_certificate/etc/ssl/nginx/nginx.PEM; ssl_certificate_key/etc/ssl/nginx/nginx.kunci; access_log/var/log/nginx/localhost.ssl_access_log utama; error_log/var/log/nginx/localhost.info ssl_error_log; root/var/www/localhost/htdocs; Lokasi / indeks indeks.Indeks HTML.indeks htm.PHP; Autoindex aktif; autoIndex_exact_size off; autoIndex_localtime on;  Lokasi ~ \.php $  # tes untuk skrip yang tidak ada atau melempar kesalahan 404 tanpa baris ini, nginx akan secara membabi buta mengirim permintaan apa pun yang berakhir .PHP ke PHP-FPM TRY_FILES $ URI = 404; termasuk/etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; 
Buat host virtual SSL nginx

9. Sekarang saatnya membuat dua skrip di jalur sistem yang dapat dieksekusi ($ Path Shell Variable), yang bertindak sebagai perintah untuk mengaktifkan atau menonaktifkan host virtual nginx.

Buat skrip bash pertama bernama n2ensite Itu akan memungkinkan file konfigurasi virtual host dengan membuat tautan simbolik antara host yang ditentukan dari situs-tersedia ke Situs-Enabled.

# nano/usr/local/bin/n2eNiste

Tambahkan konten file berikut.

#!/bin/bash jika uji -d/etc/nginx/situs -tersedia && test -d/etc/nginx/situs -diabled; lalu echo "----------------------------------------------- "Lain mkdir/etc/nginx/situs-tersedia mkdir/etc/nginx/situs-berkemampuan fi tersedia =/etc/nginx/situs-tersedia/$ 1.conf enabled =/etc/nginx/situs-diable/situs = "ls/etc/nginx/situs-tersedia/" jika ["$#" != "1"]; Kemudian echo "Gunakan skrip: n2ensite virtual_site" echo -e "\ navailable virtual hosts: \ n $ situs" keluar 0 lain jika tes -e $ tersedia; lalu sudo ln -s $ avail $ enabled else echo -e "$ avail virtual host tidak ada! Harap buat satu!\ n $ situs "Keluar 0 fi jika tes -e $ diaktifkan/$ 1.conf; lalu gema "sukses!! Sekarang restart Nginx Server: sudo /etc /init.d/ nginx restart "else echo -e" virtual host $ avail tidak ada!\ nPlease Lihat host virtual yang tersedia: \ n $ situs "Keluar 0 fi fi
Buat virtual host mengaktifkan skrip

10. Kemudian buat skrip kedua yang disebut n2dissite, yang akan menghapus host virtual aktif tertentu dari Situs-Enabled Jalur nginx dengan konten berikut.

# nano/usr/lokal/bin/n2dissite

Tambahkan konten berikut.

#!/bin/bash avail =/etc/nginx/Situs-Enabled/$ 1.conf enabled =/etc/nginx/situs yang diaktifkan situs = "ls/etc/nginx/situs-tersedia/" jika ["$#" != "1"]; Kemudian echo "Gunakan skrip: n2dissite virtual_site" echo -e "\ navailable virtual hosts: \ n $ situs" keluar 0 lain jika tes -e $ tersedia; Maka sudo rm $ avele lain echo -e "$ avail virtual host tidak ada! Keluar!"Keluar 0 fi jika tes -e $ diaktifkan/$ 1.conf; lalu gema "kesalahan!! Tidak dapat menghapus $ tersedia host virtual!Keberhasilan "lain echo -e"! $ tersedia telah dihapus!\ nPlease restart nginx: sudo /etc /init.D/nginx restart "Keluar 0 fi fi
Buat virtual host menonaktifkan skrip

11. Setelah selesai mengedit skrip bash, tambahkan izin eksekusi dan aktifkan host virtual localhost - gunakan nama file konfigurasi virtual host tanpa .conf Ekstensi, lalu mulai ulang layanan Nginx dan PHP-FPM untuk menerapkan perubahan.

# CHMOD +X/USR/LOCAL/BIN/N2DISSITE # CHMOD +X/USR/LOCAL/BIN/N2ENSITE # N2ENSITE LOCALHOST # N2ENSITE LOCALHOST-SSL # LAYANAN NGINX RESTART # Service Php-FPM restart
Restart nginx dan php-fpm

12. Untuk menguji konfigurasi, buat file info PHP di jalur root default localhost untuk file web (/var/www/localhost/htdocs) dan arahkan kembali browser Anda https: // localhost/info.php atau http: // localhost/info.php.

echo ""/var/www/localhost/htdocs/info.php
Verifikasi konfigurasi PHP

Menggunakan localhost virtual hosts file konfigurasi sebagai templat dan nginx n2enmod Dan n2dismod Anda sekarang dapat dengan mudah menambahkan sebanyak mungkin situs web, tetapi memastikan bahwa Anda memiliki pointer DNS yang valid untuk server web yang menghadap internet atau menggunakan entri secara lokal pada file host sistem.

Langkah 4: Instal MySQL/MariADB + PHPMyAdmin

Untuk menginstal MySQL Database dan PHPMyAdmin Web Interface untuk MySQL Gunakan prosedur yang sama yang disajikan pada penginstalan lampu di Gentoo.

13. Sebagai imbalan jika Anda ingin menggunakan mariadb, penggantian drop-in untuk mysql, gunakan perintah berikut untuk mendapatkan Gunakan bendera dan instal.

# emerge -pv mariadb # emerge --ask mariadb
Instal Basis Data MariaDB

Jika Anda mendapatkan konflik paket dengan MySQL, tambahkan baris berikut ke Portage kemasan.menerima.kata kunci.

# echo “= dev-db/mariadb-5.5.37-R1 ~ AMD64 ">>/etc/portage/paket.menerima.Kata kunci # echo “= virtual/mysql-5.5 ~ AMD64 ”>>/etc/portage/paket.menerima.Kata Kunci # Emerge -Task Mariadb

14. Setelah database MySQL diinstal Layanan Mulai dan mengamankannya menggunakannya mysql_secure_installation (Ubah kata sandi root, nonaktifkan login root di luar localhost, hapus database pengguna/tes anonim).

# layanan mysql start # mysql_secure_installation

15. Masukkan database MySQL menggunakan, mysql -u root -p perintah untuk menguji fungsinya dan meninggalkannya KELUAR memerintah.

# mysql -u root -p mariadb> show basis data; Mariadb> keluar;
Verifikasi Konektivitas MySQL

16. Jika Anda tidak terlalu baik dengan baris perintah mysql. Instal PHPMyAdmin Web Frontend dengan mengeksekusi perintah berikut.

# emerge -pv dev-db/phpmyadmin # echo "dev-db/phpmyadmin setup vhost" >>/etc/portage/package.Gunakan # emerge-masukkan dev-db/phpmyadmin
Pasang phpMyAdmin

17. Setelah phpmyadmin selesai menginstal, buat file konfigurasi berdasarkan file konfigurasi sampel, ubah blowfish_secret Passphrase dengan string acak, lalu buat tautan simbolik dari /usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ ke host virtual jalur root root Anda ingin mengakses antarmuka web phpmyadmin.

# CD/USR/SHARE/WEBAPPS/PHPMYADMIN/4.2.2/ htdocs/ # cp config.Sampel.inc.konfigurasi php.inc.php # nano config.inc.php
Konfigurasikan phpMyAdmin
# ln -s/usr/share/webapps/phpMyadmin/4.2.2/htdocs//var/www/localhost/htdocs/phpMyadmin
Buat tautan simbolik phpmyadmin

18. Untuk mengakses database MySQL melalui antarmuka web phpmyadmin, buka browser dan gunakan alamat URL berikut https: // localhost/phpmyadmin.

Verifikasi login phpMyadmin

19. Langkah terakhir adalah mengaktifkan sistem layanan di seluruh sistem, untuk secara otomatis dimulai setelah reboot.

# RC-update Tambahkan Nginx Default # RC-update Tambahkan php-fpm default # rc-update tambahkan default mysql
Aktifkan sistem layanan luas

Sekarang kami memiliki pengaturan lingkungan minimal untuk hosting web, dan jika Anda hanya menggunakan HTML, JavaScript dan PHP Dynamic yang dihasilkan halaman dan Anda tidak memerlukan situs web SSL, konfigurasi di atas harus memuaskan bagi Anda.