[ft_services] 6. wordpressイメージファイルを作成し、クーバーネスを介して配布します.
10232 ワード
やるべきことワードプレスでは、コンテナにnginxサーバが使用され、wordpressを回転させる必要があります. WordPressの動的要求を処理するためにmaria DBにバインドされます. phpmyadminも似ています. mariaDBデータの管理が容易なphpmyadminをインストールし、mariaDBに接続します. wordpress設定条件 word press Webサイト受信5050ポート ワードプレスとMySQLデータベースを組み合わせて を使用
両方のサービスは、別々のコンテナで実行する必要があります. word pressサイトには複数のユーザーと管理者がいます. WordPressには独自のnginxサーバが必要です. 負荷バランサは、このサービスに直接リダイレクトできる必要があります.
「課題解析」を参照 srcs/wordpress/dockerfile
Alpine linux公式サイトwiki-wordpressインストール方法 WordPressの独立nginxをインストールするために、nginxがインストールされ、ポート番号は5050に指定されています.dockerfileの設定は、前回nginxの設定と同じです. addでwordpressのホームページでファイルをダウンロードし、次のコードで解凍してwwwフォルダに入れます.(なぜwwwフォルダに入れたのか、理由は何なのか分かりません.wordpressではこのように設定されていますが、wwwフォルダを探して何をしているのでしょうか?あ、webなので嫌です.論理がなく、すべて約束です.約束)ドッキングファイルの作成時に参照するサイト healthy.shはlivenessprobeインストール,telegrafはimuxDBインストールである. wp-config.php:ここでmaria DBに接続します. インストールに必要なツール php 7-fpm:PHP FastCGIプロセスマネージャの略で、CGIよりも速いバージョンと言えます. モジュール phpをバイトコードにコンパイルし、共有メモリにデータを格納してパフォーマンスを向上 php 7-gd:gdは、png、jpg、gif等に用いるライブラリ である. php 7-mysqli:mysqliは、mysqlよりも速く、より安全なクエリー文を作成しました.
多分そうです.私も事前に知ってからインストールしたのではなく、Alpine公式サイトでWordPressをインストールする際に必要なインストール資料を見てインストールしました.(Alpine公式wiki)[https://wiki.alpinelinux.org/wiki/WordPress] cgiとは?CGIは、汎用ゲートウェイインターフェース(Common Gateway Interface)の略称であり、Webサーバと外部プログラムとの間で情報を交換する方法や約束を指す.
我々が使用するnginx,apachなどのサーバの機能は,クライアントが要求を受信したときに要求に一致する情報を提供することである(静的動作に限られる).
問題は、これらの静的操作が可能である場合、会員登録時にユーザが入力したデータやオンライン注文に必要なユーザ情報をdbに格納できないことである.これらの問題を解決するためには,外部プログラムと情報を交換する約束が必要であり,これをcgiと呼ぶ.
参考資料—cgiとは?、WebサーバとWebアプリケーションサーバの違い、ウィキペディアcgiとは何ですか?
srcs/wordpress/default.conf nginxとは異なりfastcgiが増加し、php−fpmおよびnginxはソケット通信で接続できる.nginxに渡されるphpファイルをhtmlフォーマットに高速に変換します. phpとは何ですか.本来は動的Webページを作成するために設計されていたのですが、それを実現するためにPHPが作成したコードをHTMLソースドキュメントに入れ、PHP処理機能を持つWebサーバ上でそのコードを認識し、著者が望むWebページを生成します.
fastcgiとは?CGIは、データ処理要求があるたびにプロセッサを実行する必要があります.FastCGIは毎回プロセスを作成するのではなく,あらかじめ作成したプロセスとデータを交換することでCGIよりも効率的に動作する.このソリューションはCGIテクノロジーを発展させ、20年以上標準化し、多くのWebサーバ(Nginx、IIS、Apache)がFastCGI機能を提供しています.
srcs/wordpress/wp-config.php dbとWordPressを接続します. 「DB HOST」「cip-mariadb」という設定で、DB HOSTにはmariadbのサービス名が書かれています.そして接続に必要なIDとパスワードを設定しました.これにより,mariadbとwordpressの間でTCP/IP通信が確立された.同じクバーネディス州のパイドですが、tcp/ipで通信しました.他にいい方法はありますか? wordpress.yalmでは、すべてのイメージファイルが作成され、作成されたイメージファイルはyamlファイルを介してコンテナを作成し、作成されたコンテナはサービスを介して管理および外部通信を行います. wordpres.yalm_service nginxと同様であるため説明を省略する. wordpres.yalm_Deployment
Alpine linux公式Wiki-phpmyadminインストール方法 nginxとphpmyadminの間には大きな違いはありません. openrcはalpine osの軽量レベルのオペレーティングシステムであるため、プロセスを制御するためのデフォルトコマンドはありません. openrcで追加し、プロセスの再起動または終了を開始しました. start_php.shはあまり違いはありません.説明を省略してください. phpmyadmin/config.inc.php mariaDBへの接続に使用します. の他の部分も前に行ったnginxやwordpressと似ているので、他の説明は省略する.
両方のサービスは、別々のコンテナで実行する必要があります.
「課題解析」を参照
Alpine linux公式サイトwiki-wordpressインストール方法
FROM alpine:3.12
RUN apk update && apk upgrade && \
apk add --no-cache nginx php7 php7-fpm php7-opcache php7-gd php7-mysqli \
php7-zlib php7-curl php7-mbstring php7-json php7-session
COPY ft_wordpress.sh default.conf wp-config.php ./
RUN adduser -D -g 'www' www && mkdir -p /www \
&& chown -R www:www /var/lib/nginx && chown -R www:www /www
RUN mkdir -p /run/nginx
ADD https://wordpress.org/latest.tar.gz .
RUN tar -xvf latest.tar.gz && \
mv wordpress /www && \
mv wp-config.php /www/ && \
rm -f latest.tar.gz
ADD https://dl.influxdata.com/telegraf/releases/telegraf-1.6.3-static_linux_amd64.tar.gz ./
RUN tar -C . -xzf telegraf-1.6.3-static_linux_amd64.tar.gz && \
chmod +x telegraf/* && \
cp telegraf/telegraf /usr/bin/ && \
rm -rf *.tar.gz* telegraf/
COPY telegraf.conf /etc/telegraf/
COPY ./healthy.sh /tmp/healthy.sh
RUN mv ./default.conf /etc/nginx/conf.d/default.conf
EXPOSE 5050
ENTRYPOINT sh ft_wordpress.sh
apk add --no-cache php7 php7-fpm php7-opcache php7-gd php7-mysqli \
php7-zlib php7-curl php7-mbstring php7-json php7-session
多分そうです.私も事前に知ってからインストールしたのではなく、Alpine公式サイトでWordPressをインストールする際に必要なインストール資料を見てインストールしました.(Alpine公式wiki)[https://wiki.alpinelinux.org/wiki/WordPress]
我々が使用するnginx,apachなどのサーバの機能は,クライアントが要求を受信したときに要求に一致する情報を提供することである(静的動作に限られる).
問題は、これらの静的操作が可能である場合、会員登録時にユーザが入力したデータやオンライン注文に必要なユーザ情報をdbに格納できないことである.これらの問題を解決するためには,外部プログラムと情報を交換する約束が必要であり,これをcgiと呼ぶ.
参考資料—cgiとは?、WebサーバとWebアプリケーションサーバの違い、ウィキペディアcgiとは何ですか?
srcs/wordpress/default.conf
server {
listen 5050;
listen [::]:5050;
root /www/wordpress;
index index.html index.htm index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location / {
try_files $uri $uri/ =404;
}
}
fastcgiとは?CGIは、データ処理要求があるたびにプロセッサを実行する必要があります.FastCGIは毎回プロセスを作成するのではなく,あらかじめ作成したプロセスとデータを交換することでCGIよりも効率的に動作する.このソリューションはCGIテクノロジーを発展させ、20年以上標準化し、多くのWebサーバ(Nginx、IIS、Apache)がFastCGI機能を提供しています.
srcs/wordpress/wp-config.php
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'hoylee' );
/** MySQL database password */
define( 'DB_PASSWORD', 'hoylee' );
/** MySQL hostname */
define( 'DB_HOST', 'cip-mariadb' );
define('WP_HOME', 'http://192.168.99.10:5050' );
define('WP_SITEURL', 'http://192.168.99.10:5050' );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
apiVersion: v1
kind: Service
metadata:
name: service-wordpress
labels:
app: wordpress
annotations:
metallb.universe.tf/allow-shared-ip: wp
spec:
externalTrafficPolicy: Cluster
type: LoadBalancer
loadBalancerIP: 192.168.99.10
ports:
- port: 5050
name: http
protocol: TCP
targetPort: 5050
# 셀렉터에 해당하는 라벨로트래픽을 보내준다.
# targetport는 특정포드로 접근하기 위핸 포트 넘버, (deployment 에서 설정한 pod의 포트 넘버)
selector:
app: wordpress
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
selector:
matchLabels:
app: wordpress
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress
imagePullPolicy: Never
ports:
- containerPort: 5050
livenessProbe:
exec:
command:
- sh
- /tmp/healthy.sh
initialDelaySeconds: 8
periodSeconds: 5
この友人もnginxと一緒に使いましたphpmyadminAlpine linux公式Wiki-phpmyadminインストール方法
FROM alpine:3.12
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN mkdir -p /run/nginx
RUN apk update && apk upgrade
RUN apk add nginx openrc openssl telegraf \
php7 php7-fpm php7-mysqli php7-xml php7-simplexml php7-json \
php7-iconv php7-tokenizer php7-xmlwriter php7-session php7-mbstring
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY telegraf.conf /etc/telegraf/
COPY ./healthy.sh /tmp/healthy.sh
RUN wget http://files.directadmin.com/services/all/phpMyAdmin/phpMyAdmin-5.0.2-all-languages.tar.gz
RUN tar -zxvf phpMyAdmin-5.0.2-all-languages.tar.gz
RUN rm phpMyAdmin-5.0.2-all-languages.tar.gz
RUN mv phpMyAdmin-5.0.2-all-languages phpmyadmin
COPY config.inc.php phpmyadmin/config.inc.php
RUN chmod 644 phpmyadmin/config.inc.php
COPY ./start_php.sh .
EXPOSE 5000
CMD sh start_php.sh
#!/bin/sh
openssl req -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=KR/ST=Seoul/L=Seoul/O=42Seoul/OU=AITEAM/CN=localhost" -keyout localhost.dev.key -out localhost.dev.crt
mv localhost.dev.crt etc/ssl/certs/
mv localhost.dev.key etc/ssl/private/
chmod 600 etc/ssl/certs/localhost.dev.crt etc/ssl/private/localhost.dev.key
telegraf & /usr/sbin/php-fpm7 --nodaemonize & nginx -g 'daemon off;'
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = 'hello world'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'service-mariadb';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['user'] = 'admin';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
Reference
この問題について([ft_services] 6. wordpressイメージファイルを作成し、クーバーネスを介して配布します.), 我々は、より多くの情報をここで見つけました https://velog.io/@hey-chocopie/ttテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol