如何部署的Debian 7 / Ubuntu的13 VPS nginx的和PHP-FPM Kohana的PHP应用程序

介绍

Kohana作为一个独立的包,每个副本形成一个新的基础,一个新的Web应用程序,使事情很容易部署。

在这个DigitalOcean文章中,按照我们以前关于安装和开始使用Kohana的文章,我们将看到如何准备一个VPS来部署基于Kohana的PHP Web应用程序 - 使用Debian 7 / Ubuntu 13作为我们的主机操作系统。

注:这是我们的Kohana系列,集中部署使用框架构建的应用程序的第三篇文章。 看第一部分,了解它的安装,检查出入门的Kohana 要查看有关理解框架的模块来构建Web应用程序,请与HMVC PHP5框架Kohana的构建Web应用程序

词汇表

基于PHP的Web应用程序部署

2. Web服务器

1. Nginx HTTP Server and Reverse-Proxy
2. Lighttpd
3. Apache

PHP处理器

1. mod_php
2. FastCGI
3. PHP-FPM

Kohana简介

关于我们的部署

6.准备系统Kohana应用程序部署

1. Updating the System
2. Installing Nginx
3. Installing MySQL 5
4. Installing PHP (PHP-FPM)

7.配置系统

1. Configuring PHP
2. Configuring Nginx

8.部署Kohana Web应用程序

1. Uploading the Code Base To The Server
2. Bootstrapping the Deployment (Installation)

基于PHP的Web应用程序部署

有几种不同的方法来部署基于PHP的Web应用程序,还有更多的子配置选项可用。

主要因素和差异是Web服务器的选择。 一些最流行的是:

  • Nginx的 HTTP服务器和反向代理

  • Lighttpd的 (或莱蒂)

  • Apache

也有可用于具有上述Web服务器进程服务 PHP文件几个不同的PHP处理器:

  • mod_php

  • FastCGI

  • PHP-FPM

Web服务器

Nginx HTTP服务器和反向代理

Nginx是一个非常高性能的Web服务器/(反向)-proxy。 它已经达到其受欢迎程度是由于重量轻,相对容易使用,并且易于扩展(与附加/插件)。 由于它的结构,它能够处理大量的哪些请求(几乎不受限制)的-这取决于你的应用程序或网站负载-可能是真的很难用一些其他的,旧的替代品来解决。 它可以被认为是提供静态文件,如图片,脚本或样式表选择工具。

Lighttpd

Lighttpd的是放纵的BSD许可一个非常迅速的Web服务器。 它的工作和操作方式比Apache更接近Nginx。 它处理请求的方式在内存和CPU占用空间上非常低。

Apache

Apache是​​一个久经考验,功能强大的Web服务器。 虽然它可能没有它的旧受欢迎程度,但Apache仍然提供许多新的竞争对手没有的东西。 它还带有很多模块,可用于扩展默认功能,并使Apache适合您的特定部署需求。

PHP处理器

Web服务器(大多数)没有设置为处理PHP脚本 - 也不是基于不同的编程语言的其他人。 为了做到这一点,他们依赖于外部库,每个操作在类似的外观,但实际上是非常不同的方式。 不同的Web服务器提供与每个服务器不同级别的集成 - 强烈建议作为负责部署应用程序的人员,执行彻底的研究,以更好地了解他们做什么以及如何做。

mod_php

很长一段时间,mod_php仍然是最流行的Apache模块和部署PHP Web应用程序的路由选择。 它的工作原理是将PHP处理器嵌入Apache中以运行PHP脚本。

优点:

  • 非常稳定和良好的测试。

  • 处理不涉及外部依赖性。

  • 非常高效。

  • 加载php.ini一次。

  • 支持.htaccess配置。

FastCGI

FastCGI通过将外部PHP处理器安装与Web服务器通过套接字连接来工作。 它是用做旧咋 CGI同样的事情更先进的方式。 FastCGI的可以被认为比使用mod_php的工作,因为它分开从web服务器进程的处理器(和隔离每个从可能有害攻击)的安全性。

优点:

  • 消除了对静态内容使用PHP处理器的需要。

  • 消除每个Apache进程使用PHP处理器的内存开销。

  • 通过划分服务器和处理器,提供额外的安全层。

PHP-FPM

PHP-FPM包括升级到使用PHP的FastCGI方式。 它带来了一些新的功能和一种全新的处理请求的方式 - 为了(特别是)更大的网站的利益。

优点:

  • 自适应过程产卵。

  • 优雅的处理器管理。

  • 与FastCGI相比,内存占用更小。

  • 比FastCGI更可配置。

Kohana简介

Kohana是一个HMVC(分层模型视图控制器)框架,提供几乎所有必要的工具开箱即用,以构建一个可以快速开发,部署和轻松开发的现代Web应用程序。

作为一个“轻”框架,Kohana是由散布在单个(应用程序)内的仔细结构化目录的文件组成的 - 这意味着每个kohana包可以被认为是一个Web应用程序(减去可能的外部依赖)。

Kohana的方式,通过设计,使这个框架非常友好的部署。

关于我们的部署

在本文中,我们将使用Nginx加上PHP-FPM来部署,因为提供的功能 - 以及它们的受欢迎程度。 我们的数据库选择这里是MySQL; 但是,您应该选择并使用另一个(例如MariaDB)。 不要忘记您需要迁移数据库 - 有关详细信息,请参阅结束部分。

为Kohana应用程序部署准备系统

我们将使用一个新实例化的Ubuntu 13 VPS。 出于各种原因,强烈建议您在已经活动且正在运行的服务器设置上执行这些操作之前尝试一切。

更新系统

我们将从将虚拟服务器的默认应用程序工具集更新为其最新版本。

运行以下命令以执行此任务:

aptitude    update
aptitude -y upgrade

安装Nginx

执行以下使用软件包管理器安装Nginx的aptitude

aptitude -y install nginx

执行以下命令启动服务器:

service nginx start

您可以访问http://[your droplet's IP adde.]/测试Nginx的安装。 您应该看到默认的欢迎屏幕。

安装MySQL 5

我们将再次使用aptitude包管理器安装MySQL和其他应用程序。 运行以下命令下载并安装MySQL。

记住:在安装过程中,您将与一对夫妇的有关root密码问题提示。

aptitude -y install mysql-server mysql-client

通过引导一切mysql_secure_installation

# Run the following to start the process
mysql_secure_installation

# Enter the root password you have chosen during installation    
# Continue with answering the questions, confirming all.
# Ex.:
# Remove anonymous users? [Y/n] Y
# Disallow root login remotely? [Y/n] Y
# ..
# .     

运行以下命令重新启动并检查MySQL安装的状态:

service mysql restart
# mysql stop/waiting
# mysql start/running, process 25012

service mysql status
# mysql start/running, process 25012

安装PHP(PHP-FPM)

要使用Nginx处理PHP页面,我们将使用PHP-FPM。 运行以下命令以下载并安装应用程序包:

aptitude -y install php5 php5-fpm php5-mysql

这也将安装PHP5公地

配置系统

在安装必要的工具之后,是时候让我们的服务器准备部署PHP Web应用程序通过最后配置修改。

配置PHP

我们将与PHP的默认配置文件来工作php.ini ,并使用文本编辑器编辑它nano作出一些小的改动。

运行以下命令以使用nano打开文件:

nano /etc/php5/fpm/php.ini

向下滚动文件,找到行;cgi.fix_pathinfo=1 修改它类似于以下,以应用程序路径安全处理:

# Replace ;cgi.fix_pathinfo=1 with:
cgi.fix_pathinfo=0

按CTRL + X保存并退出,然后用Y确认。

配置Nginx

由于在本文中,我们正在考虑部署单个Web应用程序,因此我们进行了修改和配置选择。 为了使用Nginx的承载多个应用程序,您将需要服务器模块的用户。 为了更多地了解他们,请 。

让我们编辑默认的Nginx网站配置。 运行以下命令以使用nano打开文件:

nano /etc/nginx/sites-available/default

复制并粘贴以下内容:

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    # Set the default application path root
    # We are using my_app to host the application
    root /var/www/my_app;
    index index.php;

    # Replace the server_name with your own
    server_name localhost;

    location /
    {
        try_files $uri /index.php?$args;

        if (!-e $request_filename)
        {
            rewrite ^/(.*)$ /index.php/$1 last;
        }
    }

    location ~ /\.
    {
        deny  all;
    }

    location ~ \.php$
    {
        try_files $uri = 404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

按CTRL + X保存并退出,然后用Y确认。

创建并进入应用程序部署目录/var/www

mkdir /var/www
cd /var/www

测试配置并重新启动Nginx以使其生效:

# Test the configurations
nginx -t

# Restart the server
service nginx restart

部署Kohana Web应用程序

根据配置,我们准备好部署我们的应用程序。 该过程将包括两个主要步骤:

  1. 将代码库上传到服务器

  2. 修改bootstrap.php ,以确保其设置正确。

将代码库上传到服务器

您可以使用SFTP或图形工具(如FileZilla)安全地传输和管理远程文件。

要了解与SFTP工作,请查看文章: 如何使用SFTP

要了解FileZilla中,请查看文章的主题: 如何使用FileZilla中

注:如果您选择使用FileZilla中,一定要设置/var/www为默认的目录(这应该为您节省一些时间)。

在这个例子中,我们将使用默认(样例)Kohana应用程序。

下载并准备Kohana:

# Remember: The following commands assume that your current
#           working directory is set as /var/www/

wget https://github.com/kohana/kohana/releases/download/v3.3.1/kohana-v3.3.1.zip

# You might need to install *unzip* before extracting the files    
aptitude install -y unzip 

# Unzip and extract the files
unzip kohana-v3.3.1.zip -d my_app

# Remove the zip package
rm -v kohana-v3.3.1.zip

# Enter the application directory
cd my_app

引导部署(安装)

运行以下命令,开始使用nano编辑配置文件:

nano application/bootstrap.php

修改您的时区:

# Find date_default_timezone_set and set your timezone
date_default_timezone_set('Europe/London');

设置您的区域设置:

# Find setlocale and set your locale
setlocale(LC_ALL, 'en_UK.utf-8');

查找结束编辑base_url相匹配的安装

# Find base_url and set the base application directory
# Relative to the base Apache directory (i.e. /var/www/my_app)

Kohana::init(array(
    'base_url' => '/',
));

确保启用所有必需的模块:

# Find Kohana::modules and uncomment them

Kohana::modules(array(
    'auth'       => MODPATH.'auth',       // Basic authentication
    'cache'      => MODPATH.'cache',      // Caching with multiple backends
    'codebench'  => MODPATH.'codebench',  // Benchmarking tool
    'database'   => MODPATH.'database',   // Database access
    'image'      => MODPATH.'image',      // Image manipulation
    'orm'        => MODPATH.'orm',        // Object Relationship Mapping
    'oauth'      => MODPATH.'oauth',      // OAuth authentication
    'pagination' => MODPATH.'pagination', // Paging of results
    'unittest'   => MODPATH.'unittest',   // Unit testing
    'userguide'  => MODPATH.'userguide',  // User guide and API documentation
));

按CTRL + X保存并退出,然后用Y确认。

将缓存和日志目录设置为可写:

sudo chmod -R a+rwx application/cache
sudo chmod -R a+rwx application/logs

就这样! 现在你应该有你的Kohana Web应用程序准备好运行。

记住:你不应该忘记从开发机器或其他服务器应用程序的数据(如MySQL服务器数据库)迁移到Droplet。 要了解这样做,看看如何迁移两台服务器之间MySQL数据库以及更多信息相关评论。

:提交OS Tezer
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏