LoginSignup
1
1

More than 5 years have passed since last update.

UbuntuにphpbrewでPHPをインストールしてNginxで動かす

Posted at

環境

  • Ubuntu 16.10
  • Nginxで動かしたい
  • testuserというユーザで作業している

phpbrewのインストール

phpbrewのgithubページにインストール方法が書いてあります。

php-5.6.30のインストール

最初、phpbrew install 5.6.30 +allをやろうとして延々エラーが出て、調べて必要なものをインストールしてを繰り返しており、時間がかかりました。ふと+defaultでいいかと思ってやったら、とりあえずインストールは問題なくできました。しかし、+defaultだけだと、fpmなどがなかったので、改めて下記でインストールしてみました。

$ sudo phpbrew -d install 5.6.30 +default +dbs +mb +fpm +debug +cgi +hash +json

問題なく完了しました。同じバージョンをインストールする際に、一度削除した方がいいのかなと思いましたが、消さずにインストールして大丈夫でした。php.iniも上書きされました。

デフォルトのバージョンを5.6.30にします。

$ phpbrew switch php-5.6.30

fpmの設定

初期状態だとfpm起動時にエラーがでました。下記を実施したら、スタートしました。

php-fpm.confの設定

$ sudo vim ~/.phpbrew/php/php-5.6.30/etc/php-fpm.conf

130行目付近

; pool name ('www' here)
[www-data]

149行目付近

user = www-data
group = www-data

164行目付近

listen = /home/testuser/.phpbrew/php/php-5.6.30/var/run/php-fpm.sock

177行目付近

;listen.owner = www-data (コメントアウトしたまま)
listen.group = www-data
listen.mode = 0660

パーミッションの調整

$ sudo chown -R www-data:www-data ~/.phpbrew/php/php-5.6.30/var/log
$ sudo chown -R www-data:www-data ~/.phpbrew/php/php-5.6.30/var/run
$ sudo chmod 770 ~/.phpbrew/php/php-5.6.30/var/log
$ sudo chmod 770 ~/.phpbrew/php/php-5.6.30/var/run
$ sudo gpasswd -a testuser www-data

php-fpmの実行

$ phpbrew fpm start
Starting php-fpm...
NOTICE: [pool www-data] 'user' directive is ignored when FPM is not running as root
NOTICE: [pool www-data] 'group' directive is ignored when FPM is not running as root

スタートしました。その他、phpbrew fpm stopで停止。phpbrew fpm restartで再起動です。

Nginxの設定

$ sudo vim /etc/nginx/sites-available/hoge

下記のような感じで、fastcgi_passに、php-fpm.comfで設定したパスを入れます。

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name hoge.com;

  ssl_certificate     /etc/letsencrypt/live/hoge.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hoge.com/privkey.pem;

  root /home/testuser/pj/html/;
  index index.php;
  location / {
    try_files $uri $uri?$args $uri/ /index.php?$uri&$args /index.php?$args;
  }

  location ~ \.php(/|$) {
    fastcgi_index  index.php;
    fastcgi_pass   unix:/home/testuser/.phpbrew/php/php-5.6.30/var/run/php-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  error_page 500 501 502 503 504 /500.html;
}

site-enableにリンクさせます。

$ sudo ln -s /etc/nginx/sites-available/hoge /etc/nginx/sites-enabled

Nginxを再起動(起動)します。

$ sudo systmctl restart nginx

(参考)Variantsの種類

全部で下記があるようです。+表記に置換しました。

+all +apxs2 +bcmath +bz2 +calendar +cgi +cli +ctype +curl +dba +debug +dom
+dtrace +editline +embed +exif +fileinfo +filter +fpm +ftp +gcov +gd
+gettext +gmp +hash +iconv +icu +imap +inifile +inline +intl +ipc +ipv6
+json +kerberos +libgcc +mbregex +mbstring +mcrypt +mhash +mysql +opcache
+openssl +pcntl +pcre +pdo +pgsql +phar +phpdbg +posix +readline +session
+soap +sockets +sqlite +static +tidy +tokenizer +wddx +xml +xml_all +xmlrpc
+zip +zlib +zts
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1