在 Debian 8 上使用 PHP(作为 PHP-FPM)和 MariaDB (LEMP) 安装 Nginx在 Debian 8 上使用 PHP(作为 PHP-FPM)和 MariaDB (LEMP) 安装 Nginx在 Debian 8 上使用 PHP(作为 PHP-FPM)和 MariaDB (LEMP) 安装 Nginx在 Debian 8 上使用 PHP(作为 PHP-FPM)和 MariaDB (LEMP) 安装 Nginx
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Debian 8 上使用 PHP(作为 PHP-FPM)和 MariaDB (LEMP) 安装 Nginx

本教程适用于这些操作系统版本

  • Debian 7(喘息)

在此页

  1. 初步说明
  2. 更新系统
  3. 安装 MariaDB(作为 MySQL 的替代品)
  4. 安装 Nginx
  5. 安装 PHP
  6. 配置 nginx
  7. 在 PHP 中获得 MySQL/MariaDB 支持
  8. 让 PHP-FPM 使用 TCP 连接(可选)
  9. 虚拟机映像
    1. SSH登录
    2. MariaDB 登录

    本教程将向您展示在 Debian 8 上安装 Nginx Web 服务器(PHP-FPM)和 MariaDB 作为 MySQL 的替代品。此设置通常称为 LEMP=Linux + nginx(发音为 \engine x\)+ MySQL + P惠普)。

    初步说明

    在本教程中,我使用 IP 地址为 192.168.1.100 的主机名 server1.example.com。这些设置可能因您而异,因此您必须在适当的地方替换它们。您应该有一个 Debian 8 服务器,我将使用 Debian minimal 服务器作为本教程的基础系统。

    更新系统

    建议在开始 Nginx 设置之前更新包列表并安装任何待处理的更新。运行以下命令以安装任何挂起的更新。

    apt-get update
    apt-get upgrade -y

    稍后我将使用 nano 编辑器来编辑配置文件。可以使用以下命令安装 Nano:

    apt-get -y install nano 

    安装 MariaDB(作为 MySQL 的替代品)

    为了安装 MariaDB,我们运行:

    apt-get -y install mariadb-server mariadb-client

    系统将要求您提供 MariaDB root 用户的密码 - 此密码对用户 [email 有效,因此我们以后不必手动指定 MariaDB root 密码:

    MariaDB \root\ 用户的新密码:<-- yourrootsqlpassword
    MariaDB \root\ 用户的新密码:<-- yourrootsqlpassword

    安装 Nginx

    Nginx 可作为 Debian Jessie 的软件包使用,我们可以按如下方式安装它:

    apt-get -y install nginx

    之后启动 Nginx:

    systemctl start nginx.service

    在浏览器中输入您的 Web 服务器 IP 地址或主机名(例如 http://192.168.1.100),您应该会看到以下页面:

    Debian 8 上的默认 nginx 文档根目录是 /var/www/html。

    安装PHP

    我们可以通过 PHP-FPM 使 PHP5 在 nginx 中工作(PHP-FPM(FastCGI 进程管理器)是一种替代的 PHP FastCGI 实现,具有一些对任何规模的站点都有用的附加功能,尤其是繁忙的站点)我们安装如下:

    apt-get -y install php5-fpm

    PHP-FPM 是一个守护进程(带有 systemd 单元文件 php5-fpm.service),它在套接字 /var/run/php5-fpm.sock 上运行 FastCGI 服务器。

    配置nginx

    nginx的配置在我们现在打开的/etc/nginx/nginx.conf中:

    nano /etc/nginx/nginx.conf

    配置简单易懂(你可以在这里了解更多信息:http://wiki.nginx.org/NginxFullExample2)

    首先将 keepalive_timeout 设置为合理的值,如 2 秒:

    [...]
        keepalive_timeout   2;
    [...]

    虚拟主机在服务器 {} 容器中定义。默认虚拟主机在文件 /etc/nginx/sites-available/default 中定义 - 让我们按如下方式修改它:

    nano /etc/nginx/sites-available/default
    [...]
    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

    server_name _;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
    deny all;
    }
    } [...]

    服务器名称 _;使它成为默认的通用虚拟主机(当然,您也可以在此处指定一个主机名,例如 www.example.com)。

    我将 index.php 添加到索引行。根/var/www/html;表示文档根目录是目录/var/www/html。

    PHP 的重要部分是 location ~ \.php${} 节。如上所示取消注释以启用它。

    现在保存文件并重新加载 Nginx:

    systemctl reload nginx.service

    接下来打开/etc/php5/fpm/php.ini...

    nano /etc/php5/fpm/php.ini

    ...并设置 cgi.fix_pathinfo=0:

    [...]
    ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
    ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
    ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
    ; http://php.net/cgi.fix-pathinfo
    cgi.fix_pathinfo=0
    [...]

    重新加载 PHP-FPM:

    systemctl reload php5-fpm.service

    现在在文档根目录 /var/www/html/ 中创建以下 PHP 文件:

    nano /var/www/html/info.php
    <?php
    phpinfo();
    ?>

    现在我们在浏览器中调用该文件(例如 http://192.168.1.100/info.php):

    如您所见,PHP5 正在运行,并且它通过 FPM/FastCGI 运行,如服务器 API 行所示。如果进一步向下滚动,您将看到所有已在 PHP5 中启用的模块。那里没有列出 MySQL,这意味着我们还没有在 PHP 中支持 MariaDB/MySQL。

    在 PHP 中获取 MySQL/MariaDB 支持

    要在 PHP 中获得 MySQL 支持,我们可以安装 php5-mysqlnd 包。最好安装一些其他 PHP 模块,因为您的应用程序可能需要它们。您可以像这样搜索可用的 PHP 模块:

    apt-cache search php5

    选择你需要的并像这样安装它们:

    apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-intl php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    APCu 是一个免费开放的 PHP 操作码缓存器,用于缓存和优化扩展 PHP opcache 的 PHP 中间代码。它取代了 APC 缓存。它类似于其他 PHP 操作码缓存器,例如 eAccelerator 和 Xcache。强烈建议安装其中之一以加速您的 PHP 页面。

    APCu 可以按如下方式安装:

    apt-get install php5-apcu

    现在重新加载 PHP-FPM:

    systemctl reload php5-fpm.service

    现在在浏览器中重新加载 http://192.168.1.100/info.php 并再次向下滚动到模块部分。你现在应该在那里找到很多新模块,包括 MySQL 模块:

    使 PHP-FPM 使用 TCP 连接(可选)

    默认情况下,PHP-FPM 正在监听套接字 /var/run/php5-fpm.sock。也可以使 PHP-FPM 使用 TCP 连接。为此,打开 /etc/php5/fpm/pool.d/www.conf...

    nano /etc/php5/fpm/pool.d/www.conf

    ...并使 listen 行如下所示:

    [...]
    ;listen = /var/run/php5-fpm.sock
    listen = 127.0.0.1:9000
    [...]

    这将使 PHP-FPM 侦听 IP 127.0.0.1(本地主机)上的端口 9000。确保您使用的端口未在您的系统上使用。

    然后重新加载 PHP-FPM:

    systemctl reload php5-fpm.service

    接下来检查您的 Nginx 配置和所有虚拟主机并更改行 fastcgi_pass unix:/var/run/php5-fpm.sock;到 fastcgi_pass 127.0.0.1:9000;,例如像这样:

    nano /etc/nginx/sites-available/default
    [...]
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_pass 127.0.0.1:9000;
    } [...]

    最后,重新加载 Nginx:

    systemctl reload nginx.service

    虚拟机映像

    本教程以 OVA/OVF 格式的虚拟机可供 Howtoforge 订阅者使用。 VM 格式与 VMWare 和 Virtualbox 兼容,可能还有其他一些可以导入此格式的工具。您可以在顶部的右侧菜单中找到下载链接。单击文件名开始下载。

    VM 的登录详细信息为:

    SSH登录

    用户名:root
    密码:howtoforge

    登录

    用户名:root
    密码:howtoforge

    请在首次启动后更改密码。

    VM 配置为静态 IP 192.168.1.100,可以在文件 /etc/network/interfaces 中更改 IP。

    链接

    • nginx:http://nginx.net/
    • nginx 维基:http://wiki.codemongers.com/Main
    • PHP:http://www.php.net/
    • PHP-FPM:http://php-fpm.org/
    • MariaDB:https://mariadb.org/
    • Debian:http://www.debian.org/

©2015-2025 艾丽卡 support@alaica.com