Ubuntu20.04配置PHP7.4+Nginx+Mysql

979 阅读1分钟

安装PHP7.4

1.更新apt

sudo apt update

2.推荐增加php ppa,安装完后再次更新一下apt

sudo add-apt-repository ppa:ondrej/php
sudo apt update

3. 安装php7.4

sudo apt install php7.4
nginx需要安装fpm扩展 sudo apt install php7.4-fpm

一些常用的扩展 sudo apt install php7.4-dev php7.4-mysql php7.4-curl php7.4-json php7.4-mbstring php7.4-xml php7.4-intl php7.4-yaml php7.4-zip
或使用 sudo apt install php7.4-{dev,mysql,curl,json,mbstring,xml,intl,yaml,zip}

安装Nginx

这里比较容易,直接 sudo apt install nginx ubuntu20.04有些自带apache2并正在运行,只需要停止apache2并启动nginx即可,访问ip,可以查看到欢迎页面(虽然这个页面是apache)即可

image.png

image.png

Nginx通过php-fpm与php通信,所以需要配置一下nginx的配置文件,引入fpm即可,可以去网上搜一下,这里放一个我自己在用的配置,重点就是fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

server {
	listen 80;
	listen [::]:80;

	root /home/scx/wwwroot/zentaopms/www/;
	autoindex on;

	index index.html index.php;

	server_name pms74.scx.oop.cc;

        location / {
          index  index.htm index.html index.php;
          try_files  $uri  /index.php$uri;

          if (!-e $request_filename) {
                   #一级目录
                  rewrite ^/(.*)$ /index.php/$1 last;
                   #二级目录
                   rewrite ^/./(.*)$ /MYAPP/index.php/$1 last;
             }
        }

        #pathinfo设置
        location ~ \.php($|/) {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param   PATH_INFO $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

安装Mysql

1. 更新apt

sudo apt update

2.安装mysql-server

sudo apt install mysql-server

3.安装mysql-client

sudo apt install mysql-client

4.运行mysql并运行初始化安全脚本

sudo service mysql start
sudo mysql_secure_installation 系统要求您配置这个玩意来测试mysql密码强度并提高安全性,输入y image.png 三个策略,低中高,0 1 2里选一个就行 image.png 输入并再次输入你的密码

image.png

如果报如下错误,sudo进入mysql并更新密码即可。

image.png sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';