To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address.

複数ドメイン環境での Let’s encrypt 更新の際のエラー

原因はたぶん複数ドメインにしていて,非SSLアクセスすると全く別のドメインのドキュメントルートへリダイレクトされていたためと思われる,
すべての複数ドメインをSSL化してHSTS と.htaccessで強制SSLにしたところ解決

.htaccess

 
RewriteEngine On
RewriteBase /
# HTST
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 

WSLのドキュメントルートの場所

Windows SubSystem for Linuxでのファイルアクセス
C:\Users\user\AppData\Local\Packages
\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\var\www\html

Windowsから作ったファイルはパーミッションが  —- となっているので
chmod 644 に変えるとブラウザでも開けるようになる
ただし,ファイルシステムが違うせいかWindowsで保存,編集したファイルの反映が行われない.
結局Cドライブ以下に移動するしか無いようだ

Windows Subsystem for Linux でubuntu18に制作環境を作る

Window10でLAMP (Fall Creators Update版) の記事のApacheを入れた後から


作りたてアカウントなら待ち行列になってるので全部✕にする

[Windowsの機能の有効化または無効化]、「Windows Subsystem for Linux」のチェックボックスがすでにオンなら
Store から UBUNTUダウンロードから始めればいい

Ubuntuはバージョン番号が無いやつを選べ

Storeでログインしろと言われるがそのまま☒で閉じれば始まる

sudo su でroot権限になる

 $ sudo passwd root
	Enter new UNIX password:  x2回
	su - 
	cat /etc/os-release  → Ubuntu18

root# になった

PHP インストール

$ sudo apt-get install -y php7.2 php7.2-zip php7.2-mbstring php7.2-dom php7.2-mysql

Apache とMySQLの自動起動

	sudo systemctl enable apache2
	sudo systemctl enable mysql

WSLでは自動起動しないのでシェルスクリプトでショートカットを作れ

shellscript 作成

ap.sh コマンドは $ sh ap.sh

	#!/bin/sh
	sudo service apache2 start
	sudo service mysql start

kaspelsky を入れている場合,ポートをふさいでいるので停止する

DocumentRoot変更

Cに作らないと forbidden回避できないので,!
設定編集 ファイルは2つある

 sudo vi /etc/apache2/apache2.conf		←これも読み込まれている
<Directory /mnt/c/html>  ←変える
        Options Indexes FollowSymLinks
        AllowOverride All  ←変える
        Require all granted
</Directory>

 sudo vi /etc/apache2/sites-available/000-default.conf ←こっちが本家 編集対象
  
   DocumentRoot /mnt/c/html  ←変える

ubuntuでAllowOverrideを変更しても.htaccessが有効化しなかった時の対処法

mode rewriteを有効にする

	$ sudo a2enmod rewrite
	$ sudo  service apache2 restart

ディレクトリの一覧表示を有効にする(なってなかったら)

対象ディレクトリに .htaccessを作ってこの一行を書く
Options Indexes FollowSymLinks

ユーザ名はApacheではない www-dataだ

sudo chown -R www-data drupal
システムが ntfsなので変わらない

アップロードファイルの上限サイズを変更する

	info.php  phpinf()でファイルの所在を確認
	$ sudo vi /etc/php/7.2/apache2/php.ini
		uploadで検索  20Mに
		display_errors On に変更

Apache 再起動

	$ sudo service apache2 start

これで phpinfo() が実行できた
だめなら OS再起動 windows の再起動

ターミナルの初期ディレクトリ変更 & Apache起動

 cd /home/work
 sudo vi .bashrc

最終行に付け足す
 sh ap.sh
 cd /mnt/c/var/www

MySQL バージョン確認

$ mysql --version  →5.7

MySQLでmysqld.sockのエラーが出た

コマンドはすべて「sudo」で実行します。
mysqlコマンドをsudoをつけずに実行すると接続エラーになります。

	# service mysql start  ←root権限ならこれでいい
	$ sudo mysql -uroot -p

rootパスワードを設定する

ubuntu18 mysql5.7 root password 設定

 の記事参照

root パスワードを忘れた場合

$ sudo service mysql stop
    sudo vim /etc/init.d/mysql
		mysqld_safe で検索して、↓この行をコメントアウトし
		   su - mysql -s /bin/bash -c "mysqld_safe > /dev/null &"
		その下に↓こう追加。
		su - mysql -s /bin/bash -c "mysqld_safe --user=root --skip-grant-tables &"
		$ sudo service mysql start
		$ mysql --database=mysql
パスワードを更新
use mysql
UPDATE user SET authentication_string=password('新規パスワード') WHERE user='root';
再設定したパスワードをMySQLに反映させます
	mysql> flush privileges;
	mysql> quit
	/etc/init.d/mysql の コメント状態を元にもどす。
	sudo service mysql restart
	$ sudo mysql -u root -p

パスワード変更

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '好きなパスワード';

>MySQLでユーザを作成し、権限を設定する方法

	CREATE USER 'ginzo'@'localhost' IDENTIFIED BY 'wert3333'
	grant all on moodle.* to ginzo@localhost identified by  'wert3333';	

DBの全権限を”既存”ginzoユーザーに追加
	create database drupal DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
	GRANT ALL PRIVILEGES ON drupal.* TO 'ginzo'@'localhost';

→ adminerでDB名が出てこない → Database – Refresh する

php インストール

 		sudo apt-get install php php-mysql php-mbstring php-gd php-pear php-intl php-soap php-xmlrpc php-xml php-ldap

imageMagic インストール

	sudo apt-get install php-imagick
	sudo php -m | grep imagick
	sudo service apache2 restart


	apt install libmariadb-dev-compat
	apt install libmariadbclient-dev

WordPressインストール

 		cd /mnt/c/var/www/html    移動 document rootへ
  wget wget http://wordpress.org/latest.tar.gz
  tar -xvf latest.tar.gz  解凍
  chown -R www-data:www-data wordpress
  mv wordpress/* ./  全部移動

パスワードを忘れたら

		UPDATE `wp_users` SET
		`user_pass` = md5('zxcv'),
		WHERE `ID` = '1';

PhpMyadmin インストール

pasuword:Wert3333- ログインユーザ: phpmyhadmin

rootではログインできなくなったらしいので 全部の権限を phpmyadminに与える

mysql> grant all on *.* to phpmyadmin@localhost identified by ‘Wert3333-‘;

なにかするたびに長々とエラーで表示されるのを何とかするコマンド

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

phpmyadmin のTOPから[詳細設定]→一般→エラーレポート をOFFのほうが良い

Smartyをダウンロード

インストールするディレクトリに移動
    cd /usr/local/lib

ダウンロード
  sudo wget https://github.com/smarty-php/smarty/archive/v3.1.33.zip

unzipのインストール
  sudo apt install unzip

解凍
  sudo unzip v3.1.33.zip


sudo mv smarty-3.1.33 smarty-master

Gitをインストールする

 		  sudo apt-get install git

# コミットしたディレクトリに移動してinitする
  $ git init
	Initialized empty Git repository in /path/to/already/.git/  
#ステージする
 $ git add . 
 $ git commit -m 'initial commit' 

#除外ディレクトリ → gitへpushuしない
 $ git rm --cached -r .metadata

# 初回のみ,githubアカウントがありリポジトリがあったらこれでpushする, なければ先に作る
   $  git remote add origin https://github.com/アカウント名/リポジトリ名.git


# KaspelSky を終了して
 $ git push origin master   
		
cloneした方ではここで git pull	→ 変更のあったところが更新される



ターミナルのカレントのパスが長いのを短くする

 vi ~/.bashrc

w→Wに 2箇所を大文字にする
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

ついでにカレントを/var/www/にする,最後の行に加える
 cd /mnt/c/var/www   

source ~/.bashrc で反映させる

特定IPをブロック 追加 削除 CentOS7

遮断したいIP 例 149.56.223.241を設定します


 # iptables -I INPUT -s 149.56.223.241 -j DROP
 # /etc/init.d/iptables save
 # /etc/init.d/iptables restart


Firewall  IPTABLE 操作
 iptables -L -v -n    一覧が見れる
 iptables -L -v -n --line-numbers   行番号もでる
num   pkts bytes target     prot opt in     out     source               destination         
1        4   240 DROP       all  --  *      *       149.56.223.241       0.0.0.0/0           
2        0     0 DROP       all  --  *      *       185.163.1.11         0.0.0.0/0           
3       31  1865 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 

iptables -D INPUT 1 1のルールが消えるが、その後に繰り上がって、2が1になるので注意!

次回このコマンドをアタック検出→ 自動実行にしてみる

EclipseでのSSH鍵認証

Eclipseで公開鍵/秘密鍵の認証を使用するには、実際には非常に簡単です。

リモート・システム・エクスプローラ・プラグインがインストールされていることを確認してください。 Eclipseのこの機能は、SFTPを介して別のサーバーに接続してファイルを編集できるようにするものです。

インストールが完了したら、システム上に作成した秘密鍵をEclipseに認識させる必要があります。

「ウィンドウ」 – >「環境設定」に進み、SSH2を検索します。 次のようなボックスが表示されます。

“Add Private Key”ボタンをクリックし、追加したいシステム上の秘密鍵を探します。 ボタンをクリックし続けると、さらに秘密鍵を追加し続けることができます。

重要な点:パテでキーを作成した場合は、 OPENSSH 形式でエクスポートする必要があることを理解しておいてください。 EclipseはOpenSSHにあるプライベートキーのみを受け入れます。デフォルトのパテッティ.ppkフォーマットではありません! puttygenプログラムでは、Conversions – > Export OpenSSHです。

Eclipseに戻る – 終了したら、OKを押してから、 “Remote Systems”ビューに移動します。 右クリックし、新しい接続を言う。 SSHのみを選択:

 

次の画面で、サーバー情報を入力します。 作成したら、 “Sftp Files”オプションを右クリックし、 “Properties”をクリックします。 Subsystemでは、デフォルト以外のポートが必要な場合は、ポートを入力できます。

あなたはおそらく、特定のディレクトリに接続するときに開始したいと思うでしょう。 これを実行するには、Sftpファイルを右クリックし、新規を選択してからフィルタを選択します。

[フォルダ]ボックスに場所を入力します:

この点で、接続を試みる前にECLIPSEを再起動する必要があります!

新しいフィルタの場所を開くと、接続する必要があり、提供する必要のある資格情報を入力するように求められます。

 カラのままOK

 

Nginx:HttpGzipModuleを使用する

Googleアナリティクスによる分析ではページパフォーマンスはpoorな状態と出る。

  →  


NGINXでGzip圧縮を有効にする

HttpGzipModuleを設定すると,nginxがファイルを圧縮しブラウザが圧縮されたコンテンツを解凍して描画します。
オリジナルのサイズの20〜30%を占め、サーバートラフィックを節約することができるようになる。

HttpGzipModuleの設定

/etc/nginx/nginx.confを開きます。
server{ 内に追加します。

#gzip圧縮でサイトのパフォーマンス判定をGoodに
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

gzip圧縮でサイトのパフォーマンス判定がGoodに

VPS(centOS6)のfirewall

  1. セキュリティグループ
    主に管理パネルなどで許可する(許可していなくてもポートスキャンはLISTENになるので注意)
  2. SELinux
    扱いが厄介なので普通のコンテンツ提供だけならOFFでいいと思う。
  3. TCP Wrapper
    特定のIPからのアクセスを許可(# vi /etc/hosts.allow)、不許可する(vi /etc/hosts.deny)
  4. iptables
    ホストレベルのFirewall(#  iptables –list)

たいてい80番以外は塞がれている

国外リスト
国外アクセス拒否リスト

nginxでBasic認証する

yum -y install git apt
# cd /etc/nginx
# htpasswd -c .htpasswd あんたのユーザー名
New password: 秘密のパスワード
Re-type new password:

/etc/nginx/conf.d/default.conf 編集
location /wp-admin {
auth_basic “Restricted”;
auth_basic_user_file /etc/nginx/.パスワード格納ファイル名;
}

nginxでphpinfo()までの険しい道のり

centos7+nginx+php7

phpの起動
# systemctl start php-fpm
# systemctl status php-fpm
 php-fpm.service - The PHP FastCGI Process Manager  省略~

現象 phpを開くとブラウザがダウンロードしようとする

/etc/nginx/nginx.conf の編集で解決
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
root /var/www/html; #上と同じにする
index index.html index.htm;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # ←こうする
include fastcgi_params;
}

# nginx -s reload 再起動

現象 phpを開くとserver error 500

必ずしもパーミッションではない。
nginxのエラーログでsyntax error を確認

curl で実行
curl -H “Host: dummy.example.com” http://127.0.0.1/html/info.php

その他いろいろ設定してSSL Reportで評価A+


											

macProにubuntuインストール

USBブートメディアの作成…したがどうやっても起動しない。
isoをDVDに焼いて見るがドライブを選べとのことで何を押しても反応なし。
諦めて、windowsなPCのHDDを交換しubuntuインストール
入れ終わったところで、macにHDD装着。
電源投入→しばらくすると普通に起動した。

ubuntu14 キーバインド変更

xkeycapsというソフトをダウンロード。

homeにDLして解凍→コンパイル(Synapticパッケージマネージャ を使う)

 

クイック検索窓に「xkeycaps」と入力

「xkeycaps」が標示されるので、その部分を左クリックか左端の四角のチェックボックスを右クリックすると小さなメニューウィンドが開くので「インストール指定」を選択

 

Synapticパッケージマネージャ本体ウィンドウの上段に有る緑のレ点マークの適用がアクティブになりますのでクリックしてインストール

keycaps

ターミナルから xkeycaps で起動

Ctrlを右クリック→Exchange CapsLockをクリック →WriteOutputで終了

Synapticパッケージマネージャのインストール

$ sudo apt-get install synaptic

起動は、Docの一番上 コンピュータと  の検索から「synapitic」入力で起動

phpMyAdminアップデート

#cd /usr/share/  ここに移動

# mv phpmyadmin/ _phpmyadmin/  名前を変えてバックアップ

# cd /home/usr/ユーザ名 ここにダウンロードするのでカレントを移動

# wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.12/phpMyAdmin-4.2.12-all-languages.tar.gz

# tar phpMyAdmin-4.2.12-all-languages.tar.gz    解凍

# mv phpMyAdmin-4.2.12-all-languages/ phpMyaAdmin/    ディレクトリ名変更

# chmod 660 /home/ユーザ名/phpMyAdmin/config.inc.php
# cp -r /home/ユーザ名/phpMyAdmin/ /usr/share/phpMyAdmin/
ディレクトリごとコピー
# cp /usr/share/_phpMyAdmin/config.inc.php /usr/share/phpMyAdmin/config.inc.php
以前の設定ファイルをコピー
# chown -R root.apache /usr/share/phpMyAdmin/
オーナー変更して完了