วิธีการติดตั้ง Yii PHP Framework บน Ubuntu
Yii (ออกเสียงว่า Yee หรือ [ji:]) เป็นโอเพ่นซอร์สฟรี รวดเร็ว ประสิทธิภาพสูง ปลอดภัย ยืดหยุ่น แต่ใช้งานได้จริง และเฟรมเวิร์กการเขียนโปรแกรมเว็บทั่วไปที่มีประสิทธิภาพสำหรับการพัฒนาเว็บแอปพลิเคชันทุกประเภทโดยใช้ PHP
ในบทความนี้ คุณจะได้เรียนรู้วิธีติดตั้ง เฟรมเวิร์ก Yii เวอร์ชันล่าสุดในรุ่น Ubuntu LTS (การสนับสนุนระยะยาว) เพื่อเริ่มพัฒนาเว็บแอปพลิเคชัน PHP สมัยใหม่
การสนับสนุนแพลตฟอร์ม
Yii มี Ubuntu LTS (การสนับสนุนระยะยาว) รุ่นต่อไปนี้:
- Ubuntu 20.04 LTS (“โฟกัส”)
- Ubuntu 18.04 LTS (“ไบโอนิค”)
- อูบุนตู 16.04 LTS (“Xenial”)
ความต้องการ
- อินสแตนซ์ที่ทำงานอยู่ของเซิร์ฟเวอร์ Ubuntu
- LEMP stack ที่มี PHP 5.4.0 หรือสูงกว่า
- A Composer – ตัวจัดการแพ็คเกจระดับแอปพลิเคชันสำหรับ PHP
บนหน้านี้
- การติดตั้ง Yii Framework ผ่าน Composer ใน Ubuntu
- ใช้งาน Yii โดยใช้เซิร์ฟเวอร์การพัฒนา PHP
- การรันโปรเจ็กต์ Yii ในการผลิตโดยใช้เซิร์ฟเวอร์ NGINX HTTP
- เปิดใช้งาน HTTPS บนแอปพลิเคชัน Yii โดยใช้ Let's Encrypt
มีสองวิธีในการติดตั้ง Yii โดยใช้ตัวจัดการแพ็คเกจ Composer หรือโดยการติดตั้งจากไฟล์เก็บถาวร วิธีแรกเป็นวิธีที่แนะนำ เนื่องจากช่วยให้คุณสามารถติดตั้งส่วนขยายใหม่หรืออัปเดต Yii ด้วยคำสั่งเดียว
การติดตั้ง Yii Framework ผ่าน Composer ใน Ubuntu
หากคุณไม่ได้ติดตั้ง Composer คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้ ซึ่งจะติดตั้ง Yii และจัดการการขึ้นต่อกันในภายหลัง
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
เมื่อคุณติดตั้งผู้แต่งแล้ว ให้ย้ายไปยังไดเรกทอรี /var/www/html/
ซึ่งจะจัดเก็บแอปพลิเคชันเว็บหรือไฟล์เว็บไซต์ของคุณ จากนั้นติดตั้งแพ็คเกจ Yii โดยใช้คำสั่ง ผู้แต่ง (แทนที่ testproject ด้วยชื่อไดเรกทอรีของแอปพลิเคชันเว็บของคุณ)
cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
ใช้งาน Yii โดยใช้เซิร์ฟเวอร์การพัฒนา PHP
ณ จุดนี้ คุณพร้อมที่จะเริ่มใช้เฟรมเวิร์ก Yii เพื่อการพัฒนาแล้ว หากต้องการเรียกใช้เซิร์ฟเวอร์การพัฒนา PHP ให้ย้ายไปยังไดเร็กทอรี testprojects (ชื่อไดเร็กทอรีของคุณควรแตกต่างกันขึ้นอยู่กับสิ่งที่คุณระบุไว้ในคำสั่งก่อนหน้า) จากนั้นจึงเปิดเซิร์ฟเวอร์การพัฒนา ตามค่าเริ่มต้น ควรทำงานบนพอร์ต 8080
cd /var/www/html/testproject/
php yii serve
หากต้องการรันเซิร์ฟเวอร์การพัฒนาบนพอร์ตอื่น เช่น พอร์ต 5000 ให้ใช้แฟล็ก --port
ตามที่แสดง
php yii serve --port=5000
จากนั้นเปิดเว็บเบราว์เซอร์ของคุณและนำทางโดยใช้ที่อยู่ต่อไปนี้:
http://SERVER_IP:8080
OR
http://SERVER_IP:5000
การรันโปรเจ็กต์ Yii ในการผลิตโดยใช้เซิร์ฟเวอร์ NGINX HTTP
หากต้องการปรับใช้และเข้าถึงแอปพลิเคชัน Yii ในการใช้งานจริง ต้องใช้เซิร์ฟเวอร์ HTTP เช่น NGINX, Apache/HTTPD หรือซอฟต์แวร์เว็บเซิร์ฟเวอร์อื่นๆ ที่รองรับ
หากต้องการเข้าถึงแอปพลิเคชัน Yii โดยไม่ต้องพิมพ์พอร์ต คุณจะต้องสร้างระเบียน DNS A
ที่จำเป็นเพื่อชี้โดเมนของคุณไปยังเซิร์ฟเวอร์แอปพลิเคชันเฟรมเวิร์ก Yii ของคุณ .
สำหรับคู่มือนี้ เราจะแสดงวิธีการปรับใช้แอปพลิเคชัน Yii ด้วย NGINX ดังนั้น คุณต้องสร้างไฟล์การกำหนดค่าโฮสต์เสมือนหรือบล็อกเซิร์ฟเวอร์ภายใต้ไดเร็กทอรี /etc/nginx/sites-available/ สำหรับแอปพลิเคชันของคุณ เพื่อให้ NGINX สามารถให้บริการได้
sudo vim /etc/nginx/sites-available/testproject.me.conf
คัดลอกและวางการกำหนดค่าต่อไปนี้ (แทนที่ testprojects.me
และ www.testprojects.me
ด้วยชื่อโดเมนของคุณ) นอกจากนี้ ให้ระบุวิธีการที่ NGINX จะส่งคำขอ FastCGI ไปยัง PHP-FPM ในตัวอย่างนี้ เรากำลังใช้ซ็อกเก็ต UNIX (/ วิ่ง/php/php7.4-fpm.sock):
server {
set $host_path "/var/www/html/testproject";
#access_log /www/testproject/log/access.log main;
server_name testprojects.me www.testprojects.me;
root $host_path/web;
set $yii_bootstrap "index.php";
charset utf-8;
location / {
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
location ~ ^/(protected|framework|themes/\w+/views) {
deny all;
}
#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
# pass the PHP scripts to FastCGI server listening on UNIX socket
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
#let yii catch the calls to unexising PHP files
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
}
# prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
บันทึกไฟล์และปิด
จากนั้นตรวจสอบความถูกต้องของไวยากรณ์การกำหนดค่า NGINX หากถูกต้อง ให้เปิดใช้งานแอปพลิเคชันใหม่ดังที่แสดง:
sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf
จากนั้นรีสตาร์ทบริการ NGINX เพื่อใช้การเปลี่ยนแปลงใหม่:
sudo systemctl restart nginx
กลับไปที่เว็บเบราว์เซอร์ของคุณและนำทางด้วยชื่อโดเมนของคุณ
http://testprojects.me
OR
http://www.testprojects.me
เปิดใช้งาน HTTPS บนแอปพลิเคชัน Yii โดยใช้ Let's Encrypt
สุดท้าย คุณต้องเปิดใช้งาน HTTPS บนเว็บไซต์ของคุณ คุณสามารถใช้ใบรับรอง Let's Encrypt SSL/TLS ฟรี (ซึ่งเป็นระบบอัตโนมัติและได้รับการยอมรับจากเว็บเบราว์เซอร์สมัยใหม่ทั้งหมด) หรือรับใบรับรองจาก CA เชิงพาณิชย์
หากคุณตัดสินใจที่จะใช้ใบรับรอง Let's Encrypt คุณจะสามารถติดตั้งและกำหนดค่าได้โดยอัตโนมัติโดยใช้เครื่องมือ certbot หากต้องการติดตั้ง certbot คุณต้องติดตั้ง snapd เพื่อติดตั้ง
sudo snap install --classic certbot
จากนั้นใช้ certbot เพื่อรับและติดตั้ง/กำหนดค่าใบรับรอง SSL/TLS ฟรีของคุณเพื่อใช้กับเว็บเซิร์ฟเวอร์ NGINX (ระบุอีเมลที่ถูกต้องสำหรับการต่ออายุและปฏิบัติตามคำแนะนำเพื่อทำการติดตั้งให้เสร็จสมบูรณ์):
sudo certbot --nginx
ไปที่เว็บเบราว์เซอร์ของคุณอีกครั้งเพื่อยืนยันว่าแอปพลิเคชัน Yii ของคุณทำงานบน HTTPS (โปรดจำไว้ว่า HTTP ควรเปลี่ยนเส้นทางไปยัง โดยอัตโนมัติ >HTTPS)
http://testprojects.me
OR
http://www.testprojects.me
สำหรับข้อมูลเพิ่มเติม เช่น การเชื่อมต่อแอปพลิเคชันของคุณกับฐานข้อมูล โปรดดูเอกสารกรอบงาน Yii จากเว็บไซต์โครงการ Yii อย่างเป็นทางการ ลองใช้และแบ่งปันความคิดของคุณเกี่ยวกับ Yii หรือถามคำถามผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง