カテゴリー: サーバー管理

  • AWS Lightsailでサーバーを構築-WordPress編

    〇WordPress
    下記から追加してダウンロードする。

    ・Apache,MySQLを立ち上げる。
    ファイアウォールの設定確認が出たら許可する。

    ・MySQLにrootのパスワードをセットする
    XMAPPコントロールパネルのShellを起動。

    # cd mysql\bin
    # mysql -u root
    MariaDB [(none)]> set password=password('xxxxxxxx');
    MariaDB [(none)]> quit

    ・ApacheとMySQLを停止する
    ・C:\xampp\phpMyAdmin\config.inc.phpを編集する。

    $cfg['Servers'][$i]['auth_type'] = 'config';
    ↓
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    
    $cfg['Servers'][$i]['user'] = 'root';
    ↓
    $cfg['Servers'][$i]['user'] = 'uuuuuu';

    ・Apache,MySQLを立ち上げる。

    ・WordPress用データベースを作成する

    MySQLのAdminボタンを押してログインする
    ユーザー名:uuuuuu
    パスワード:pppppppp
    データベースタブを押す。
    データベース名:wp-01
    照合順序:utf8_general_ci
    作成する

    ・データベースの直接編集

    XAMPPコントロールパネルのMySQLのAdminボタンを押す。 デフォルトの設定ではローカルマシンでのみ可能
    http://localhost/phpmyadmin/
    データベースwp-01をクリックする
    テーブルwp_optionsをクリックし、表示タブを開く
    siteurl,home,admin_email,mailserver_urlなどをインラインで編集する
    option_valueの列にある文字列をダブルクリックして変更しエンターキーを押す

    ・WordPressをXAMPPにインストールする
    WordPressのダウンロードして解凍し、展開されたwordpressフォルダーをC:\xampp\htdocsにコピーする

    ・http://localhost/wordpress/ をWebブラウザーで開く

    さあ始めましょうを押す。

    データベースの作成
    データベース名:wp-01
    ユーザー名:uuuuuu
    パスワード:pppppppp
    データベースのホスト名:www.@domain.com
    テーブル接頭辞:wp_

    ・WordPressサイトの作成

    サイトのタイトル:WPテスト
    ユーザー名:uuuuu2
    パスワード:ppppppp2
    メールアドレス:xxxxxx@domain.com
    検索エンジンでの表示:off

    ・wordpressのユーザーでログインし、編集する

    https://www.domain.com/wordpress/wp-admin/

    ・imagickのインストール

    http://windows.php.net/downloads/pecl/deps/ ImageMagick-7.0.7-11-vc15-x64.zip

    C:\xampp\ImageMagick に展開する
    システム環境変数PATHに C:\xampp\ImageMagick\bin を追加する。
    PCを再起動する。

    https://windows.php.net/downloads/pecl/releases/imagick/3.4.4/php_imagick-3.4.4-7.4-ts-vc15-x64.zip

    展開して、php_imagick.dllを C:\xampp\php\ext\ にコピーする。
    CORE_RL_*.dll を C:\xampp\ImageMagick\bin に上書きコピーする(バイナリが一致したので不要)
    C:\xampp\php\php.ini [Dynamic Extensions] に extension=php_imagick を追加する。

    ・wordpressの設定

    更新情報サービス

    デフォルトでは以下が有効なので削除する
    設定-投稿設定
    http://rpc.pingomatic.com/

    パーマリンク
    設定-パーマリンク設定
    「数字ベース」にする。「基本」にすると固定ページの編集時に.htaccessファイルが壊れることがある。

    日付形式
    設定-一般
    Y/m/d H:i:s – 2010/11/06 16:04:20
    週の始まり:月曜日

    メディサイズ
    設定-メディア
    150,0,300,0,1024,0

    画像の再作成
    プラグイン Regenerate Thumbnails Advancedを追加する
    実行はツール-Regenerate Thumbnails
    Medium_largeのボタンを外す。SAVE SETTINGS。REGENERATEボタンを押す。

    サイトアイコンの設定
    外観-カスタマイズ-サイト基本情報-サイトアイコンを選択
    ファイルをアップロードで画像ファイルを選択
    wordpres/wp-contentt\upload\yyyy\mmに追加される
    512×512 PNGファイル推奨

    カテゴリーを追加する
    投稿-カテゴリー
    設定-投稿設定で投稿用カテゴリーの初期設定を設定する

    PHPのタイムアウトを変更
    C:\xampp\php\php.ini
    ;max_execution_time=30
    max_execution_time=120

    ファイルアップロードサイズを指定する
    C:\xampp\php\php.ini
    memory_limit=256M
    post_max_size=20M
    upload_max_filesize=20M

    ・ドメインの移行

    xamppコントロールパネルから、MySQLのAdmin
    データベース wp-01を選択し、エクスポート、実行
    SQLファイル内のドメイン名を新しいドメイン名に置換する
    新サーバーでデータベース wp-01を作成する
    SQLファイルをインポートする
    C:\xampp\htsdocs\wordpress をまるごとコピーする
  • AWS Lightsailでサーバーを構築-Webサーバー編

    〇XAMPPの設定
    以下を参考にした。他には古いバージョン用の設定が多くあるので注意

    https://bazubu.com/xampp-wordpress-23795.html

    XAMPPのダウンロード

    https://www.apachefriends.org/jp/download.html

    Apacheバージョンの確認
    C:\xampp\apache\bin>httpd.exe -v

    Server version: Apache/2.4.43 (Win64)
    Apache Lounge VC15 Server built: Apr 22 2020 11:11:00

    ・起動
    以下にXAMPP control Panelのショートカットをコピーする
    “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp”

    〇サーバー証明書の取得
    ・mod_md
    apacheのmod_mdモジュールでの作成、更新ができるらしいと聞いて試したが失敗
    Windowsでは動かないのかもしれない

    http://apache-http-server.18135.x6.nabble.com/mod-md-1-1-0-repeating-on-error-td5040498.html

    ・Windows用ツールをWindowsサーバーにインストール
    https://github.com/win-acme/win-acme/releases からwin-acme.v2.1.8.847.x64.trimmed.zip をダウンロードC:\Tooks\win-acmeに解凍。

    ・証明書を作成
    Apacheを立ち上げておく
    C:/xampp/apache/conf/certs フォルダーを作成しておく

    ACME.exeを起動
    最初は–testオプションを付けてステージングサーバーでテストする。
    本番サーバーは回数制限があるため、試行できない。

    Please choose from the menu: m
    How shall we determine the domain(s) to include in the certificate?: 2
    Enter comma-separated list of host names, starting with the common name: mydomain.com,www.mydomain.com
      Suggested friendly name '[Manual] mydomain.com', press to accept or type an alternative: <enter>
    How would you like prove ownership for the domain(s)?: 1
    Path to the root of the site that will handle authentication: C:/xampp/htdocs
      Copy default web.config before validation? (y/n) - no 
    What kind of private key should be used for the certificate?: 2 
    How would you like to store the certificate?: 2 Path to folder where .pem files are stored: C:/xampp/apache/conf/certs 
    Would you like to store it in another way too?: 5 
    Which installation step should run first?: 4 
    Enter email(s) for notifications about problems and abuse (comma seperated): postmaster@mydomain.com    
     Terms of service: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\LE-SA-v1.2-November-15-2017.pdf Open in default application? (y/n)
    Authorize identifier www.mydomain.com
    Authorizing www.mydomain.com using http-01 validation (FileSystem)
    Answer should now be browsable at http://www.mydomain.com/.well-known/acme-challenge/-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Preliminary validation looks good, but the ACME server will be more thorough
    Authorization result: valid
    Requesting certificate [Manual] mydomain.com
    Store with PemFiles…
    Exporting .pem files to C:/xampp/apache/conf/certs
    Installing with None…
    Adding Task Scheduler entry with the following settings
    Name win-acme renew (acme-v02.api.letsencrypt.org)
    Path C:\Tools\win-acme.v2.1.8.847.x64.trimmed
    Command wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"
    Start at 09:00:00
    Time limit 02:00:00
    Do you want to specify the user the task will run as? (y/n*) - yes
    Enter the username (Domain\username): xxxxxxxx\yyyyyyy
      Enter the user's password: zzzzzzzzz
    Adding renewal for [Manual] www.mydomain.com
       Next renewal scheduled at 20xx/xx/xx xx:xx:xx
       Certificate [Manual] mydomain.com created
    Running in mode: Interactive, Simple
    Target plugin IIS not available: No supported version of IIS detected.

    サーバー証明書はfrendry nameごとに作成され、自動更新もその単位で行われるようだ。

    タスクスケジューラにwin-acme renew (acme-v02.api.letsencrypt.org)タスクが追加されている。

     ・作成された証明書をhttpd-ssl.confで指定する

    SSLCertificateFile "conf/certs/mydomain.com-crt.pem"
    SSLCertificateKeyFile "conf/certs/mydomain.com-key.pem"
    SSLCertificateChainFile "conf/certs/mydomain.com-chain.pem"

    ・証明書の確認

    apacheを立ち上げて以下のサイトなどで確認する

    https://www.digicert.com/help/

    ・上記ツールでうまくいかないときは、下記のツールを用いて手動で作成する。

     Let’s Encrypt の証明書をブラウザ上で簡単取得   https://qiita.com/tappie/items/76881fdf7996c57a105a

     ここで作られた署名鍵、RSA秘密鍵をwin-acmeに入力することでアカウントを設定できる
     アカウントが設定できればwin-acmeで自動更新タスクをタスクスケジューラに登録できる

    〇MercuryMail

    C:\xampp\MercuryMail\LOGSに
    IMAP4,POP3,SMTPフォルダーを作成
    Mercuri.iniファイルの[Protocols]セクションでS,P,C,Iのみ有効にしておく

    ・メールサーバーの確認
    Microsoftリモート接続アナライザー:送信 SMTP メール

    https://testconnectivity.microsoft.com/

    Scott Kitterman’s SPF Testing Tools:ドメインのSPFレコードが有効かどうかを確認する。

    http://www.kitterman.com/spf/validate.html

    ・ポート25ブロックへの対応

    Host : smtp.gmail.com
    Server_Port : 465
    SMTP_Username: xxxxxx@gmail.com
    SMTP_Password: yyyyyyyyyyyyy 2段階認証にして、アプリパスワード(Windows)を生成したもの
  • AWS Lightsailでサーバーを構築-プロキシーサーバー編

    〇squidを稼働

    ・squid
     https://wiki.squid-cache.org/KnowledgeBase/Windows からインストール

     squid_reverse.confの作成(抜粋)

        acl localnet src yyy.yyy.yyy.yyy/32 # PPPoE グローバルIP
      http_port 8080
      logformat squid %tl %6tr %>a %Ss/%03>Hs %
        logfile_rotate 13    #ログを13世代保有する

     
    ・セキュリティの設定
     Lightsailのファイアウォールに以下を追加する

    カスタム TCP 8080 送信元IPアドレス

     インスタンスのWindowsファイアウォールにてsquis.exeにTCPプロトコルの8080ポートを開けた入力規則を追加する
     squidをインストールした時にSquid Cache Serverの名前でデフォルトの3128ポートが許可されているので変更する

    ・ログローテートの設定
    タスクスケジューラで以下を定期的に実行する

    C:\Squid\bin\squid.exe -k rotate

    ・キャッシュの設定

    squid.confファイルの設定

    cache_dir aufs /cygdrive/c/Squid/var/cache/squid 3000 16 256
    cache_mem 256 MB

     キャッシュディレクトリーが存在しないとエラーが出るので、いろいろ試してみたが解消しない。

     どうやらキャッシュ用フォルダーを作るオプション-zでの実行時に、指定したフォルダーに変更できないみたいだ。

     そこで、-zオプション実行時はカレントディレクトリーをキャッシュ用フォルダーC:\Squid\var\cache\squidにしてから実行するようにしたら、キャッシュが作らるようになった。

      C:\Squid\var\cache\squid> C:\squid\bin\squid.exe -z -F

    ・squidの起動

     サービスを再起動する。