ENV
- Ubuntu 22.04 Server
- UFW status is inactive
Step
$ sudo apt update
install nginx
- ตอนนี้มันจะได้ nginx version: nginx/1.18.0 (Ubuntu)
$ sudo apt install nginx
$ sudo nginx -v
- ทดสอบ
http://server_domain_or_ip
- พาธไฟล์ root ของ nginx
/var/www/html/
install MySQL
- ตอนนี้มันจะได้ mysql Ver 8.0.31-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
$ sudo apt install mysql-server
$ sudo mysql --version
install PHP สำหรับ NGINX
- ลง แบบ FPM และ php-mysql ค่าเริ่มต้นจะเป็นของ php8.1 นะ
$ sudo apt install php8.1-fpm php-mysql
- ติดตั้ง lib ที่จำเป็น
sudo apt install php8.1-bcmath php8.1-bz2 php8.1-curl php8.1-intl php8.1-mbstring php8.1-mysql php8.1-readline php8.1-xml php8.1-zip php8.1-gd php8.1-gmp
- ทดสอบรัน PHP บน NGINX ของเราโดย สร้างไฟล์ info.php ก่อน
$ nano /var/www/html/info.php
- แก้ไขคอนฟิก default ให้รัน php ได้ซะก่อน (ก่อนแก้ไขอย่าลืมสำรองไฟล์ไว้ก่อน)
$ sudo nano /etc/nginx/sites-available/default
- เปิด comment ที่เค้า comment เกี่ยวกับการเปิดใช้งาน php ไว้ หรือ เพิ่ม คอนฟิกประมาณนี้
# Add index.php to the list if you are using PHPindex index.html index.htm index.nginx-debian.html index.php;
location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;}location ~ /\.ht {deny all;}
- โดยใส่โค้ดแบบนี้
<?php phpinfo(); ?>
- ทดสอบ ถ้าสำเร็จ info จะมี หัวข้อ PDO, และ MySQLi คือ lib mysql สำหรับ php ใช้ด้วยกันได้ ถ้าไม่มี หัวข้อ MySQLi แสดงว่า php-mysql เวอร์ชั่นไม่ตรงกันจึงใช้ไม่ได้
http://server_domain_or_ip/info.phpสร้าง virtual host สำหรับ nginx
$ sudo mkdir /var/www/your_domain
$ sudo chown -R $USER:$USER /var/www/your_domain
$ sudo nano /etc/nginx/sites-available/your_domain
- ใส่เนื้อหาประมาณนี้
- จากนั้นเปิดใช้งาน virtual host config ไฟล์อันนี้
$ sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled
- ปิด host default
$ sudo unlink /etc/nginx/sites-enabled/default
- *** ถ้าต้องการเอา vhost default กลับ
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled
- ทดสอบ syntax config site ถูกต้อง
$ sudo nginx -t
- restart nginx
$ sudo /etc/init.d/nginx [reload|restart] หรือ $ sudo systemctl [reload|restart] nginx
- ตอนนี้ root vhost ใหม่เราจะอยู่ที่ประมาณนี้ เอาไฟล์ php ไปรันได้เลย
/var/www/your_domain
Add
- ถ้าต้องการใช้ php8.0 ตั้งแต่เริ่มให้ add repo แล้ว update ก่อน
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
- เราสามารถกำหนดให้ vhost แต่ละอันใช้ php เวอร์ชั่นต่างๆ ได้ตามต้องการ
- แค่เราลง php เวอร์ชั่นที่เราต้องการเพิ่มใน server เครื่องนั้น และ คอนฟิก vhost
- fastcgi_... /php8.1-fpm.sock; เปลี่ยนเป็น เวอร์ชั่นที่เราลงเพิ่ม แล้ว restart nginx ซักรอบ
Ref
- https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-22-04
No comments:
Post a Comment