Laravel يك چارچوب منبع باز PHP است كه مجموعه اي از ابزارها و منابع را براي ساخت برنامه هاي كاربردي مدرن PHP فراهم مي كند. محبوبيت Laravel به واسطه اكوسيستم كامل ويژگي هاي داخلي اش ، در چند سال گذشته به سرعت در حال رشد است و بسياري از توسعه دهندگان آن را به عنوان چارچوب انتخاب خود براي يك فرايند توسعه كارآمد پذيرفته اند.
در اين راهنما ، يك برنامه جديد Laravel را روي يك سرور مجازي Ubuntu 20.04 نصب و پيكربندي مي كنيد ، از Composer براي دانلود و مديريت متعلقات چارچوب استفاده ميكنيد. پس از پايان كار ، يك برنامه آزمايشي كاربردي Laravel داريد كه محتوا را از يك پايگاه داده MySQL بيرون مي كشد.
پيش نيازها
براي تكميل اين راهنما ، ابتدا لازم است كارهاي زير را در سرور مجازي Ubuntu 20.04 خود انجام دهيد:
⦁ يك كاربر Sudo ايجاد كنيد و ufw را فعال كنيد. براي انجام اين كار ، مي توانيد راهنماي راه اندازي اوليه سرور مجازي در اوبونتو 20.04 را دنبال كنيد.
⦁ يك پشته LEMP با MySQL 8 نصب كنيد. اگر هنوز اين كار را انجام نداده ايد ، مي توانيد مراحل 1 تا 3 راهنماي ما درباره نحوه نصب Nginx ، MySQL و PHP را در اوبونتو 20.04 دنبال كنيد.
⦁ composer را نصب كنيد. براي نصب Laravel و متعلقات آن از Composer استفاده خواهيم كرد. مي توانيد Composer را با پيروي از راهنماي ما در مورد نحوه نصب Composer در اوبونتو 20.04 نصب كنيد.
مرحله 1 – نصب ماژول هاي PHP مورد نياز
قبل از نصب Laravel ، بايد چند ماژول PHP را كه مورد نياز چارچوب است ، نصب كنيد. ما براي نصب ماژول هاي php-mbstring ، php-xml و php-bcmath از PHP استفاده مي كنيم. اين پسوندهاي PHP پشتيباني بيشتري را براي مقابله با رمزگذاري كاراكترها ، XML و رياضيات دقيق ارائه مي دهند.
اگر اولين بار است كه از apt در اين بخش استفاده مي كنيد ، ابتدا بايد دستور update را براي به روزرساني حافظه نهان مدير بسته اجرا كنيد:
⦁ $ sudo apt update

اكنون مي توانيد بسته هاي مورد نياز را با اين دستور نصب كنيد:
⦁ $ sudo apt install php-mbstring php-xml php-bcmath

اكنون سيستم شما آماده اجراي نصب Laravel از طريق Composer است ، اما قبل از انجام اين كار ، به يك بانك اطلاعاتي براي برنامه خود نياز داريد.
مرحله 2 – ايجاد يك بانك اطلاعاتي براي برنامه
براي نشان دادن نصب و به كارگيري ساده Laravel ، يك برنامه ليست سفر ايجاد مي كنيم تا ليستي از مكانهايي را كه كاربر مي خواهد به آن سفر كند و ليستي از مكانهايي كه قبلاً بازديد كرده است ، نشان دهيم. اين كار مي تواند در يك جدول places ساده با يك فيلد براي مكان هايي كه نام را قرار ميدهيم و يك فيلد ديگر براي ذخيره آنها به عنوان بازديد شده يا بازديد نشده ذخيره شود ، كه ما آن را بازديد شده ميناميم. علاوه بر اين ، ما يك فيلد id براي شناسايي منحصر به فرد هر ورودي وارد خواهيم كرد.
براي اتصال به بانك اطلاعاتي از برنامه Laravel ، يك كاربر اختصاصي MySQL ايجاد خواهيم كرد و به اين كاربر امتيازات كاملي نسبت به بانك اطلاعاتي travellist اعطا مي كنيم.
در زمان نوشتن اين مقاله، باينري MySQL PHP يعني mysqlnd  از caching_sha2_authentication، روش تاييد هويت پيش فرض براي MySQL 8 پشتيابي نميكند. لازم است كاربر ديتابيس را با روش احراز هويت mysql_native_password تنظيم كنيم تا بتوانيم از PHP به پايگاه داده MySQL متصل شويم.
براي شروع كار ، با دستور زير به عنوان كاربر اصلي پايگاه داده به كنسول MySQL وارد شويد:
⦁ $ sudo mysql

براي ايجاد يك پايگاه داده جديد ، دستور زير را از كنسول MySQL خود اجرا كنيد:
⦁ Mysql> CREATE DATABASE travellist;

اكنون مي توانيد يك كاربر جديد ايجاد كنيد و در پايگاه داده سفارشي كه اخيراً ايجاد كرده ايد ، به آنها امتياز بدهيد. در اين مثال ، ما يك كاربر با نام Travelist_user و رمز عبور password ايجاد مي كنيم ، اگرچه بايد آن را با يك رمز عبور ايمن به انتخاب خود عوض كنيد:
⦁ Mysql> CREATE USER ‘travellist_user’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

اكنون بايد به اين كاربر روي ديتابيس travellist مجوز اعطا كنيم:
⦁ Mysql> GRANT ALL ON travellist.* TO ‘travellist_user’@’%’;

اين كار به كاربر Travelist_user امتيازات كامل نسبت به پايگاه داده Travellist مي دهد ، ضمن اينكه از ايجاد يا تغيير ساير پايگاه هاي داده ديگر روي سرور مجازي شما جلوگيري مي كند.
پس از اين ، از پوسته MySQL خارج شويد:
⦁ Mysql> exit

اكنون مي توانيد با ورود دوباره به كنسول MySQL ، اين بار با استفاده از اعتبارات كاربر سفارشي ، آزمايش كنيد كه آيا كاربر جديد داراي مجوزهاي مناسب است:
⦁ $ mysql -u travellist_user -p

در اين دستور ، به پرچم -p دقت كنيد ، كه پسورد استفاده شده هنگام ايجاد كاربر travel_userرا از شما ميخواهد. پس از ورود به كنسول MySQL ، تأييد كنيد كه به بانك اطلاعاتي Travellist دسترسي داريد:
⦁ Mysql> SHOW DATABASES;

خروجي زير را به شما مي دهد:
Output
+——————–+
| Database |
+——————–+
| information_schema |
| travellist |
+——————–+
2 rows in set (0.01 sec)

در مرحله بعدي ، يك جدول با نام places در بانك اطلاعاتي Travellist ايجاد كنيد. از كنسول MySQL عبارت زير را اجرا كنيد:
⦁ Mysql> CREATE TABLE travellist.places (

⦁ Mysql> id INT AUTO_INCREMENT,

⦁ Mysql> name VARCHAR(255),

⦁ Mysql> visited BOOLEAN,

⦁ Mysql> PRIMARY KEY(id)

⦁ Mysql> );

اكنون ، جدول places را با داده هاي نمونه اي پر كنيد:
⦁ Mysql> INSERT INTO travellist.places (name, visited)

⦁ Mysql>VALUES (“Tokyo”, false),

⦁ Mysql> (“Budapest”, true),

⦁ Mysql> (“Nairobi”, false),

⦁ Mysql> (“Berlin”, true),

⦁ Mysql> (“Lisbon”, true),

⦁ Mysql> (“Denver”, false),

⦁ Mysql> (“Moscow”, false),

⦁ Mysql> (“Olso”, false),

⦁ Mysql> (“Rio”, true),

⦁ Mysql> (“Cincinnati”, false),

⦁ Mysql> (“Helsinki”, false);


براي اينكه تأييد كنيد داده ها با موفقيت در جدول شما ذخيره شده اند ، اين دستور اجرا كنيد:
⦁ Mysql> SELECT * FROM travellist.places;

خروجي مشابه اين را مشاهده خواهيد كرد:
Output
+—-+———–+———+
| id | name | visited |
+—-+———–+———+
| 1 | Tokyo | 0 |
| 2 | Budapest | 1 |
| 3 | Nairobi | 0 |
| 4 | Berlin | 1 |
| 5 | Lisbon | 1 |
| 6 | Denver | 0 |
| 7 | Moscow | 0 |
| 8 | Oslo | 0 |
| 9 | Rio | 1 |
| 10 | Cincinnati| 0 |
| 11 | Helsinki | 0 |
+—-+———–+———+
11 rows in set (0.00 sec)

پس از تأييد اينكه داده هاي معتبري در جدول آزمون خود داريد ، مي توانيد از كنسول MySQL خارج شويد:
⦁ Mysql> exit

اكنون براي ايجاد برنامه و پيكربندي آن براي اتصال به پايگاه داده جديد آماده هستيد.
مرحله 3 – ايجاد يك برنامه جديد Laravel
اكنون با استفاده از دستور composer create-project، يك برنامه جديد Laravel ايجاد خواهيد كرد. اين دستور Composer معمولاً براي راه اندازي برنامه هاي جديد بر اساس چارچوب هاي موجود و سيستم هاي مديريت محتوا استفاده مي شود.
در طول اين راهنما ، از Travellist به عنوان يك برنامه نمونه استفاده خواهيم كرد ، اما ميتوانيد اين را به چيز ديگري تغيير دهيد. برنامه travellist ليستي از مكانهاي دريافتي از يك سرور مجازي محلي MySQL را نشان مي دهد ، كه قصد دارد پيكربندي اساسي Laravel را توصيف كند و تأييد كند كه شما قادر به اتصال به پايگاه داده هستيد.
ابتدا به ديركتوري هوم كاربر خود برويد:
⦁ $ cd ~

دستور زير يك ديركتوري جديد Travellist را كه شامل يك برنامه مختصر Laravel است بر اساس تنظيمات پيش فرض ايجاد مي كند:
⦁ $ composer create-project –prefer-dist laravel/laravel travellist

خروجي مشابه اين را مشاهده خواهيد كرد:
… Output
Installing laravel/laravel (v5.8.17)
– Installing laravel/laravel (v5.8.17): Downloading (100%)
Created project in travellist
> @php -r “file_exists(‘.env’) || copy(‘.env.example’, ‘.env’);”
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 80 installs, 0 updates, 0 removals
– Installing symfony/polyfill-ctype (v1.11.0): Downloading (100%)
– Installing phpoption/phpoption (1.5.0): Downloading (100%)
– Installing vlucas/phpdotenv (v3.4.0): Downloading (100%)
– Installing symfony/css-selector (v4.3.2): Downloading (100%)

پس از اتمام نصب ، به ديركتوري برنامه دسترسي پيدا كنيد و دستور artisan Laravel را اجرا كنيد تا تأييد كنيد كه همه مؤلفه ها با موفقيت نصب شده اند:
⦁ $ cd travellist

⦁ $ php artisan
خروجي مشابه اين را مشاهده خواهيد كرد:
Output
Laravel Framework 7.11.0

Usage:
command [options] [arguments]

Options:
-h, –help Display this help message
-q, –quiet Do not output any message
-V, –version Display this application version
–ansi Force ANSI output
–no-ansi Disable ANSI output
-n, –no-interaction Do not ask any interactive question
–env[=ENV] The environment the command should run under
-v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

اين خروجي تأييد مي كند كه فايل هاي برنامه در دسترس هستند و ابزارهاي خط فرمان Laravel همانطور كه انتظار مي رود كار مي كنند. با اين حال ، هنوز نياز به پيكربندي برنامه براي تنظيم پايگاه داده و چند جزئيات ديگر داريم.
مرحله 4 – پيكربندي Laravel
فايل هاي پيكربندي Laravel در پوشه اي به نام config ، در ديركتوري اصلي برنامه قرار دارند. علاوه بر اين ، وقتي Laravel را با Composer نصب مي كنيد ، يك فايل محيط ايجاد مي كند. اين فايل شامل تنظيمات خاص براي محيط فعلي است كه برنامه در آن اجرا مي شود و بر مقادير تعيين شده در فايل هاي پيكربندي منظم واقع در ديركتوري پيكربندي تقدم مي يابد. هر نصب بر روي يك محيط جديد نياز به يك فايل متناسب با محيط دارد تا مواردي از قبيل تنظيمات اتصال بانك اطلاعاتي ، گزينه هاي اشكال زدايي ، URL برنامه را در ميان موارد ديگر كه ممكن است بسته به محيطي كه برنامه اجرا ميشود متفاوت باشد، تعريف كند.
هشدار: فايل پيكربندي محيط شامل اطلاعات حساس در مورد سرور مجازي، از جمله اطلاعات پايگاه داده و كليدهاي امنيتي است. به همين دليل ، شما هرگز نبايد اين فايل را به صورت عمومي به اشتراك بگذاريد.
اكنون براي سفارشي كردن گزينه هاي پيكربندي محيط برنامه فعلي ، فايل .env را ويرايش خواهيم كرد.
فايل .env را با استفاده از ويرايشگر خط فرمان خود انتخاب كنيد. در اينجا ما از nano استفاده خواهيم كرد:
⦁ $ nano .env

حتي اگر متغيرهاي پيكربندي زيادي در اين فايل وجود داشته باشد ، لازم نيست اكنون همه آنها را تنظيم كنيد. ليست زير شامل نماي كلي از متغيرهايي است كه نياز به توجه فوري دارند:
⦁ APP_NAME: نام برنامه ، كه براي اعلان ها و پيام ها استفاده مي شود.
⦁ APP_ENV: محيط برنامه فعلي.
⦁ APP_KEY: براي توليد salts  و hashes استفاده ميشود، اين كليد منحصر به فرد هنگام نصب Laravel از طريق Composer به طور خودكار ايجاد مي شود ، بنابراين نيازي به تغيير آن نيست.
⦁ APP_DEBUG: اين كه آيا اطلاعات اشكال زدايي را در سمت كلاينت نشان دهد يا خير.
⦁ APP_URL: URL پايه براي برنامه ، كه براي توليد لينك هاي برنامه كاربردي استفاده مي شود.
⦁ DB_DATABASE: نام بانك اطلاعاتي
⦁ DB_USERNAME: نام كاربري براي اتصال به بانك اطلاعاتي.
⦁ DB_PASSWORD: رمز عبور براي اتصال به پايگاه داده.
به طور پيش فرض ، اين مقادير براي يك محيط توسعه محلي كه از Homestead استفاده مي كند ، (يك جعبه بسته بندي شده Vagrant ارائه شده توسط Laravel ) تنظيم شده است. ما اين مقادير را تغيير خواهيم داد تا منعكس كننده تنظيمات محيط فعلي برنامه مثال ما باشد.
در صورت نصب Laravel در يك محيط توسعه يا آزمايش ، مي توانيد گزينه APP_DEBUG را فعال كنيد زيرا اين كار هنگام آزمايش برنامه از يك مرورگر ، اطلاعات اشكال زدايي مهم را به شما مي دهد. متغير APP_ENV بايد در اين حالت روي development  يا testing  تنظيم شود.
در صورت نصب Laravel در يك محيط توليد ، بايد گزينه APP_DEBUG را غيرفعال كنيد ، زيرا اطلاعات حساس كاربر نهايي را درباره برنامه شما نشان مي دهد. APP_ENV در اين حالت بايد روي production تنظيم شود.
فايل هاي .env زير برنامه نمونه ما را براي development  تنظيم مي كند:
توجه: متغير APP_KEY حاوي يك كليد منحصر به فرد است كه هنگام نصب Laravel از طريق Composer به صورت خودكار ايجاد شد. نيازي نيست اين مقدار را تغيير دهيد. اگر مي خواهيد يك كليد ايمن جديد توليد كنيد ، مي توانيد از فرمان php artisan key:generate استفاده كنيد.
/var/www/travellist/.env
APP_NAME=TravelList
APP_ENV=development
APP_KEY=APPLICATION_UNIQUE_KEY_DONT_COPY
APP_DEBUG=true
APP_URL=http://domain_or_IP

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=travellist
DB_USERNAME=travellist_user
DB_PASSWORD=password


متغيرهاي خود را بر اين اساس تنظيم كنيد. وقتي ويرايش به پايان رسيد ، فايل را ذخيره كنيد و ببنديد تا تغييرات خود را حفظ كنيد. اگر از nano استفاده مي كنيد ، مي توانيد اين كار را با CTRL + X انجام دهيد ، سپس Y و Enter انجام دهيد.
برنامه Laravel شما اكنون تنظيم شده است ، اما ما هنوز بايد سرور مجازي وب را پيكربندي كنيم تا بتوانيم از يك مرورگر به آن دسترسي پيدا كنيم. در مرحله بعدي ، Nginx را براي ارائه برنامه Laravel شما پيكربندي مي كنيم.
مرحله 5 – راه اندازي Nginx
Laravel را در يك پوشه محلي در ديركتوري اصلي كاربر از راه دور شما نصب كرده ايم ، و اگرچه اين كار براي محيط هاي محلي توسعه مناسب است ، يك سرويس توصيه شده براي سرور مجازي هاي وب نيست كه براي اينترنت عمومي باز باشد. پوشه برنامه را به / var / www كه مكان معمول برنامه هاي وب است كه در Nginx در حال اجرا هستند منتقل مي كنيم.
ابتدا ، از دستور mv براي انتقال پوشه برنامه با تمام محتويات آن به / var / www / travellist استفاده كنيد:
⦁ $ sudo mv ~/travellist /var/www/travellist

حال بايد به كاربر سرور مجازي وب به پوشه هاي storage  و cache  دسترسي دهيم ، يعني جايي كه Laravel فايل هاي توليد شده توسط برنامه را ذخيره مي كند:
⦁ $ sudo chown -R www-data.www-data /var/www/travellist/storage

⦁ $ sudo chown -R www-data.www-data /var/www/travellist/bootstrap/cache

اكنون فايل هاي برنامه به ترتيب هستند ، اما براي ارائه محتوا هنوز بايد پيكربندي Nginx را انجام دهيم. براي اين كار ، يك فايل پيكربندي هاست مجازي جديد را در /etc/nginx/sites-available ايجاد خواهيم كرد:
⦁ $ sudo nano /etc/nginx/sites-available/travellist

فايل پيكربندي زير شامل تنظيمات پيشنهادي براي برنامه هاي Laravel در Nginx است:
/etc/nginx/sites-available/travellist
server {
listen 80;
server_name server_domain_or_IP;
root /var/www/travellist/public;

add_header X-Frame-Options “SAMEORIGIN”;
add_header X-XSS-Protection “1; mode=block”;
add_header X-Content-Type-Options “nosniff”;

index index.html index.htm index.php;

charset utf-8;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ .php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ /.(?!well-known).* {
deny all;
}
}

اين محتوا را در فايل / etc / nginx / sites-available / travellist خود كپي كنيد و در صورت لزوم مقادير هايلايت شده را تنظيم كنيد تا با پيكربندي شما مطابقت داشته باشد. پس از پايان ويرايش ، فايل را ذخيره كنيد و ببنديد.
براي فعال كردن فايل پيكربندي ميزبان مجازي جديد ، پيوندي نمادين به travellist در sites-enabled بدهيد:
⦁ $ sudo ln -s /etc/nginx/sites-available/travellist /etc/nginx/sites-enabled/

توجه: اگر فايل ميزبان مجازي ديگري داريد كه قبلاً براي همان server_name استفاده شده در ميزبان مجازي travellist پيكربندي شده است ، ممكن است نياز به غيرفعال كردن تنظيمات قديمي با حذف پيوند نمادين مربوطه در داخل /etc/nginx/sites-enabled/ داشته باشيد.
براي تأييد اينكه پيكربندي شامل هيچ خطاي نحوي نيست ، مي توانيد از اين دستور استفاده كنيد:
⦁ $ sudo nginx -t

بايد خروجي مانند اين را مشاهده كنيد:
Output
⦁ $ nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

⦁ $ nginx: configuration file /etc/nginx/nginx.conf test is successful

براي اعمال تغييرات ، دوباره Nginx را با دستور زير لود كنيد:
⦁ $ sudo systemctl reload nginx

اكنون به مرورگر خود برويد و با استفاده از نام دامنه يا آدرس IP سرور مجازي ، مطابق با دستور server_name در فايل تنظيمات خود ، به مرورگر خود برويد و به برنامه دسترسي پيدا كنيد:
http://server_domain_or_IP
صفحه اي مانند اين را مشاهده خواهيد كرد:

اين صفحه تأييد مي كند كه سرور مجازي Nginx شما به درستي پيكربندي شده است تا Laravel را ارائه كند. از اين مرحله ، مي توانيد برنامه خود را روي اسكلت ارائه شده توسط نصب پيش فرض شروع كنيد.
در مرحله بعدي ، مسير اصلي برنامه را براي جستجوي داده ها در پايگاه داده با استفاده از نماي DB Laravel اصلاح خواهيم كرد.
مرحله 6 – شخصي سازي صفحه اصلي
با فرض اينكه شما تاكنون تمامي مراحل اين راهنما را رعايت كرده ايد ، بايد يك برنامه كاربردي Laravel و يك جدول بانك اطلاعاتي به نام palces داشته باشيد كه حاوي برخي از داده هاي نمونه است.
اكنون مسير اصلي برنامه را براي جستجوي پايگاه داده ويرايش مي كنيم و محتويات را به نماي برنامه باز مي گردانيم.
فايل مسير اصلي ، يعني routes/web.php را باز كنيد:
⦁ $ nano routes/web.php

اين فايل به طور پيش فرض با محتواي زير ارائه مي شود:
routes/web.php

/*
|————————————————————————–
| Web Routes
|————————————————————————–
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the “web” middleware group. Now create something great!
|
*/

Route::get(‘/’, function () {
return view(‘welcome’);
});

مسيرها با استفاده از روش Route::get استاتيك تعريف مي شوند كه يك مسير و يك عملكرد برگشتي را به عنوان آرگومان دريافت مي كند.
كد زير جايگزين عملكرد برگشتي مسير اصلي است. با استفاده از پرچم visited  براي فيلتر نتايج ، 2 جستار به ديتابيس فرستاده ميشود. اين كار، نتايج را به نمايي به نام travellist باز مي گرداند ، كه مي خواهيم بعدا آن را ايجاد كنيم. اين محتوا را در فايل routes/web.php خود كپي كنيد و كدي را كه قبلاً در آنجا قرار دارد جايگزين كنيد:
routes/web.php

use IlluminateSupportFacadesDB;

Route::get(‘/’, function () {
$visited = DB::select(‘select * from places where visited = ?’, [1]);
$togo = DB::select(‘select * from places where visited = ?’, [0]);

return view(‘travellist’, [‘visited’ => $visited, ‘togo’ => $togo ] );
});

پس از پايان ويرايش ، فايل را ذخيره كنيد و ببنديد. اكنون نمايي را ايجاد مي كنيم كه نتايج ديتابيس را به كاربر ارائه مي دهد. يك فايل نماي جديد در داخل resources/views ايجاد كنيد:
⦁ $ nano resources/views/travellist.blade.php

الگوي زير بر اساس متغيرهاي visited  و togo ، دو ليست از مكان ها ايجاد مي كند. اين محتوا را در فايل نماي جديد خود كپي كنيد:
resources/views/travellist/blade.php


Travel List


My Travel Bucket List


Places I’d Like to Visit



    @foreach ($togo as $newplace)
  • {{ $newplace->name }}

  • @endforeach

Places I’ve Already Been To



    @foreach ($visited as $place)
  • {{ $place->name }}

  • @endforeach


پس از پايان كار ، فايل را ذخيره كنيد و ببنديد. اكنون به مرورگر خود برويد و برنامه را مجدد لود كنيد. صفحه اي را به اين شكل مشاهده خواهيد كرد:

اكنون يك برنامه كاربردي Laravel در حال دريافت محتوا از يك پايگاه داده MySQL داريد.
نتيجه
در اين آموزش ، يك برنامه جديد Laravel را روي پشته LEMP (Linux ، Nginx ، MySQL و PHP) تنظيم كرده ايد كه روي يك سرور مجازي اوبونتو 20.04 اجرا مي شود. همچنين مسير پيش فرض خود را براي جستجوي محتواي پايگاه داده تنظيم كرده ايد و نتايج را در نماي سفارشي به نمايش مي گذاريد.
از اينجا ، مي توانيد مسيرها و نماهاي جديدي را براي هر صفحه ديگري كه برنامه شما به آن نياز دارد ايجاد كنيد. براي اطلاعات بيشتر در مورد مسيرها ، نماها و پشتيباني از پايگاه داده ، مطالب رسمي Laravel را بررسي كنيد. اگر به استقرار توليد مشغول هستيد ، بايد بخش بهينه سازي را نيز به چند روش مختلف بررسي كنيد تا بتوانيد عملكرد برنامه خود را بهبود بخشيد.

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

 

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهيد

نحوه ايجاد نماها (Views) براي توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پيكربندي Laravel با Nginx در اوبونتو 20.04

نحوه تنظيم Jupyter Notebook با پايتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پيكربندي Nextcloud در اوبونتو 20.04

نصب و پيكربندي Ansible در اوبونتو 20.04

 

كلمات كليدي خريد سرور

خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان