chusiang.php7
Ansibleロール: PHP 7(PHP-FPM)
Nginx用にPHP 7(php-fpm)をデプロイするためのAnsibleロールです。(itcraftsmanpl.php7から派生)
現在のPHP7バージョン:
- Debian & Ubuntu: 7.1.30
- CentOS: 7.1.30
対応しているLinuxディストリビューション:
- Ubuntu 18.04 (bionic)
- Ubuntu 16.04 (xenial)
- Debian 8 (jessie)
- Debian 9 (stretch)
- CentOS 6
- CentOS 7
要件
特になし。
ロール変数
使用可能な変数は以下の通りで、デフォルト値も示しています(defaults/main.yml
を参照):
#######
# 全て #
#######
# デバッグ用。
debug_mode: false
# allow_url_fopen
# デフォルト値: On
php_allow_url_fopen: "Off"
php_disable_functions: "exec,passthru,shell_exec,system,proc_open,popen"
php_display_errors: "Off"
php_error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
# PHPバージョンを公開しない。
# デフォルト値: On
php_expose_php: 'Off'
php_memory_limit: "1024M"
php_opcache_enable: 1
php_opcache_revalidate_freq: 0
php_post_max_size: "20M"
php_serialize_precision: 17
php_session_cookie_httponly: 1
php_session_use_strict_mode: 1
php_soap_wsdl_cache_dir: '/php/cache/wsdl'
php_timezone: "Asia/Taipei"
php_upload_max_filesize: "20M"
php_upload_tmp_dir: "/php/cache/upload_tmp"
# 注意: Debian 8では 'www-data' を使用する必要があります。
php_owner: 'www-data'
php_group: 'www-data'
###################
# Debian & Ubuntu #
###################
debian_php7_apt_repo: "http://packages.dotdeb.org"
debian_php7_apt_key: "https://www.dotdeb.org/dotdeb.gpg"
ubuntu_php7_ppa_repo: "ppa:ondrej/php"
# サードパーティリポジトリを有効または無効にするためのスイッチ。
#
# true: 公式リポジトリを使用。
# false: サードパーティリポジトリを使用。
apt_php_third_party_repo: true
apt_php_version: "7.1"
apt_php_packages:
- php{{ apt_php_version }}
- php{{ apt_php_version }}-cgi
- php{{ apt_php_version }}-cli
- php{{ apt_php_version }}-common
- php{{ apt_php_version }}-curl
- php{{ apt_php_version }}-fpm
- php{{ apt_php_version }}-gd
- php{{ apt_php_version }}-intl
- php{{ apt_php_version }}-json
- php{{ apt_php_version }}-mysql
#- php{{ apt_php_version }}-pear
##########
# CentOS #
##########
yum_php_version: "71u"
yum_php_packages:
- php{{ yum_php_version }}-cli
- php{{ yum_php_version }}-common
- php{{ yum_php_version }}-fpm
- php{{ yum_php_version }}-fpm-nginx
- php{{ yum_php_version }}-json
- php{{ yum_php_version }}-mysqlnd
- php{{ yum_php_version }}-opcache
- php{{ yum_php_version }}-pdo
#- php{{ yum_php_version }}-mbstring
#- php{{ yum_php_version }}-pear
# PHP-FPM FastCGI。
centos_php_fastcgi_listen: "/run/php-fpm/www.sock"
centos_nginx_fastcgi_server: "unix:{{ centos_php_fastcgi_listen }}"
注意
エラーメッセージが表示された場合は、nginxからwww-dataに
php_owner
とphp_group
を変更する必要があるかもしれません。ブラウザ:
エラーが発生しました。
error.log:
connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream ...
ソケットの
/target/path/
や設定ファイルはUbuntuとCentOSで異なるため、Nginxの設定に注意してください!Debian & Ubuntu:
- 設定:
/etc/php/7.0/fpm/php.ini
/etc/php/7.0/cli/php.ini
- ソケット:
/var/run/php/php7.0-fpm.sock
- 設定:
CentOS:
- 設定:
/etc/php-fpm.d/www.conf
/etc/php.ini
- ソケット:
/run/php-fpm/www.sock
- 設定:
v1.3.6以降、サードパーティリポジトリを有効または無効にするための
apt_php_third_party_repo
変数を追加しています。true
: サードパーティリポジトリを使用。false
: Debian/Ubuntuの公式リポジトリを使用。
依存関係
特になし。
Nginxの設定が必要な場合は、williamyeh.nginxロールを使用できます。
例 Playbook
- hosts: webservers
roles:
- { role: chusiang.php7 }
Dockerコンテナ
このリポジトリにはDocker化されたAnsibleが含まれており、自動ビルドメカニズムを通じて公的なDocker Hubに公開されています。
Docker Hub: chusiang/php7
イメージ
chusiang/php7:ubuntu-16.04
(最新)chusiang/php7:ubuntu-14.04
(EOL)chusiang/php7:centos6
使い方
$ docker run -it -v /src:/data chusiang/php7:ubuntu14.04 bash
[root@a68e807eec8f tmp]# php -v
PHP 7.0.7 (cli) (built: May 31 2016 11:36:12) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
履歴
- 2019/05/04 Ubuntu 14.04のサポートを終了しました。#24
ライセンス
MITライセンス(2015 - 2018)。詳細についてはLICENSEファイルを参照ください。
著者情報
プロジェクトについて
Deploy PHP 7 (php-fpm) for nginx on Ubuntu, Debian and CentOS. (forked from itcraftsmanpl.php7)
インストール
ansible-galaxy install chusiang.php7
ライセンス
mit
ダウンロード
2.3k
所有者
A system engineer, like @DevOpsTW, @ansible-tw, @vim-tw, docker and @linux-taiwan. Hope one day can build a "🦄 Unicorn company" like《The Phoenix Project》.