วิธีการติดตั้ง Nginx, MySQL และ PHP (FEMP) Stack บน FreeBSD 12.0

สแต็ก FEMP ซึ่งเปรียบได้กับสแต็ค LEMP บน Linux คือชุดของซอฟต์แวร์โอเพนซอร์ซซึ่งโดยทั่วไปแล้วจะติดตั้งร่วมกันเพื่อให้เซิร์ฟเวอร์ FreeBSD สามารถโฮสต์เว็บไซต์แบบไดนามิกและเว็บแอปพลิเคชัน FEMP เป็นตัวย่อที่ย่อมาจาก FreeBSD, Nginx, MySQL และ PHP

ในคู่มือนี้เราจะปรับใช้องค์ประกอบของสแต็ก FEMP ในอินสแตนซ์ของ FreeBSD 12.0 Vultr โดยใช้pkgตัวจัดการแพ็คเกจ FreeBSD

ความต้องการ

ก่อนที่คุณจะเริ่มคู่มือนี้คุณจะต้องมีสิ่งต่อไปนี้:

  • FreeBSD 12.0 VPS
  • ผู้ใช้ที่มีสิทธิ์ใช้งานรูทหรือsudoผู้ใช้ทำการเปลี่ยนแปลงการกำหนดค่า
  • แนะนำให้ใช้ความคุ้นเคยพื้นฐานกับระบบ FreeBSD และอินเตอร์เฟสบรรทัดคำสั่ง

ก่อนที่จะเริ่ม

ตรวจสอบเวอร์ชั่น FreeBSD

uname -ro
# FreeBSD 12.0-RELEASE-p6

ตรวจสอบให้แน่ใจว่าระบบ FreeBSD ของคุณทันสมัย

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

ติดตั้งแพ็คเกจที่จำเป็น

pkg install -y sudo vim bash curl

สร้างบัญชีผู้ใช้ใหม่ด้วยชื่อผู้ใช้ที่คุณต้องการ 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!

รันvisudoคำสั่งและยกเลิกหมายเหตุ%wheel ALL=(ALL) ALLบรรทัดเพื่ออนุญาตให้สมาชิกของwheelกลุ่มเรียกใช้งานคำสั่งใด ๆ

visudo

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

ตอนนี้เปลี่ยนเป็นผู้ใช้ที่คุณสร้างใหม่ด้วยsu:

su - johndoe

หมายเหตุ: แทนที่johndoeด้วยชื่อผู้ใช้ของคุณ

ตั้งค่าเขตเวลา:

sudo tzsetup

การติดตั้ง mginine Nginx

คุณสามารถติดตั้ง Nginx ใช้จัดการแพคเกจของ pkgFreeBSD, ผู้จัดการแพ็คเกจช่วยให้คุณสามารถติดตั้งซอฟต์แวร์ส่วนใหญ่ได้อย่างง่ายดายจากที่เก็บซึ่งดูแลโดย FreeBSD คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้งานpkgที่นี่

ในการติดตั้ง mginine ล่าสุด Nginx ให้ใช้คำสั่งต่อไปนี้:

sudo pkg install -y nginx-devel

ตรวจสอบเวอร์ชั่น:

nginx -v
# nginx version: nginx/1.17.1

คำสั่งนี้จะติดตั้งเวอร์ชัน mainline ล่าสุดซึ่งสามารถใช้ได้อย่างน่าเชื่อถือบนเซิร์ฟเวอร์ที่ใช้งานจริง หากคุณต้องการติดตั้งรุ่นล่าสุดที่มีเสถียรภาพเพียงใช้แพคเกจแทนnginxnginx-devel

ตอนนี้เปิดใช้งานและเริ่ม Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

ในการตรวจสอบว่า Nginx เริ่มต้นแล้วคุณสามารถเรียกใช้คำสั่งต่อไปนี้:

sudo service nginx status

ดังนั้นคุณจะเห็นสิ่งที่คล้ายกับที่แสดงต่อไปนี้:

# Output
nginx is running as pid 17607.

คุณสามารถตรวจสอบว่า Nginx ได้รับการติดตั้งและทำงานโดยไม่มีข้อผิดพลาดโดยไปที่ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณในเว็บเบราว์เซอร์ของคุณ your_server_IPนำทางไปยัง คุณจะเห็นค่าเริ่มต้น "ยินดีต้อนรับสู่ nginx!" หน้า.

ติดตั้ง MySQL

อีกครั้งคุณสามารถใช้pkgเพื่อรับและติดตั้งซอฟต์แวร์ของคุณ

ติดตั้ง MySQL โดยใช้pkg:

sudo pkg install -y mysql80-client mysql80-server

ตรวจสอบเวอร์ชั่น:

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

ตอนนี้เปิดใช้งานและเริ่ม MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

เพื่อตรวจสอบว่า MySQL เริ่มทำงานแล้วคุณสามารถเรียกใช้คำสั่งต่อไปนี้:

sudo service mysql-server status

คุณจะดูสิ่งที่คล้ายกับที่แสดงต่อไปนี้:

# Output
mysql is running as pid 19066.

ตามแนวทางปฏิบัติที่ดีคุณควรเรียกใช้mysql_secure_installationสคริปต์ความปลอดภัยที่จะลบค่าเริ่มต้นที่ไม่ปลอดภัยและ จำกัด การเข้าถึงระบบฐานข้อมูลของคุณเล็กน้อย

sudo mysql_secure_installation

คุณจะถูกขอให้ตั้งรหัสผ่านตามด้วยคำถามอื่น ๆ ป้อนรหัสผ่านที่คาดเดายากจากนั้นกดคำถามที่เหลือENTERเพื่อเลือกค่าเริ่มต้น

การติดตั้ง PHP 7.3

หากต้องการติดตั้ง PHP 7.3ด้วยpkgให้เรียกใช้คำสั่งนี้:

sudo pkg install -y php73

ตรวจสอบเวอร์ชั่น

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

ซอฟท์เชื่อมโยงไปยังphp.ini-productionphp.ini

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

ตอนนี้เปิดใช้งานและเริ่ม PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

เพื่อตรวจสอบว่า PHP-FPM เริ่มต้นแล้วคุณสามารถเรียกใช้คำสั่งต่อไปนี้:

sudo service php-fpm status

ดังนั้นคุณจะเห็นสิ่งที่คล้ายกัน:

# Output
php_fpm is running as pid 23005.

การติดตั้งโมดูล PHP (ไม่จำเป็น)

เพื่อปรับปรุงการทำงานของ PHP คุณสามารถเลือกติดตั้งโมดูลเพิ่มเติมบางส่วนได้

หากต้องการดูในปัจจุบันรวบรวมในโมดูล PHP คุณสามารถเรียกใช้นี้:

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

# [Zend Modules]

ในการค้นหาโมดูล PHP ที่มีอยู่คุณสามารถใช้คำสั่งนี้:

pkg search ^php73-*

ผลลัพธ์ส่วนใหญ่จะเป็นโมดูล PHP 7.3 ที่คุณสามารถติดตั้งได้:

# 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
# . . .

หากหลังจากทำการวิจัยคุณตัดสินใจว่าคุณต้องติดตั้งแพคเกจคุณสามารถทำได้โดยใช้pkg installคำสั่ง เว็บแอปพลิเคชั่น PHP ส่วนใหญ่จะต้องการโมดูลเพิ่มเติมดังนั้นจึงเป็นการดีที่จะรู้วิธีค้นหาพวกมัน

การกำหนดค่า Nginx เพื่อใช้โมดูล PHP

ก่อนที่จะใช้ PHP คุณต้องกำหนดค่าให้ทำงานกับ Nginx

เรียกใช้sudo vim /usr/local/etc/nginx/test.confและเติมไฟล์ด้วยเนื้อหาต่อไปนี้:

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;
  }

}

บันทึกไฟล์และออกด้วย:+ W+Q

ตอนนี้เราต้องรวมtest.confไว้ในnginx.confไฟล์หลัก แฟ้มการกำหนดค่าหลักสำหรับ Nginx อาศัยอยู่ภายใต้การเป็น/usr/local/etc/nginxnginx.conf

รันsudo vim /usr/local/etc/nginx/nginx.confเพื่อเปิดไฟล์คอนฟิกูเรชันหลักใน Vim และเพิ่มบรรทัดต่อไปนี้เข้ากับhttp {}บล็อก

include test.conf;

ทดสอบการกำหนดค่า Nginx:

sudo nginx -t

เนื่องจากคุณได้ทำการเปลี่ยนแปลงการกำหนดค่าใน Nginx คุณจะต้องโหลดบริการใหม่เพื่อนำไปใช้ มิฉะนั้น Nginx จะยังคงทำงานกับการกำหนดค่าก่อนหน้า

sudo service nginx reload

ทดสอบการประมวลผล PHP

เพื่อทดสอบว่าระบบของคุณได้รับการกำหนดค่าอย่างถูกต้องสำหรับ PHP คุณสามารถสร้างสคริปต์ PHP ขั้นพื้นฐานได้ คุณจะเรียกสคริปต์info.phpนี้ โดยค่าเริ่มต้นมีการตั้งค่าroot /usr/local/www/nginx-distคุณสามารถสร้างinfo.phpไฟล์ภายใต้ตำแหน่งนั้น:

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

เพิ่มรหัสนี้ลงในไฟล์:

<?php phpinfo(); ?>

นำทางไปยังhttp://your_server_IP/ìnfo.phpและคุณจะเห็นหน้าต่อไปนี้:

วิธีการติดตั้ง Nginx, MySQL และ PHP (FEMP) Stack บน FreeBSD 12.0

หลังจากการติดตั้งและตั้งค่าคุณควรลบinfo.phpไฟล์เพื่อหลีกเลี่ยงการเปิดเผยข้อมูลเกี่ยวกับเซิร์ฟเวอร์ต่อสาธารณะ

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

ข้อสรุป

ขอแสดงความยินดีคุณได้ติดตั้งสแต็ก FEMP บน FreeBSD 12.0 VPS ของคุณสำเร็จแล้ว ตอนนี้คุณมีหลายทางเลือกสำหรับสิ่งที่ต้องทำต่อไป คุณได้ติดตั้งแพลตฟอร์มที่จะช่วยให้คุณสามารถติดตั้งเว็บไซต์และซอฟต์แวร์เว็บส่วนใหญ่ได้

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true