NginxとDockerでWordPressを動かす手順とハマりどころ解説

nginx-wordpress

WordPressをDockerで立ち上げるとき、多くの人は公式のwordpressイメージを使います。

しかし、そのままではApacheとNginxの競合が発生し、思ったように動かないことがあります。この記事では、私が実際に失敗した例と、その解決方法をまとめます。

NginxとWordPressのインストールは以下の通りです。

【IT】Ubuntu Desktop 20.04 LTSにWordPressをインストールする
【IT】Ubuntu Desktop 20.04 LTS にNginxをインストールする

原因

WordPressのDockerにApacheが設定されていたため80番ボートがつかわれていました。DockerのWordPressはPortが重複したため起動できませんでした。

対応方法

WordPressのfpm版のDockerに変更しました。fpm ( FastCGI Process Manager ) は PHP の FastCGI という技術です。

Volume用フォルダ作成

ホスト側にVolume用のフォルダを作成します。

    
# mkdir /var/www/html
  

Dockerコマンド

Dockerコマンドは以下の通りです。

    
# docker run -d --network host --name wordpress  -v /var/www/html:/var/www/html -e "WORDPRESS_DB_HOST=127.0.0.1" -e "WORDPRESS_DB_USER=wp" -e "WORDPRESS_DB_PASSWORD=wppassword" -e "WORDPRESS_DB_NAME=wordpress" wordpress:php7.4-fpm
  

前回と異なる点としてVolumeを指定しています。またImageファイルは「wordpress:php7.4-fpm」を使います。

Nginx設定ファイル変更

Nginxの設定ファイルの場所は以下の通りです。

/etx/nginx/nginx.conf

Nginxの設定ファイルを変更します。

    
    server {
        listen       80;
        server_name  192.168.0.19;
        root   /var/www/html;
        index  index.html index.htm index.php;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~\.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
  

ファイルを変更したらNginxを再起動します。

コマンドは以下の通りです。

    
# service nginx restart
  

これでNginxとWordPressの連携ができます。

http://192.168.0.19/wp-admin/

コメント

0 件のコメント:

コメントを投稿

コメントをお待ちしています。