نحوه نصب انجین ایکس، MySQL و پی اچ پی (LEMP) بر روی سرور مجازی لینوکس
۱۲ بهمن ۱۴۰۳
مقدمه
استک LEMP، مجموعهای از نرمافزارها است که برای ارائه صفحات وب پویا و برنامههای تحت وب نوشتهشده با PHP، استفاده میشود. LEMP، نام مخففی است که به یک سیستمعامل Linux (لینوکس) همراه با یک وبسرور Nginx (انجینایکس – Engine-X) اشاره دارد. دادههای بکاند در پایگاه داده MySQL (مایاسکیوال) ذخیره میشوند و پردازشها توسط PHP (پیاچپی) مدیریت میشوند. در این آموزش، یاد میگیریم که چطور LEMP را بر روی سیستمعامل Ubuntu، نصب و استفاده کنیم.
پیشنیازها
برای تکمیل این آموزش، باید یک سرور مجازی Ubuntu با یک کاربر غیر روت (non-root) دارای دسترسی sudo و یک فایروال (Firewall) فعال، داشته باشید. برای تنظیم این موارد، میتوانید راهنمای نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu را دنبال کنید. برای درک بهتر آموزش هم، در صورتی که با سرور مجازی و VPS آشنایی کلی ندارید، توصیه میشود در ابتدا مقالههای زیر را مطالعه کنید:
- سرور مجازی یا VPS چیست؟ + معرفی انواع سرورهای مجازی و کاربرد آنها
- SSH چیست؟ + نحوه استفاده از SSH برای اتصال به سرور مجازی (VPS)
در ادامه بخوانید:
- مرحله اول: نحوه نصب وبسرور Nginx بر روی سرور مجازی Ubuntu
- مرحله دوم: نحوه نصب دیتابیس MySQL بر روی اوبونتو
- مرحله سوم: نحوه نصب PHP بر روی سرور مجازی
- مرحله چهارم: نحوه پیکربندی Nginx برای پردازش PHP
- مرحله پنجم: نحوه تست و آزمایش PHP با NginX
- مرحله ششم: نحوه آزمایش اتصال به دیتابیس از طریق پیاچپی در سرور مجازی
مرحله اول: نحوه نصب وبسرور Nginx بر روی سرور مجازی Ubuntu
برای نمایش صفحات وب به بازدیدکنندگان سایت، از Nginx (انجینایکس) که یک وبسرور قدرتمند و با عملکرد بالا است، استفاده خواهیم کرد. برای دریافت این نرمافزار از پکیج منیجر APT استفاده میکنیم. اگر، اولین باری است که قصد دارید در نشست (session) ترمینال خود، از apt
استفاده کنید، ابتدا باید فهرست پکیجهای سرور مجازی خود را بهروزرسانی کنید:
sudo apt update
سپس، برای نصب Nginx، دستور زیر را اجرا کنید:
sudo apt install nginx -y
پس از اتمام نصب، وبسرور Nginx فعال شده و روی سرور Ubuntu شما اجرا خواهد شد.
اگر طبق راهنمای تنظیم اولیه سرور، فایروال UFW را فعال کرده باشید، اکنون باید اتصالات به Nginx را در سرور خود، مجاز کنید. هنگام نصب، Nginx چندین پروفایل UFW را ثبت میکند. برای مشاهده پروفایلهای موجود، این دستور را اجرا کنید:
sudo ufw app list
خروجی:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
بهتر است که محدودترین پروفایلی که ترافیک مورد نیاز شما را مجاز میکند، فعال کنید. از آنجا که در این راهنما، SSL (اساسال) را برای سرور، پیکربندی نخواهیم کرد، فقط باید ترافیک معمولی HTTP
روی پورت 80
را مجاز کنید. برای انجام این کار، دستور زیر را اجرا کنید:
sudo ufw allow 'Nginx HTTP'
برای اطمینان از اعمال تغییرات، وضعیت UFW را بررسی کنید:
sudo ufw status
خروجی، باید مشابه زیر باشد:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
با اضافه شدن این قانون جدید به فایروال، اکنون میتوانید بررسی کنید که آیا سرور شما بهدرستی اجرا میشود یا نه. برای این کار، نام دامنه (Domain Name) یا آدرس IP عمومی سرور خود را در مرورگر وارد کنید. اگر که از قبل، دامنهای روی سرور تنظیم نکردهاید و آدرس IP عمومی را هم نمیدانید، میتوانید یکی از دستورات زیر را اجرا کنید:
ip addr show
یا
hostname -I
این دستورات، چندین آدرس IP را نمایش میدهند که میتوانید هر یک را در مرورگر خود آزمایش کنید. همچنین میتوانید بررسی کنید که کدام آدرس IP از سایر نقاط اینترنت، قابل دسترسی است:
curl -4 icanhazip.com
آدرسی که دریافت میکنید را در مرورگر خود وارد کنید تا به صفحه پیشفرض Nginx هدایت شوید:
http://server_domain_or_IP
اگر صفحه زیر را مشاهده کردید، به این معنی است که Nginx با موفقیت نصب شده و ترافیک HTTP برای سرور شما فعال شده است:
مرحله دوم: نحوه نصب دیتابیس MySQL بر روی اوبونتو
اکنون که وبسرور شما اجرا شده است، باید یک دیتابیس را برای ذخیره و مدیریت دادههای سایت خود، بر روی سرور مجازی، نصب کنید. MySQL (مایاسکیوال) یکی از سیستمهای محبوب مدیریت پایگاه داده (Database Management System – DBMS) در محیط PHP است. برای دریافت و نصب این نرمافزار، مجدداً از پکیج منیجر APT، استفاده کنید:
sudo apt install mysql-server -y
پس از اتمام نصب، توصیه میشود که یک اسکریپت امنیتی (از قبل نصبشده با MySQL) را اجرا کنید. این اسکریپت، برخی از تنظیمات ناامن پیشفرض را حذف کرده و امنیت سیستم دیتابیس شما را افزایش میدهد. برای اجرای این اسکریپت، دستور زیر را اجرا کنید:
sudo mysql_secure_installation
پس از اجرای اسکریپت فوق، از شما پرسیده میشود که آیا میخواهید پلاگین VALIDATE PASSWORD
را فعال کنید یا خیر.
نکته: فعالسازی این پلاگین، یک تصمیم امنیتی است. در صورت فعال بودن، MySQL رمزعبوری که با معیارهای مشخصشده مطابقت ندارد را رد میکند. اگرچه میتوان این اعتبارسنجی را غیرفعال کرد، اما همیشه باید از رمزهای عبور قوی و منحصربهفرد برای اطلاعات کاربری دیتابیس خود، استفاده کنید.
برای فعالسازی، Y
را فشار دهید؛ اگر هم که قصد فعالسازی آن را ندارید، کلید دیگری را بزنید:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:
اگر Y
را انتخاب کردید، اکنون باید سطح سختگیری رمز عبور را مشخص کنید؛ در نظر داشته باشید که اگر سطح 2
(بالاترین سطح) را انتخاب کنید؛ وقتی که تلاش میکنید رمزعبوری را تنظیم کنید که شامل اعداد، حروف بزرگ و کوچک انگلیسی و کاراکترهای خاص نیست، با ارور مواجه خواهید شد:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
پس از انتخاب سطح اعتبارسنجی، از شما خواسته میشود یک رمز عبور برای کاربر root دیتابیس تنظیم کنید. توجه داشته باشید که کاربر root پایگاه داده، با کاربر root سرور مجازی، متفاوت است و دارای دسترسی مدیریتی کامل به دیتابیس است. حتی اگر روش پیشفرض احراز هویت MySQL نیازی به رمز عبور نداشته باشد، تعیین یک رمز قوی توصیه میشود.
اگر اعتبارسنجی رمز عبور را فعال کرده باشید، قدرت رمز انتخابی شما نمایش داده میشود و از شما پرسیده میشود که آیا میخواهید از این رمز استفاده کنید یا خیر:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
برای سایر سؤالات، Y
را فشار داده و ENTER
بزنید. این کار باعث حذف کاربران ناشناس، حذف دیتابیس آزمایشی، غیرفعالسازی لاگین از ریموت برای کاربر root و بارگذاری تغییرات جدید (به سرعت)، میشود.
پس از تکمیل مراحل بالا، بررسی کنید که آیا میتوانید به کنسول MySQL متصل شوید یا خیر:
sudo mysql
دستور فوق، شما را به عنوان کاربر root دیتابیس، به سرور MySQL متصل میکند. اگر همه چیز درست باشد، باید خروجی مشابه زیر را دریافت کنید:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
برای خروج از کنسول MySQL، دستور زیر را اجرا کنید:
exit
ممکن است متوجه شده باشید که هنگام ورود به MySQL، نیازی به وارد کردن رمز عبور root نبوده است. دلیل این موضوع این است که در Ubuntu، روش احراز هویت پیشفرض برای کاربر root روش auth_socket و نه یک روش مبتنی بر رمز عبور است.
این روش در ابتدا ممکن است یک نگرانی به نظر برسد، اما در واقع امنیت سرور دیتابیس را افزایش میدهد، زیرا تنها کاربران سیستم با دسترسی sudo هستند که میتوانند از طریق کنسول یا یک برنامه با همان سطح دسترسی، به عنوان کاربر root، وارد دیتابیس شوند.
برای افزایش امنیت، توصیه میشود برای هر پایگاه داده، یک حساب کاربری جداگانه با مجوزهای محدودتر ایجاد کنید، بهویژه اگر قصد دارید چندین پایگاه داده را روی سرور خود مدیریت کنید.
نکته: برخی از نسخههای قدیمی کتابخانه MySQL PHP، مثل mysqlnd
، از روش احراز هویت پیشفرض MySQL 8، مثل caching_sha2_authentication
، پشتیبانی نمیکنند. بنابراین، هنگام ایجاد کاربران پایگاه داده برای برنامههای PHP روی MySQL 8، ممکن است نیاز باشد که از روش mysql_native_password
استفاده کنید. در مرحله ششم نحوه انجام این کار را توضیح خواهیم داد.
سرور MySQL شما اکنون با موفقیت نصب و محافظت شده است. در مرحله بعد، PHP را نصب میکنیم که آخرین مؤلفه در LEMP است.
مرحله سوم: نحوه نصب PHP بر روی سرور مجازی
اکنون که Nginx برای ارائه محتوای وب و MySQL برای ذخیره و مدیریت دادهها نصب شدهاند، باید PHP را نصب کنید تا کدها را پردازش کرده و محتوای داینامیک را برای وبسرور تولید کند.
در Apache، مفسر PHP، به صورت داخلی، در هر درخواست، تعبیه شده است. اما Nginx نیاز به یک برنامه خارجی دارد تا پردازش PHP را انجام دهد و به عنوان یک پل ارتباطی بین مفسر PHP و وبسرور عمل کند. این معماری معمولاً کارایی بالاتری را در سایتهای PHP ارائه میدهد اما نیازمند پیکربندی اضافی است.
برای این کار، باید php8.1-fpm
را نصب کنید. FPM (FastCGI Process Manager) درخواستهای Nginx را پردازش خواهد کرد. همچنین، به php-mysql
نیاز دارید، که یک ماژول PHP است و امکان ارتباط PHP با پایگاه دادههای MySQL را فراهم میکند. پکیجهای اصلی PHP نیز به عنوان وابستگی (Dependency) بهطور خودکار نصب خواهند شد. برای نصب بستههای php8.1-fpm
و php-mysql
، دستور زیر را اجرا کنید:
sudo apt install php8.1-fpm php-mysql
پس از درخواست تأییدیه، Y
را فشار داده و سپس ENTER
را بزنید تا نصب آغاز شود. اکنون PHP با موفقیت روی سرور شما نصب شده است. در مرحله بعد، Nginx را پیکربندی میکنیم تا بتواند درخواستهای PHP را پردازش کند.
مرحله چهارم: نحوه پیکربندی Nginx برای پردازش PHP
زمانی که از Nginx به عنوان وبسرور استفاده میکنید، میتوانید Server Block ایجاد کنید (مشابه Virtual Hostها در Apache)؛ تا پیکربندیهای مختلفی را برای چندین دامنه در یک سرور واحد، مدیریت کنید. در این راهنما، از your_domain
به عنوان دامنه مثال، استفاده میکنیم.
در Ubuntu، وبسرور Nginx بهطور پیشفرض دارای یک server block فعال است که فایلهای خود را از دایرکتوری /var/www/html
ارائه میدهد. این تنظیم برای یک سایت مناسب است، اما مدیریت چندین سایت در این مسیر، دشوار میشود. بنابراین، به جای ایجاد تغییر در /var/www/html
، یک دایرکتوری جدید در /var/www
برای وبسایت your_domain
ایجاد میکنیم و دایرکتوری پیشفرض را به عنوان یک مسیر عمومی باقی میگذاریم.
برای ایجاد دایرکتوری root وبسایت your_domain
، دستور زیر را اجرا کنید:
sudo mkdir /var/www/your_domain
سپس، مالکیت (ownership) این دایرکتوری را به کاربر فعلی، تنظیم کنید:
sudo chown -R $USER:$USER /var/www/your_domain
اکنون، باید یک فایل پیکربندی جدید در دایرکتوری sites-available
برای این دامنه، ایجاد کنید. این کار را میتوان با استفاده از یک ویرایشگر متنی مانند nano انجام داد:
sudo nano /etc/nginx/sites-available/your_domain
فایل را باز کرده و محتوای زیر را داخل آن قرار دهید:
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
حالا بیایید بخشهای مهم این پیکربندی را بررسی کنیم:
listen 80;
– مشخص میکند که Nginx روی پورت ۸۰ به درخواستهای HTTP گوش دهد.root /var/www/your_domain;
– مسیر دایرکتوری root که وبسایت از آن ارائه میشود.index index.html index.htm index.php;
– تعیین اولویت نمایش فایلها. به طور پیشفرض،index.html
در اولویت است، اما اگر وجود نداشته باشد،index.php
بارگذاری میشود.location /
– این بخش بررسی میکند که آیا فایل یا پوشهای مطابق با درخواست کاربر وجود دارد یا خیر. در صورت عدم وجود فایل، خطای ۴۰۴ برمیگردد.location ~ \.php$
– این بخش، فایلهای PHP را پردازش میکند (آنها را به FastCGI ارسال میکند).location ~ /\.ht
– این قسمت، مانع از دسترسی کاربران به فایلهای.htaccess
میشود، زیرا Nginx این نوع فایلها را پردازش نمیکند.
پس از ویرایش، فایل را ذخیره کرده و ببندید. اگر از nano استفاده میکنید، Ctrl + X
را فشار دهید، سپس Y
و Enter
را بزنید. اکنون باید فایل پیکربندی را به دایرکتوری sites-enabled
متصل کنیم تا فعال شود:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
سپس، فایل پیکربندی پیشفرض را غیرفعال کنید:
sudo unlink /etc/nginx/sites-enabled/default
نکته: در صورت نیاز به بازگرداندن پیکربندی پیشفرض، میتوانید دستور زیر را اجرا کنید:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
قبل از اعمال تغییرات، بهتر است تنظیمات را از نظر خطاهای نحوی (syntax errors) بررسی کنید:
sudo nginx -t
در صورت مشاهده خطا، دوباره به فایل پیکربندی بازگردید و مشکلات احتمالی را بررسی کنید. اگر همهچیز درست بود، Nginx را reload کنید تا تغییرات اعمال شوند:
sudo systemctl reload nginx
اکنون که تنظیمات Nginx به درستی انجام شده، بهتر است یک صفحه تست برای بررسی عملکرد ایجاد کنید. یک فایل index.html
در مسیر /var/www/your_domain
ایجاد کنید:
nano /var/www/your_domain/index.html
سپس، کد زیر را در آن وارد کنید:
<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>
اکنون میتوانید وبسایت خود را در مرورگر باز کنید. آدرس زیر را وارد کنید:
http://server_domain_or_IP
باید صفحه زیر را مشاهده کنید:
نکته: این فایل را میتوان به عنوان یک صفحه موقت نگه داشت تا زمانی که فایل
index.php
خود را تنظیم کنید. اگر قصد دارید یک فایل PHP را جایگزین کنید، باید فایلindex.html
را حذف یا تغییر نام دهید، زیراindex.html
در اولویت بالاتری نسبت بهindex.php
قرار دارد.
در این مرحله، شما موفق به پیکربندی کامل Nginx برای اجرای PHP شدهاید. در مرحله بعدی، یک اسکریپت PHP ایجاد خواهیم کرد تا بررسی کنیم که آیا Nginx قادر به پردازش فایلهای .php است یا خیر.
همچنین بخوانید: سرور ابری چیست؟ نحوه عملکرد و معرفی بهترین سرور ابری
مرحله پنجم: نحوه تست و آزمایش PHP با NginX
اکنون LEMP شما باید بهطور کامل راهاندازی شده باشد. برای اطمینان از اینکه Nginx به درستی فایلهای .php
را پردازش میکند، میتوانید یک تست ساده انجام دهید.
برای انجام این تست، یک فایل PHP در دایرکتوری root ایجاد کنید. با استفاده از ویرایشگر متنی مورد علاقهتان، مثل nano، یک فایل جدید به نام info.php
باز کنید:
nano /var/www/your_domain/info.php
سپس کد زیر را در فایل وارد کنید:
<?php
phpinfo();
?>
پس از انجام کار فوق، فایل را ذخیره کرده و آن را ببندید (اگر از nano استفاده میکنید، Ctrl + X
را فشار دهید، سپس Y
و Enter
را بزنید).
اکنون میتوانید فایل info.php
را در مرورگر خود باز کنید. کافی است نام دامنه یا IP عمومی سرور خود را وارد کنید و سپس info.php/
را به انتهای آن اضافه کنید:
http://server_domain_or_IP/info.php
اگر همه چیز به درستی کار کند، صفحهای نمایش داده میشود که اطلاعات کاملی درباره نسخه PHP، تنظیمات سرور، ماژولهای نصبشده، و متغیرهای محیطی را نشان میدهد:
پس از بررسی اطلاعات مورد نیاز، بهتر است فایل info.php
را حذف کنید، زیرا این فایل حاوی اطلاعات حساسی درباره محیط PHP و سرور Ubuntu شما است. برای حذف آن، دستور زیر را اجرا کنید:
sudo rm /var/www/your_domain/info.php
در صورت نیاز، میتوانید این فایل را در آینده مجدداً ایجاد کنید.
مرحله ششم: نحوه آزمایش اتصال به دیتابیس از طریق پیاچپی در سرور مجازی
برای بررسی اینکه PHP قادر به اتصال به MySQL و اجرای کوئریهای پایگاه داده است، میتوانید یک جدول تستی با دادههای تستی، ایجاد کرده و سپس اطلاعات آن را از طریق یک اسکریپت PHP بازیابی کنید.
نکته: برخی نسخههای قدیمیتر از
mysqlnd
(کتابخانه MySQL برای PHP) از روش احراز هویت پیشفرض MySQL 8 یعنیcaching_sha2_authentication
پشتیبانی نمیکنند. در این صورت، باید مطمئن شوید که از روشmysql_native_password
استفاده شده است.
در ابتدا، یک پایگاه داده به نام example_database
و یک کاربر جدید به نام example_user
ایجاد میکنیم. شما میتوانید این نامها را با مقادیر دلخواه، جایگزین کنید. ابتدا وارد کنسول MySQL شوید:
sudo mysql
دستور زیر را در کنسول MySQL اجرا کنید تا دیتابیس ایجاد شود:
CREATE DATABASE example_database;
اکنون یک کاربر به نام example_user ایجاد کرده و برای احراز هویت از mysql_native_password
استفاده کنید (بهجای password
یک رمز عبور مناسب وارد کنید).
CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
مجوزهای کامل برای example_database
را به کاربر example_user
اختصاص دهید:
GRANT ALL ON example_database.* TO 'example_user'@'%';
اکنون کاربر example_user
دارای دسترسی کامل به example_database
است، اما نمیتواند سایر پایگاههای داده را تغییر دهد. برای خروج، دستور زیر را اجرا کنید:
exit
برای اطمینان از اینکه کاربر example_user
به دیتابیس دسترسی دارد، با اطلاعات ورود جدید، دوباره وارد MySQL شوید:
mysql -u example_user -p
پس از ورود، کوئری زیر را امتحان کنید:
SHOW DATABASES;
خروجی باید مشابه زیر باشد:
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
اکنون یک جدول تستی به نام todo_list
ایجاد میکنیم. در کنسول MySQL دستور زیر را اجرا کنید:
CREATE TABLE example_database.todo_list (
item_id INT AUTO_INCREMENT,
content VARCHAR(255),
PRIMARY KEY(item_id)
);
چند ردیف رکورد آزمایشی به جدول todo_list
اضافه کنید:
INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
INSERT INTO example_database.todo_list (content) VALUES ("My second important item");
INSERT INTO example_database.todo_list (content) VALUES ("My third important item");
INSERT INTO example_database.todo_list (content) VALUES ("And this one more thing");
برای مشاهده دادههای ذخیرهشده در جدول، دستور زیر را اجرا کنید:
SELECT * FROM example_database.todo_list;
خروجی باید مشابه زیر باشد:
+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+---------+--------------------------+
4 rows in set (0.000 sec)
پس از بررسی اطلاعات، از MySQL خارج شوید:
exit
اکنون یک فایل PHP ایجاد کنید که دادههای todo_list
را از دیتابیس بخواند و سپس نمایش دهد. با استفاده از ویرایشگر nano فایل todo_list.php
را ایجاد کنید:
nano /var/www/your_domain/todo_list.php
اکنون کافیست تا اسکریپت زیر را در فایل ایجاد شده، قرار دهید. اسکریپت زیر، به دیتابیس MySQL متصل میشود و به جدول todo_list یک کوئری میزند تا محتوای آن را در قالب یک فهرست نمایش دهد. اگر که در اتصال به دیتابیس مشکلی وجود داشته باشد، یک exception نمایش داده میشود.
<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
پس از درج کد فوق، فایل را ذخیره کرده و ببندید. اکنون در مرورگر خود، آدرس زیر را باز کنید (دامنه یا IP سرور خود را جایگزین کنید):
http://server_domain_or_IP/todo_list.php
اگر همه چیز به درستی پیکربندی شده باشد، لیستی از todo_list
نمایش داده میشود:
نتیجهگیری
در این راهنما، شما یک زیرساخت انعطافپذیر برای میزبانی وبسایتها و برنامههای PHP ایجاد کردید. این پیکربندی از Nginx به عنوان وب سرور و MySQL به عنوان سیستم دیتابیس، استفاده میکند. با این پیکربندی، اکنون یک سرور PHP کامل و آماده به کار دارید که میتواند برای پروژههای متنوع توسعه وب مورد استفاده قرار گیرد.
همچنین بخوانید: نحوه مشاهده و تنظیم لاگهای لینوکس در سرور مجازی اوبونتو Ubuntu