Archives 2019

返答が正しい JSON レスポンスではありません。

#: wp-includes/js/dist/api-fetch.js:705
msgid "The response is not a valid JSON response


CentOSなら

Apache設定ファイルでmode rewriteを有効にする

  <Directory "/var/www/html">
    Options Indexes FollowSymLinks
     AllowOverride All  ←これ
    Require all granted
 </Directory>

Apache再起動

.htaccess が作られていないので以下の操作で作らせる
管理画面 → 設定 → パーマリンク
◎ 基本 → 保存
◎カスタム [ category / posttitle]

centos7 php7.3 Postfixインストール

CentOS 7にphp7.3のインストール


暫く掛かるが 完了しました! がでればOK

読み込まれているモジュールの確認

phpを入れたあとでやる adminer でエラー

   None of the supported PHP extensions (MySQLi, MySQL, PDO_MySQL) are available.
   はこれを入れて解決↓
                

Apache 再起動

1. メール送信に必要なパッケージのインストール
メール転送エージェント (MTA)にPostfix、メールサーバにGmailを利用するため

必要なパッケージをインストールします。


2. MTAの確認
alternativesコマンドでデフォルトのMTAの確認をします。

デフォルトMTAにsendmailが設定されているときは、postfixに設定を変更します。

There is 1 program that provides 'mta'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number:

3. Postfixの設定
メール配送に必要な設定をします。

Gmailアカウントが必要になるので、アカウントが未登録の場合は事前に登録を済ませてください。

============================
# メールサーバのホスト名を設定します。
myhostname = mail.localdomain.local

# ドメイン名を設定します。
mydomain = localdomain.local

# 差出人のメールアドレスに使用するドメイン名を設定します。
myorigin = $mydomain

# メール受信を許可するアドレスを設定します。
# ローカルから外部への配送のみを許可するため下記を指定します。(127.0.0.1でもOK)
inet_interfaces = localhost

# IPv4 のみを有効にします。
inet_protocols = ipv4

# メールサーバー自身に配送されたとみなすドメインのリストを設定します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# メールのリレー(転送)を許可するネットワークを設定します。
# ローカルからのメールのみ転送を許可するため127.0.0.0/8 を指定します。
mynetworks = 127.0.0.0/8

# Gmailサーバにメールをリレーする設定をします。
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
smtp_sasl_tls_security_options = noanonymous
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
============================

4. sasl_passwdの設定
Gmailサーバの認証に必要なユーザIDとパスワードを記述したファイルを作成します。

[smtp.gmail.com]:587 xxxxx@gmail.com:パスワード

postmapコマンドでデータベースを作成します。



また他のユーザにパスワードを読み取られないためにアクセス権を設定します。





5. Postfixの起動
Postfixを起動させます。

さらにサーバを再起動しても自動的にPostfixが起動するように設定します。


6. Gmail「安全性の低いアプリのアクセス」をON
Gmailの設定で、 『安全性の低いアプリのアクセス』 の設定を 「オンにする」 にします。

※セキュリティレベルをどうしても下げたくないなら2段階認証にしてアプリパスワードを作る記事

7. メール送信テスト
実際にメールが送信できるかコンソールからmailコマンドを使ってテストしてみます。

無事メールが届けば完了です。

2. centos7 インターネットへの接続確認


ipアドレスの確認


こんな感じに出る。

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
            inet 127.0.0.1/8 scope host lo
                valid_lft forever preferred_lft forever
            inet6 ::1/128 scope host 
                valid_lft forever preferred_lft forever
        2: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
            link/ether 00:1c:c4:cc:a7:16 brd ff:ff:ff:ff:ff:ff
            inet 192.168.0.4/24 brd 192.168.0.255 scope global dynamic ens1   ←これがv4のIP
                valid_lft 2763sec preferred_lft 2763sec
            inet 192.168.0.5/24 brd 192.168.0.255 scope global secondary ens1 ← これも
                valid_lft forever preferred_lft forever                     
            inet6 240f:51:16c8:1:21c:c4ff:fecc:a716/64 scope global noprefixroute dynamic 
                valid_lft 297sec preferred_lft 297sec
            inet6 fe80::21c:c4ff:fecc:a716/64 scope link 
                valid_lft forever preferred_lft forever
        
        

OSバーションチェック

rootユーザーへの切り替え

rootのパスワードを入れる
パスワードが認証されるとプロンプトが”$”から”#”に変わります。

一般ユーザーへの切り替えは”exit”コマンドを入力します

まず、selinuxを無効化します。selinuxはLinuxの監査やセキュリティを向上させる機能ですが、有効になっているとサービスの動作や、設定内容にかなりの制限が出てきます。そのため、基本的には無効にする場合が多いのが実

2-1. selinuxの状態を確認

selinuxが有効になっているかの確認はgetenforceコマンドで行います。(基本的にデフォルトで有効になっています。)以下のようにgetenforceコマンドを実行して「Enforcing」と表示された場合にはselinuxが有効になっています。

 
 $ getenforce
Enforcing

2-2. selinuxを無効に設定

selinuxを無効にするには/etc/selinux/configファイルを修正します。
修正はviなどのテキストエディターで行います。本記事ではファイルを修正する場合、基本的にviコマンドの利用を前提として記載しております。
設定ファイルをviコマンドで開きます。

configファイルの修正点は

 
     SELINUX=enforcing
                                

になります。このパラメーターを

 
     SELINUX=disabled
             

CentOSが起動しなくなった場合はインストールメディアを使ってリカバリモードで起動後、configファイルを修正することで起動できるようになります。

ファイルの修正後、サーバーを再起動して、ログインできる状態になったら、再度、getenforceコマンドでselinuxの設定状況を確認します。以下のように実行結果としてDisabledと表示されれば、selinuxは正常に無効化されています。

   $ getenforce
Disabled

これでselinuxの無効化は完了です。

一般ユーザー の作成

(ユーザー名 任意)

パスワードうんぬん 
	wert3333
	x2回

(ユーザーの確認)

今作ったユーザーに管理者コマンドを使える権限を与える

# visudo  エディタが開く
 %wheel  ALL=(ALL)  ALL の % を消す
 :wq 上書き終了

作ったユーザーを登録
ginzoのグループを確認
→ ginzo : ginzo wheel と出てればOK

ポートの開放状況を確認

:22 だけ開放されている

Linux firewalldでポート開放する方法(RHEL/CentOS7系)

開放するポートを追加

先頭の#はroot権限を表すプロンプトなので貼り付けないこと!

http 80番を開放

ftp 21番を開放

一応 sslの 443番を開放

設定の有効化

設定状態の確認


公開しているサーバーならここで rootログインの無効化、とパスワード認証の無効→鍵認証有効化を行うがローカル環境なので省略する

デフォルトゲートウェイの設定方法

ip固定にして DNS を変更する場合こやる

ens1はnicのハードウェアにつけられた管理上の名前

	
        TYPE="Ethernet"
        BOOTPROTO="dhcp"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        NAME="ens1"
        UUID="53056463-a9a4-438d-9b2c-20b5f3bfbd49"
        DEVICE="ens1"
        ONBOOT="yes"
        IPADDR=192.168.0.5
        PREFIX=24
        DNS1=8.8.8.8
        DNS2=8.8.4.4
        PEERDNS=yes
        PEERROUTES=yes
        IPV6_PEERDNS=yes
        IPV6_PEERROUTES=yes
        
    

インターネットへの接続確認

curlコマンドはweb上のURLを読み込んで文字列をコンソールに表示する

htmlのコードが見えればOK

Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555

Let’s encriptの導入でcertbotの実行時エラーを返すようになったのでその解決法

 
# certbot certonly --webroot --webroot-path /var/www/html/ -d domain -m email@yahoo.co.jp

An unexpected error occurred:
The client lacks sufficient authorization :: Account creation on ACMEv1 is disabled. Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555
 

certbotをここから入れ直す。単に上書きで入れていい。
https://certbot.eff.org/lets-encrypt/ubuntubionic-apache

Choose how you’d like to run Certbot
Either get and install your certificates…
Run this command to get a certificate and have Certbot edit your Apache configuration automatically to serve it, turning on HTTPS access in a single step.

 
$sudo certbot --apache

Enter email address (used for urgent renewal and security notices)
メールアドレスを入力してください(緊急の更新およびセキュリティ通知に使用)  入れてEnter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a   ← 承諾する

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n	← その他メールはいらない

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2  ← 2 httpsを強制する

で終了

つづいてApacheのSSL設定

# vi /etc/apache2/sites-available/default-ssl.conf
以下はこちらの記事の通り
 

Oct 1-12 ,Fri 12:22 のフォーマット済みの日付を日付型に逆フォーマットするやつ

 
date_default_timezone_set('America/Los_Angeles');
// 計算するので現地の時間でやる
$usweek = ['Sunday'=>0,'Monday'=>1,'Tuesday'=>2,'Wednesday'=>3,'Thursday'=>4,'Friday'=>5,'Saturday'=>6];
$usmonth = ['Jan'=>1,'Feb'=>2,'Mar'=>3,'Apr'=>4,'May'=>5,'June'=>6,'July'=>7,'Augt'=>8,'Sept'=>9,'Oct'=>10,'Nov'=>11,'Dec'=>12,];

$ending = 'Friday at 11:21PM PDT';  //  入力例1
$ending = 'Oct 12 at 5:14PM PDT';   //      2
$ending = 'Today at 11:57PM PDT';   //      3

$endings = explode(" ", $ending);
$now = new DateTime();

if( array_key_exists( $endings[0] ,$usweek )){
  // 曜日から始まってる
    $apm = substr($endings[2], -2);
    $hmt = str_replace($apm ,'' , $endings[2]);
    $w = date('w', $now->getTimestamp());  //今日の曜日  4 
    $deff = $usweek[$endings[0]] - $w;    //1 日後
    echo date("Y-m-d",strtotime("+$deff day"))," " , date('H:i',strtotime($endings[2])),"
";   //17:21 ok

}elseif(array_key_exists( $endings[0] ,$usmonth )){
    $endday = $usmonth[$endings[0]].'-'. $endings[1].' '. date('H:i',strtotime( $endings[3]));
    if(date("m-d H:i") < $endday){
      echo date("Y") .'-'.$endday;
    }else{ 
      echo date("Y",strtotime("+1 year")).'-'.$endday;
    }
}elseif( $endings[0] == 'Today'){
    echo date("Y-m-d")." " . date('H:i',strtotime($endings[2])) ;
}

 

403 Forbidden Laravel Apache VirtualHost 443 の解決

 
sudo vi /etc/httpd/conf.d/ssl.conf

// ドキュメントルートを/var/www/laravel/publicへ変更
DocumentRoot "/var/www/laravel/public"

<Directory "/var/www/laravel/public">
    AllowOverride All
#       Options Indexes    ←コイツが邪魔をして access forbidden が出ていた
          		    ファイルの一覧をだそうとするのは許可されてないらしい
    Require all granted


$ sudo systemctl restart httpd.service

 

Laravelじゃない場合の対処

 
<VirtualHost *:80>
    ServerName tanaka.org
    DocumentRoot /home/tanaka
    <Directory "/home/tanaka">
	AllowOverride All
        Order allow,deny
        Allow from all
     	 Require all granted ← これを追加する
   </Directory>
</VirtualHost>

 

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /var/www/html/wp/wp-includes/functions.php on line 5107

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /var/www/html/wp/wp-includes/functions.php on line 5107