Ubuntu 安裝 Nginx + PHP + MySql

前言 #

因為一些需求,需要有個環境來執行 PHP,那就自己搞一個吧!

環境 #

使用 Hyper-V 安裝 Ubuntu Server 22.04 LTS

PHP #

    sudo apt-get updae
sudo apt-get install php php-fpm php-mysql
    sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6 php5.6-fpm php5.6-mysql php5.6-gd
    sudo apt-get purge 'php*'

Nginx #

  1. 安裝
sudo apt-get update
sudo apt-get install nginx
  1. 設定nginx的default
    使用 vim 修改
sudo vim /etc/nginx/sites-available/default

將 location 的部分,參考以下修改
fastcgi_pass 參考 /etc/php/5.6/fpm/pool.d/www.conf (listen)

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

儲存之後重啟 nginx

sudo service nginx restart

MySql #

  1. 安裝
sudo apt update && sudo apt install mysql-server
  1. 設定安全性(Security)
sudo mysql_secure_installation
  1. 新增使用者及建立資料庫權限
    # 在指令模式用 MySQL 的 root 帳號連接到 MySQL
mysql -u root -p

# 建立資料庫
mysql> CREATE DATABASE 'newdatabase';

# 建立 MySQL 新帳號
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';

# 建立 MySQL 新帳號 (可使用密碼連線登入)
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword'

# 刷新配置启用
mysql> FLUSH PRIVILEGES;

# 後給予新帳號 “newuser” 權限讀寫新資料庫 “newdatabase”:
mysql> GRANT ALL PRIVILEGES ON newdatabase.* TO 'newuser'@'localhost';
  1. 修改默认加密方式为 mysql_native_password
    #末尾增加 default_authentication_plugin=mysql_native_password
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 然後重新啟動 MySQL:
systemctl restart mysql