设置 Debian 或 Ubuntu

Ubuntu 源自 Debian,因此 Ubuntu 和 Debian 的安装过程相同。我们将使用 Debian 8 Jessie 和 Ubuntu 14.04 Server LTS。这两个版本的桌面版也可以采用相同的流程。

首先,为 Debian 和 Ubuntu 添加软件源。

Debian

在我们写这本书的时候,Debian 还没有提供 PHP 7 的官方软件源。因此,对于 Debian,我们将使用 dotdeb 仓库来安装 NGINX 和 PHP 7。执行以下步骤:

  1. 打开 /etc/apt/sources.list 文件并在文件末尾添加以下两行:

    deb http://packages.dotdeb.org jessie all
    deb-src http://packages.dotdeb.org jessie all
  2. 现在,在终端中执行以下命令:

    wget https://www.dotdeb.org/dotdeb.gpg
    sudo apt-key add dotdeb.gpg
    sudo apt-get update

前两个命令会将 dotdeb 存储库添加到 Debian,最后一个命令将刷新源缓存。

Ubuntu

在编写本书时,Ubuntu 官方软件仓库中也没有提供 PHP 7,因此我们将使用第三方软件仓库安装 PHP 7。执行以下步骤:

  1. 在终端运行以下命令:

    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update
  2. 现在,存储库已添加。让我们安装 NGINX 和 PHP 7。

    Debian 和 Ubuntu 的其余流程基本相同,因此我们不会像添加软件源部分那样单独列出。

  3. 要安装 NGINX,请在终端(Debian 和 Ubuntu)中运行以下命令:

    sudo apt-get install nginx
  4. 安装成功后,可以输入 Debian 或 Ubuntu 服务器的主机名和 IP 地址进行验证。如果我们看到类似下面的截图,那么我们的安装就成功了:

    image 2023 11 04 19 34 44 614

    以下是三个有用的 NGINX 命令的列表:

    • service nginx start:这将启动 NGINX 服务器

    • service nginx restart:这会重新启动 NGINX 服务器

    • service nginx stop:这将停止 NGINX 服务器

  5. 现在,是时候使用下面的命令安装 PHP 7 了:

    sudo apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-mcrypt php7.0-cli

    这将安装 PHP 7 和其他提到的模块。此外,我们还安装了用于命令行的 PHP Cli。要验证 PHP 7 是否已正确安装,请在终端中执行以下命令:php -v

  6. 如果显示 PHP 版本和其他一些详细信息,如下面的截图所示,则说明 PHP 已正确安装:

    image 2023 11 04 19 43 52 226
  7. 现在,我们需要配置 NGINX 以使用 PHP 7。首先,使用以下命令将 NGINX 默认配置文件 /etc/nginx/sites-available/default 复制到 /etc/nginx/sites-available/www.packt.com.conf 在终端中执行以下命令:

    cd /etc/nginx/sites-available
    sudo cp default www.packt.com.conf
    sudo ln –s /etc/nginx /sites-available/www.packt.com.conf /etc/nginx/sites-enabled/www.packt.com.conf

    首先,我们复制了默认配置文件,创建了另一个虚拟主机配置文件 www.packt.com.conf,然后在 sites-enabled 文件夹中创建了指向该虚拟主机文件的符号链接文件。

    为每个虚拟主机创建配置文件时,最好使用与域名相同的名称,以便其他人可以轻松识别。

  8. 现在,打开 /etc/nginx/sites-available/www.packt.com.conf 文件并添加或编辑突出显示的代码,如下所示:

    server {
        server_name your_ip:80;
        root /var/www/html;
        index index.php index.html index.htm;
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    }

    前面的配置并不是一个完整的配置文件。我们只复制了那些重要的、我们可能想要更改的配置选项。

    在前面的代码中,我们的网络根路径是 /var/www/html,我们的 PHP 文件和其他应用程序文件将放置在这里。在索引配置选项中,添加 index.php,这样如果 URL 中没有提供文件,NGINX 就可以查找并解析 index.php。

    我们为 PHP 添加了一个包含 fastcgi_pass 选项的位置块,其中包含指向 PHP7 FPM socket 的路径。在这里,我们的 PHP 在 Unix 套接字上运行,速度比 TCP/IP 快。

  9. 完成这些更改后,重启 NGINX。现在,为了测试 PHP 和 NGINX 是否配置正确,请在 webroot 文件夹根目录下创建 info.php 文件,并在其中输入以下代码:

    <?php
        phpinfo();
    ?>
  10. 现在,在浏览器中输入 server_ip/info.php,如果看到 PHP 配置页面,那么恭喜你!PHP 和 NGINX 都已正确配置。

如果 PHP 和 NGINX 在同一系统上运行,那么 PHP 将监听端口为 9000 的环回 IP。该端口可更改为任何其他端口。如果我们想在 TCP/IP 端口上运行 PHP,则在 fastcgi_pass 中输入 127.0.0.1:9000。

现在,让我们安装 Percona Server。Percona Server 是 MySQL 的分叉,为高性能而优化。我们将在第 3 章 "提高 PHP 7 应用程序性能" 中阅读更多有关 Percona Server 的内容。现在,让我们通过以下步骤在 Debian/Ubuntu 上安装 Percona Server:

  1. 首先,让我们在终端运行以下命令,将 Percona Server 仓库添加到系统中:

    sudo wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
    sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

    第一条命令将从 Percona 软件仓库下载软件包。第二条命令将安装下载的软件包,并在 /etc/apt/sources.list.d/perconarelease.list 中创建 percona-release.list 文件。

  2. 现在,通过在终端中执行以下命令来安装 Percona Server:

    sudo apt-get update
  3. 现在,发出以下命令来安装 Percona Server:

    sudo apt-get install percona-server-5.5

    安装过程将开始。下载需要一段时间。

    为了本书的目的,我们将安装 Percona Server 5.5。Percona Server 5.6 也可用,安装没有任何问题。

    安装过程中会询问 root 用户的密码,如下图所示:

    image 2023 11 04 20 57 47 820

    无需输入密码,但建议您输入密码。输入密码后,在下一个屏幕上再次输入密码。安装过程将继续。

  4. 安装完成后,可使用以下命令验证 Percona 服务器的安装:

    mysql –-version

    它将显示 Percona Server 的版本。如前所述,Percona Server 是 MySQL 的分叉,因此可以使用所有相同的 MySQL 命令、查询和设置。