今天在這裡要記錄如何在Ubuntu 18.04 安裝Nginx、MySQL、PHP 7.4
先安裝 apt 套件管理系統
sudo apt install software-properties-common
[Nginx]
首先加入Nginx源
sudo add-apt-repository ppa:ondrej/nginx
或是
sudo add-apt-repository ppa:ondrej/nginx-mainline
安裝Nginx
sudo apt-get install nginx
配置Nginx
配置Nginx的位置為 /etc/nginx/sites-available
[MySQL]
安裝MySQL
sudo apt-get install mysql-server mysql-client
# mysql-server 是 mysql的核心,就是mysql的server端,沒有server就算有client端也無法使用。
# mysql-client 是 mysql-server的其中一個client端,還有其他的像是 phpmyadmin 或是 mysqldump、mysqlslap ... 等工具。
安裝好之後
sudo service mysql status 可以查看 mysql 目前運行狀態
設置MySQL
sudo mysql_secure_installation
輸入完後會要你輸入root的密碼
登入MySQL
mysql -u 你的使用者名稱 -p
然後輸入使用者密碼
[設定新使用者/更改使用者設定]
更改使用者密碼
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
User | Host | plugin |
root | localhost | auth_socket |
mysql.session | localhost | mysql_native_password |
mysql.sys | localhost | mysql_native_password |
debian-sys-maint | localhost | mysql_native_password |
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要設置的密碼';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你設置的密碼';
mysql> FLUSH PRIVILEGES;
mysql> exit;
sudo service mysql restart
設定新使用者
mysql> USE mysql;
mysql> CREATE USER '你的使用者名稱'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO '你的使用者名稱'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='你的使用者名稱';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ sudo service mysql restart
要是更改密碼出現 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 錯誤訊息
先登入 mysql 查詢密碼長度規則 與 密碼驗證原則
mysql> SELECT @@validate_password_length;
mysql> SELECT @@validate_password_policy;
底下是 MySQL 密碼驗證原則對照表
Policy Value | Test Performed |
0/Low | length |
1/Medium | length; numeric, lowercase/uppercase, and special characters |
2/Strong | length; numeric, lowercase/uppercase, and special characters; dictionary file |
通常會遇到這個錯誤 Policy Value 都是在1或2
正常來說會設置在1
所以密碼內要包含 數字、大寫字母、小寫字母和特殊符號
[PHP]
加入PHP源
sudo add-apt-repository ppa:ondrej/php
安裝php7.4
在terminal輸入
sudo apt-get update
sudo apt-get install php7.4-fpm php7.4-cli php7.4-mysql php7.4-gd php7.4-tidy php7.4-xmlrpc
安裝完成後
php -v 查看 php 版本
可以輸入 sudo service php7.4-fpm service 查看運行狀態
設置Nginx去讀PHP檔案
1. /etc/php/7.4/fpm/php.ini 裡面更改 cgi.fix_pathinfo 為 0
結束後重啟php-fpm
sudo service php7.4-fpm restart
2. 修改檔案:/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
結束後重啟nginx
sudo service nginx restart