Ubuntu14.04にnginxとPHP7.0とMySQL5.7をインストールする
これまでwebサーバーはapacheを使っていたのですがnginxの方が軽量高速と聞いたのでインストール、ついでにPHPとMySQLのバージョンも新しくしました。
その作業の備忘録です。
nginxをインストールする
もしapacheを起動している場合は停止しておきます。
$ sudo service apache2 stop
以下の記事の通りにインストールします。
※元記事にある注意書きのようにtrusy
の部分はUbuntuのバージョンによって異なります。
$ curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add - $ sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list" $ sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list" $ sudo apt-get update $ sudo apt-get install nginx
ブラウザでlocalhost
を開くとWelcome to nginx! と表示されます。
PHP7.0をインストールする
以下の記事の通リにインストールします。
$ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install php7.0-fpm
php.iniのtimezoneの設定
/etc/php/7.0/cli/php.ini
と/etc/php/7.0/fpm/php.ini
を編集します。
timezoneの設定は912行目。
;date.timezone =
これをコメントアウトを外してAsia/Tokyoを指定します。
date.timezone = Asia/Tokyo
php.iniのerror_reportingとdisplay_errorsの設定
開発用のサーバーなのですべての警告、エラーを表示するようにします。
php.iniの445行目。
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
これをE_ALLに変更します。
error_reporting = E_ALL
続いてdisplay_errorsの設定です。php.iniの462行目。
display_errors = Off
これをOnに変更します。
display_errors = On
これですべての警告、エラーが表示されるようになります。
MySQL5.7をインストールする
以下の記事の通リにインストールします。
最初に以下からMySQL APT RepositoryのURLをコピーします。
MySQL :: Download MySQL APT Repository
Downloadボタンをクリック→No thanks, just start my download.
のURLをコピー
2016年2月21日時点ではhttp://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
となっています。
$ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb $ sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
途中でウインドウが表示されるのでMySQL-5.7
を選択してApply
を選択します。
$ sudo apt-get update $ sudo apt-get install mysql-server
$ sudo apt-get install php7.0-mysql
nginxでPHPを使うための設定
PHPファイルを用意
先にテスト用のPHPファイルとそれを置くディレクトリを作っておきます。今回は/var/www/localhost
ディレクトリにindex.phpを置いてみます。
$ sudo mkdir -p /var/www/localhost $ sudo vim /var/www/localhost/index.php
index.phpはガルパンはいいぞ
を出力するだけにします。
<?= 'ガルパンはいいぞ' ?>
nginx設定ファイルを変更
/etc/nginx/conf.d/default.conf
を編集します。念のためにバックアップを作っておきます。
$ cd /etc/nginx/conf.d $ sudo cp default.conf default.conf.backup
default.confを修正します。
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; # ■ ■ ■ rootとindexを変更■ ■ ■ location / { root /var/www/localhost; index index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # ■■■アンコメントして修正します■■■ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/www/localhost; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # ■■■修正ここまで■■■ # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
PHP設定ファイルを修正
/etc/php/7.0/fpm/pool.d/www.conf
を修正します。23、24行目をnginxに変更。
user = nginx group = nginx
47、48行目もnginxに変更します。
listen.owner = nginx listen.group = nginx
nginxとphp7.0-fpmを再起動
設定を反映させるために再起動します。
$ sudo service nginx restart $ sudo service php7.0-fpm restart
以上ですべての設定が終わりました!
ブラウザで確認してみる
ブラウザでlocalhostを開いて、ガルパンはいいぞ
と表示されればOKです。
とりあえず動くようにはなりました。