18.04/20.04/22.04 测试通过

原理一致, 不过不同系统支持的版本不同, 详情见 https://launchpad.net/~ondrej/+archive/ubuntu/php 现在 Ondrej PPA 支持的平台是 Hirsute (21.04), Groovy (20.10), Focal (20.04), Bionic (18.04) 这几个(2021 年 11 月)

本文基于阿里云服务器手动安装(由于服务器配置比较低,之前一直用一键安装,CPU 会爆到 99%),服务器配置(1核、1G、50M),安装列表:

  1. Ubuntu 18.04
  2. Nginx latest
  3. PHP 7.4
  4. MySQL 5.7/Mysql 8.0

安装 Nginx

安装文档参考 : Linux Package At Ubuntu

1、首先添加 nginx_signing.key(必须,否则出错)

  1. # 安装必要工具
  2. $ sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
  3. # 导入官方授权key
  4. $ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
  5. | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
  6. # 验证授权key
  7. $ gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

2、添加 Nginx 官方提供的源

  1. # 加入源列表 @ 稳定版
  2. $ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
  3. http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
  4. | sudo tee /etc/apt/sources.list.d/nginx.list
  5. # 加入源列表 @ 主线版本, 我的理解为开发版
  6. $ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
  7. http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
  8. | sudo tee /etc/apt/sources.list.d/nginx.list

3、更新源并安装 Nginx

  1. $ sudo apt-get update
  2. $ sudo apt-get install nginx

安装 Nginx 完成后可查看版本号,输入:

  1. $ /usr/sbin/nginx -v

至此 Nginx 安装完成,此时访问 IP 可以看到 Welcome Nginx 的界面。

安装 PHP

本文通过Ubuntu PPA 来安装PHP7.

1、添加 PPA

  1. $ sudo apt-get install python-software-properties software-properties-common
  2. $ sudo add-apt-repository ppa:ondrej/php
  3. $ sudo apt-get update

2、安装PHP7以及所需的一些扩展

  1. $ sudo apt-get install php7.4-fpm php7.4-mysql php7.4-common php7.4-curl php7.4-cli php7.4-mcrypt php7.4-mbstring php7.4-dom

3、配置PHP7

打开 php.ini 配置文件:

  1. $ sudo vim /etc/php/7.4/fpm/php.ini

找到cgi.fix_pathinfo选项,去掉注释;,然后将值设置为0:

  1. cgi.fix_pathinfo=0

Note:启动后重启 php7.4-fpm ,输入: sudo service php7.4-fpm restart

Nginx 配置

1、在 /etc/nginx/nginx.conf 文件中的第一行查看你的 Nginx 用户

  1. $ less /etc/nginx/nginx.conf

2、修改用户和组

PHP7 默认的用户和组是www-data。 如果你的 Nginx 用户名也是www-data,那么不需要做下面的修改。 如果你的 Nginx 用户名是 nginx,那么你可以在/etc/nginx/nginx.conf 文件中将它修改成www-data 这里的目的是统一运行的用户名, 你可以使用你喜欢的用户名作为运行用户

  1. $ sudo vi /etc/nginx/nginx.conf

3、重启 Nginx 服务

  1. $ sudo service nginx reload

安装 MySQL

  1. $ sudo apt-get install mysql-server-5.7 mysql-client-5.7

途中会提示设置 MySQL 的密码,安装好后:

  1. $ mysql -uroot -p

然后输入刚刚设置的密码,能成功进入即成功安装。

FAQ

PPA 下载缓慢

Ubuntu 的 PPA(Personal Package Archives)可以下载其他用户上传的编译好的软件,但下载速度有时实在太慢,又不像软件源一样可以使用镜像, 使用中科大提供的反向代理可以提高 PPA 的下载速度。在 /etc/apt/sources.list.d 目录下可以找到每一个 PPA 添加的 list 文件,把其中的 http://ppa.launchpad.net 替换为 https://launchpad.proxy.ustclug.org
USTC 镜像网站 上可以查看反向代理列表,像 docker、npm 等等都可以使用 USTC 的反向代理

参考