# 安裝LNMP (HW06) ***LNMP(LEMP):Nginx+PHP+MariaDB*** ### 1. 更新系統 ``` $ sudo apt update && sudo apt upgrade ``` ![](https://i.imgur.com/ujgEgWn.png) ![](https://i.imgur.com/BU8ht61.png) ![](https://i.imgur.com/njKYzAz.png) ### 2. 安装Nginx 下載並安裝Nginx 確認Nginx正在運作 ``` $ sudo apt install nginx $ sudo systemctl status nginx ``` ![](https://i.imgur.com/1trezky.png) ![](https://i.imgur.com/QQXwpD0.png) ![](https://i.imgur.com/NWLW6Rd.png) ![](https://i.imgur.com/OdhK8G1.png) ***補充: 查Ip address*** ``` $ ip addr show ``` ![](https://i.imgur.com/Np2X7FR.png) - [ ] *教室電腦ip* ![](https://i.imgur.com/fUbQT3V.png) 在瀏覽器檢查Nginx ![](https://i.imgur.com/PBXEDpV.png) - [ ] *教室電腦ip* ![](https://i.imgur.com/JZzoZeK.png) ### 3. 安装MariaDB 下載並安裝MariaDB ``` $ sudo apt install mariadb-server mariadb-client -y ``` ![](https://i.imgur.com/joljSkS.png) ![](https://i.imgur.com/vNUz2wj.png) 確認MariaDB正在運作 ``` $ sudo systemctl status mariadb ``` ![](https://i.imgur.com/R1O2f5O.png) ? ``` $ sudo mysql_secure_installation ``` ![](https://i.imgur.com/fP8K3FI.png) ![](https://i.imgur.com/Eqh2Hm9.png) ![](https://i.imgur.com/skZlNYB.png) ? ``` $ sudo mysql -u root -p ``` ![](https://i.imgur.com/5NJGtts.png) ### 4. 安装PHP 下載並安裝PHP ``` $ sudo apt install php8.1 php8.1-fpm php8.1-mysql php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl ``` ![](https://i.imgur.com/4rvrBfu.png) ![](https://i.imgur.com/wpa4BDp.png) ![](https://i.imgur.com/sLOSfbD.png) 啟動PHP-FPM ? ``` $ sudo systemctl start php8.1-fpm $ sudo systemctl enable php8.1-fpm ``` ![](https://i.imgur.com/Wvz9Ce2.png) 確認PHP正在運作 ``` $ sudo systemctl status php8.1-fpm ``` ![](https://i.imgur.com/1NydYeH.png) ? ``` $ sudo nano /etc/php/8.1/fpm/php.ini ``` 在php.ini中修改以下數值 ``` upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 600 max_input_vars = 3000 max_input_time = 1000 ``` 重新啟動PHP-FPM ``` $ sudo systemctl restart php8.1-fpm ``` ![](https://i.imgur.com/qvwqu2C.png) ### 5. 配置Nginx虛擬主機 ? ``` $ sudo nano /etc/nginx/sites-enabled/default ``` 將default裡的server{}編輯成如下方所示 ``` server { listen 80; root /var/www/html; index index.php; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } } ``` 確認Nginx設定是否正常 重新啟動Nginx和PHP-FPM ``` $ nginx -t $ sudo systemctl restart nginx php8.1-fpm ``` ![](https://i.imgur.com/WS1NgKL.png) ### 6. Nginx PHP處理 ***補充: 拒絕不符權限的操作*** ``` $ sudo chmod 777 /var/www/html -R ``` ![](https://i.imgur.com/K974Ynp.png) 建基本PHP基本資訊頁面 ``` $ echo "<?php phpinfo(); ?>" > /var/www/html/info.php ``` ![](https://i.imgur.com/VwzTjAN.png) 瀏覽器開啟PHP資訊頁面 ![](https://i.imgur.com/dd44GkD.png) - [ ] *教室電腦ip* ![](https://i.imgur.com/IyF5m6I.png) ### 檢查: IP和PHP版本 ![](https://i.imgur.com/yO0jJzY.png) Nginx版本 ![](https://i.imgur.com/TgWZwMJ.png) MariaDB版本 ![](https://i.imgur.com/42XZR00.png) ### 參考資料: * https://cloudcone.com/docs/article/how-to-install-lemp-stack-on-ubuntu-22-04/ * https://www.linuxbabe.com/ubuntu/install-lemp-stack-ubuntu-22-04-server-desktop