返回首页 - Notes - 2016

使用 Mina 部署 PHP 程序


部署配置

整个配置过程和部署 Rails 没什么区别,大体的流程就这么几个

  1. 本地项目设置好部署所需的配置信息
  2. 上传项目到公网代码仓库
  3. 服务器上配置好 NGINX 等服务
  4. 本地执行部署即可

只是需要注意给某些文件夹赋予可写权限,不然上传文件啥的就用不了

以部署 WordPress 为例,下面是具体的配置信息

主部署文件:config/deploy.rb

require 'mina/multistage'
require 'mina/git'
require 'mina/rails'

set :repository, 'git@git.coding.net:ruchee/wordpress-demo.git'

set :shared_dirs,  fetch(:shared_dirs, []).push('wp-content/uploads')
set :shared_files, fetch(:shared_files, []).push('wp-config.php')

task setup: :environment do
end

task deploy: :environment do
  deploy do
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'deploy:cleanup'

    on :launch do
      in_path(fetch(:current_path)) do
        command %{chmod -R a+rw wp-content}
      end
    end

  end
end

生产环境部署配置:config/deploy/prod.rb

set :domain, 'ruchee@sites.ruchee.com'
set :deploy_to, '/var/www/wordpress'
set :branch, 'master'

服务器配置

以部署 WordPress 为例

  1. 安装基础软件
    sudo apt-get install nginx postfix php5-cli php5-fpm php5-mysql php5-mcrypt php5-curl php5-gd mysql-server mysql-client
    
  2. 创建数据库
    CREATE DATABASE wordpress;
    CREATE USER wpuser@localhost IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost;
    FLUSH PRIVILEGES;
    
  3. 设置目录权限
    sudo mkdir /var/www
    sudo chown -R git:git /var/www
    

date:2016-11-10、2016-11-23