Cara Memasang Tumpukan Nginx, MySQL dan PHP (FEMP) di FreeBSD 12.0

Tumpuan FEMP, yang setanding dengan timbunan LEMP di Linux, adalah koleksi perisian sumber terbuka yang biasanya dipasang bersama untuk membolehkan pelayan FreeBSD menjadi tuan rumah laman web dinamik dan aplikasi web. FEMP adalah singkatan yang bermaksud FreeBSD, Nginx, MySQL, dan PHP.

Dalam panduan ini, kami akan menggunakan elemen stack FEMP menggunakan contoh FreeBSD 12.0 Vultr pkg, pengurus pakej FreeBSD.

Keperluan

Sebelum anda memulakan panduan ini, anda memerlukan yang berikut:

  • A FreeBSD 12.0 VPS.
  • Seorang pengguna dengan keistimewaan root atau sudopengguna untuk membuat perubahan konfigurasi.
  • Disarankan untuk memahami asas sistem FreeBSD dan antara muka baris perintah.

Sebelum awak bermula

Semak versi FreeBSD.

uname -ro
# FreeBSD 12.0-RELEASE-p6

Pastikan sistem FreeBSD anda terkini.

freebsd-update fetch install
pkg update && pkg upgrade -y

Pasang pakej yang diperlukan.

pkg install -y sudo vim bash curl

Buat akaun pengguna baru dengan nama pengguna pilihan anda. Kami menggunakan johndoe.

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Jalankan visudoarahan dan unmentasikan %wheel ALL=(ALL) ALLbaris, untuk membolehkan ahli wheelkumpulan melaksanakan sebarang arahan.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Sekarang, beralih kepada pengguna yang baru anda buat dengan su:

su - johndoe

CATATAN: Ganti johndoedengan nama pengguna anda.

Sediakan zon waktu:

sudo tzsetup

Memasang mainline Nginx

Anda boleh memasang Nginx menggunakan pengurus pakej FreeBSD ini, pkg. Pengurus pakej membolehkan anda memasang kebanyakan perisian dengan mudah dari repositori yang dikendalikan oleh FreeBSD. Anda boleh mengetahui lebih lanjut mengenai cara menggunakannya pkgdi sini .

Untuk memasang Nginx utama utama, keluarkan arahan berikut:

sudo pkg install -y nginx-devel

Semak versi:

nginx -v
# nginx version: nginx/1.17.1

Perintah ini akan memasang versi utama yang terkini, yang dapat digunakan secara reliably di server pengeluaran. Jika anda mahu memasang pelepas stabil terkini, gunakan nginxpakej dan bukannya nginx-devel.

Sekarang, aktifkan dan mulailah Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Untuk memastikan bahawa Nginx telah bermula, anda boleh menjalankan perintah berikut:

sudo service nginx status

Hasilnya, anda akan melihat sesuatu yang serupa dengan yang berikut:

# Output
nginx is running as pid 17607.

Anda boleh mengesahkan bahawa Nginx telah dipasang dan berfungsi tanpa ralat dengan melawat alamat IP awam pelayan anda dalam penyemak imbas web anda. Navigasi ke your_server_IP. Anda akan melihat lalai "Selamat datang ke nginx!" halaman.

Memasang MySQL

Sekali lagi, anda dapat memanfaatkan pkguntuk mendapatkan dan memasang perisian anda.

Pasang MySQL menggunakan pkg:

sudo pkg install -y mysql80-client mysql80-server

Semak versi:

mysql --version
# mysql  Ver 8.0.16 for FreeBSD12.0 on amd64 (Source distribution)

Sekarang, aktifkan dan mulakan MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Untuk memastikan bahawa MySQL telah dimulakan anda boleh menjalankan arahan berikut:

sudo service mysql-server status

Anda akan melihat sesuatu yang serupa dengan yang berikut:

# Output
mysql is running as pid 19066.

Sebagai amalan yang baik, anda harus menjalankan mysql_secure_installationskrip keselamatan yang akan mengalih keluar beberapa lalai tidak selamat dan sedikit menghadkan akses ke sistem pangkalan data anda.

sudo mysql_secure_installation

Anda akan diminta untuk menetapkan kata laluan, diikuti dengan beberapa soalan lain. Masukkan kata laluan yang kuat dan kemudian untuk selebihnya soalan tekan ENTERuntuk memilih lalai.

Memasang PHP 7.3

Untuk memasang PHP 7.3dengan pkg, jalankan arahan ini:

sudo pkg install -y php73

Semak versi.

php --version
# PHP 7.3.7 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

Pautan lembut php.ini-productionke php.ini.

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Sekarang, aktifkan dan mulakan PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Untuk memastikan bahawa PHP-FPM telah dimulakan anda boleh menjalankan arahan berikut:

sudo service php-fpm status

Hasilnya, anda akan melihat sesuatu yang serupa:

# Output
php_fpm is running as pid 23005.

Memasang Modul PHP (Pilihan)

Untuk meningkatkan fungsi PHP, anda boleh memasang beberapa modul tambahan secara pilihan.

Untuk melihat sekarang yang disusun dalam modul PHP, anda boleh menjalankan ini:

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard

# [Zend Modules]

Untuk mencari modul PHP yang tersedia, anda boleh menggunakan arahan ini:

pkg search ^php73-*

Hasilnya kebanyakannya adalah modul PHP 7.3 yang boleh anda pasangkan:

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

Sekiranya, setelah meneliti, anda memutuskan bahawa anda perlu memasang pakej, anda boleh melakukannya dengan menggunakan pkg installperintah. Sebilangan besar aplikasi web PHP memerlukan modul tambahan, jadi ada baiknya mengetahui cara mencarinya.

Mengkonfigurasi Nginx untuk menggunakan modul PHP

Sebelum menggunakan PHP, anda mesti mengkonfigurasinya agar berfungsi dengan Nginx.

Jalankan sudo vim /usr/local/etc/nginx/test.confdan isi fail dengan kandungan berikut:

server {

  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}

Simpan fail dan keluar dengan :+ W+Q

Sekarang kita perlu memasukkan test.confdalam nginx.conffail utama . Fail konfigurasi utama Nginx hidup di bawah /usr/local/etc/nginxsebagai nginx.conf.

Jalankan sudo vim /usr/local/etc/nginx/nginx.confuntuk membuka fail konfigurasi utama di Vim dan tambahkan baris berikut ke http {}blok.

include test.conf;

Uji konfigurasi Nginx:

sudo nginx -t

Kerana anda telah membuat perubahan konfigurasi di Nginx, anda harus memuatkan semula perkhidmatan untuk yang akan digunakan. Jika tidak, Nginx akan tetap berfungsi dengan konfigurasi sebelumnya.

sudo service nginx reload

Menguji pemprosesan PHP

Untuk menguji bahawa sistem anda dikonfigurasi dengan betul untuk PHP, anda boleh membuat skrip PHP yang sangat asas. Anda akan memanggil skrip ini info.php. Secara lalai, rootset ditetapkan ke /usr/local/www/nginx-dist. Anda boleh membuat info.phpfail di bawah lokasi tersebut:

sudo vim /usr/local/www/nginx-dist/info.php

Tambahkan kod ini ke fail itu:

<?php phpinfo(); ?>

Navigasi ke http://your_server_IP/ìnfo.phpdan anda akan melihat halaman berikut:

Cara Memasang Tumpukan Nginx, MySQL dan PHP (FEMP) di FreeBSD 12.0

Selepas pemasangan dan persediaan anda perlu mengeluarkan info.phpfail untuk mengelakkan pendedahan maklumat mengenai pelayan kepada orang ramai.

sudo rm /usr/local/www/nginx-dist/info.php

Kesimpulannya

Tahniah, anda berjaya memasang timbunan FEMP pada FreeBSD 12.0 VPS anda. Kini anda mempunyai banyak pilihan untuk apa yang perlu dilakukan seterusnya. Anda telah memasang platform yang membolehkan anda memasang kebanyakan jenis laman web dan perisian web di atasnya.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut