نحوه نصب پشته های Nginx، MySQL و PHP (FEMP) در FreeBSD 12.0

پشته FEMP ، که با پشته LEMP در لینوکس قابل مقایسه است ، مجموعه ای از نرم افزارهای منبع باز است که به طور معمول در کنار هم نصب می شوند تا یک سرور FreeBSD بتواند میزبان وب سایت های پویا و برنامه های وب باشد. FEMP مخفف مخفف FreeBSD ، Nginx ، MySQL و PHP است.

در این راهنما ، عناصر Stack FEMP را با استفاده pkgاز مدیر بسته FreeBSD در نمونه FreeBSD 12.0 Vultr مستقر خواهیم کرد .

الزامات

قبل از شروع این راهنما به موارد زیر نیاز دارید:

  • 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

نصب خط اصلی Nginx

شما می توانید Nginx را با استفاده از مدیر بسته FreeBSD نصب کنید pkg. یک مدیر بسته به شما امکان می دهد اکثر نرم افزارها را با زحمت از مخزن نگهداری شده توسط FreeBSD نصب کنید. می توانید اطلاعات بیشتری در مورد نحوه استفاده pkgدر اینجا کسب کنید .

برای نصب جدیدترین خط اصلی Nginx ، دستور زیر را صادر کنید:

sudo pkg install -y nginx-devel

نسخه را بررسی کنید:

nginx -v
# nginx version: nginx/1.17.1

این دستور آخرین نسخه اصلی را نصب می کند که با اطمینان قابل استفاده در سرور تولید قابل استفاده است. اگر می خواهید آخرین نسخه پایدار را نصب کنید ، فقط nginxبه جای آن از بسته استفاده کنید nginx-devel.

اکنون Nginx را فعال کرده و شروع کنید:

sudo sysrc nginx_enable=yes
sudo service nginx start

برای بررسی اینکه Nginx شروع کرده است ، می توانید دستور زیر را اجرا کنید:

sudo service nginx status

در نتیجه ، چیزی شبیه به موارد زیر را مشاهده خواهید کرد:

# Output
nginx is running as pid 17607.

با مراجعه به آدرس IP عمومی سرور در مرورگر وب خود می توانید تأیید کنید که Nginx نصب شده است و بدون خطا کار می کند. هدایت به your_server_IP. پیش فرض "Welcome to 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-productionبه php.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/nginxبه عنوان nginx.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) در FreeBSD 12.0

پس از نصب و راه اندازی ، باید info.phpفایل را حذف کنید تا از افشای اطلاعات مربوط به سرور به عموم مردم جلوگیری شود.

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

نتیجه

تبریک می گویم ، شما یک موفقیت پشته FEMP را در FreeBSD 12.0 VPS خود نصب کردید. اکنون شما گزینه های مختلفی برای انتخاب بعدی دارید. شما سکویی نصب کرده اید که به شما امکان می دهد انواع وب سایت ها و نرم افزارهای وب را در بالای آن نصب کنید.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد