เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ เจนเฉ เจเจธ เจฌเจพเจฐเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเจฟเจเจเฉเจฐเจฟเจ เจฒ เจนเจจ, "เจตเจฐเจกเจชเฉเจฐเฉเจธ เจเฉฐเจธเจเจพเจฒ" เจฒเจ เจเฉฑเจ เจเฉเจเจฒ เจเฉเจ เจฒเจเจญเจ เจ เฉฑเจงเจพ เจฎเจฟเจฒเฉเจ เจจ เจจเจคเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเจเฉเฅค เจนเจพเจฒเจพเจเจเจฟ, เจตเจพเจธเจคเจต เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจเฉฑเจ เจตเจงเฉเจ เจเจพเจเจก เจนเจจ, เจเจฟเจธ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจคเฉเจธเฉเจ เจตเจฐเจกเจชเจฐเฉเจธ เจ เจคเฉ เจ เฉฐเจกเจฐเจฒเจพเจเฉฐเจ เจเจชเจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจ เจคเฉ เจธเฉฐเจฐเจเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจคเจพเจ เจเฉ เจเจน เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจฃเฅค เจธเจผเจพเจเจฆ เจธเจนเฉ เจธเฉเจเจฟเฉฐเจเจพเจ เจเจพเจธ เจฒเฉเฉเจพเจ 'เจคเฉ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจจเจฟเจฐเจญเจฐ เจนเจจ, เจเจพเจ เจเจน เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจฟเจเจเจฟเจ เจฒเฉเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจเจพ เจฎเฉเจธเจผเจเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจเจฌเฉฐเจเฉ 'เจคเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจธเจตเฉเจเจฒเจฟเจค เจคเฉเจฐ 'เจคเฉ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฌเฉเจธเจผ เจธเจเฉเจฐเจฟเจชเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจเฉ, เจ
เจคเฉ เจจเจพเจฒ เจนเฉ เจเจธ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเจฆเฉ เจนเฉเจ, เจนเจฐ เจเฉฑเจ เจเฉเจเฉเจพ เจเฉ เจเจฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจจเจพเจฒ เจนเฉ เจเจธ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจตเจฟเฉฑเจ เจเฉเจคเฉ เจเจ เจธเจฎเจเฉเจคเจฟเจเจ เจจเฉเฉฐ เจธเจฎเจเจพเจเจเจฆเฉ เจนเฉเจ, เจฆเฉเจตเจพเจ เจธเฉฐเจธเจพเจฐเจพเจ เจฆเฉ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเฉเฅค . เจเฉ เจคเฉเจธเฉเจ เจเฉฑเจ เจเฉฑเจจเจค เจเจชเจญเฉเจเจคเจพ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจฒเฉเจ เจฆเฉ เจชเจพเจ เจจเฉเฉฐ เจเฉฑเจก เจธเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจฌเจธ
NGINX เจฏเฉเจจเจฟเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจ เจฒเจ เจตเจฟเจเจธเจค เจเจฐเจเฉเจเฉเจเจเจฐ เจตเจฟเฉฑเจ เจตเจฐเจฃเจจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ
- เจตเจฐเจกเจชเจฐเฉเจธ CLI
- เจเจ เจเจจเจเฉเจฐเจฟเจชเจ เจ เจคเฉ TLSSSL เจธเจฐเจเฉเจซเจฟเจเฉเจ เจเจฐเฉเจ
- เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจฆเจพ เจเจเฉเจฎเฉเจเจฟเจ เจจเจตเฉเจจเฉเจเจฐเจจ
- NGINX เจเฉเจเจฟเฉฐเจ
- NGINX เจเฉฐเจชเจฐเฉเจธเจผเจจ
- HTTPS เจ เจคเฉ HTTP/2 เจธเจฎเจฐเจฅเจจ
- เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจเฉเจฎเฉเจธเจผเจจ
เจฒเฉเจ เจเฉฑเจ เจธเจฐเจตเจฐ 'เจคเฉ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเฉเจเจพ, เจเฉ เจเฉฑเจเฉ เจธเจฎเฉเจ เจเฉฑเจ เจธเจฅเจฟเจฐ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจธเจฐเจตเจฐ, เจเฉฑเจ PHP เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจธเจฐเจตเจฐ, เจ เจคเฉ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจเฉ เจเจฐเฉเจเจพเฅค เจเฉฑเจ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจเฉ เจฎเจฒเจเฉเจชเจฒ เจตเจฐเจเฉเจ เจฒ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเฉ เจนเฉ เจญเจตเจฟเฉฑเจ เจฒเจ เจเฉฑเจ เจธเฉฐเจญเจพเจตเฉ เจตเจฟเจธเจผเจพ เจนเฉเฅค เจเฉ เจคเฉเจธเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจ เจธเฉเจ เจเจฟเจธเฉ เจ เจเจฟเจนเฉ เจเฉเจเจผ เจฌเจพเจฐเฉ เจฒเจฟเจเฉเจ เจเฉ เจเจจเฉเจนเจพเจ เจฒเฉเจเจพเจ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจฟเฉฑเจชเจฃเฉเจเจ เจตเจฟเฉฑเจ เจฒเจฟเจเฉเฅค
เจฒเฉเฉ
- เจเฉฐเจเฉเจจเจฐ เจธเจฐเจตเจฐ (
LXC เจเจเจฒเจเจเจธเจกเฉ ), เจเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจ, เจเจพเจ เจเฉฑเจ เจฐเฉเจเฉเจฒเจฐ เจเจเจฐเจจ เจธเจฐเจตเจฐ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจเฉ-เจเฉฑเจ 512MB RAM เจ เจคเฉ Ubuntu 18.04 เจเจพเจ เจเจธ เจคเฉเจ เจจเจตเฉเจ เจเฉฐเจธเจเจพเจฒ เจนเจจเฅค - เจเฉฐเจเจฐเจจเฉเฉฑเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจชเฉเจฐเจ 80 เจ เจคเฉ 443
- เจกเฉเจฎเฉเจจ เจจเจพเจฎ เจเจธ เจธเจฐเจตเจฐ เจฆเฉ เจเจจเจคเจ เจเจเจชเฉ เจเจกเจฐเฉเฉฑเจธ เจจเจพเจฒ เจเฉเฉเจฟเจ เจนเฉเจเจ เจนเฉ
- เจฐเฉเจ เจเจเจธเฉเจธ (เจธเฉเจกเฉ)เฅค
เจเจฐเจเฉเจเฉเจเจเจฐ เจฆเฉ เจธเฉฐเจเฉเจช เจเจพเจฃเจเจพเจฐเฉ
เจเจฐเจเฉเจเฉเจเจเจฐ เจเจนเฉ เจนเฉ เจเจฟเจตเฉเจ เจฆเฉฑเจธเจฟเจ เจเจฟเจ เจนเฉ
เจเจจเจฐเจฒ เจธเจฟเจงเจพเจเจค
- เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเฉฐเจฐเจเจจเจพ เจเจฎเจพเจเจกเจพเจ เจตเจฟเฉฑเจ เจฒเจชเฉเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเฉเจเจฐ เจเจฎเจฆเจพเจฆเจคเจพ เจฒเจ เจธเจผเจฐเจคเจพเจ: เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจฎเฉเจเฉเจฆ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเฉเจเจฎ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเจ เจตเจพเจฐ เจเจฒเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
- เจธเจเฉเจฐเจฟเจชเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจคเฉเจ เจธเจพเจซเจเจตเฉเจ
เจฐ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจเฉฑเจ เจเจฎเจพเจเจก เจตเจฟเฉฑเจ เจธเจฟเจธเจเจฎ เจ
เฉฑเจชเจกเฉเจ เจฒเจพเจเฉ เจเจฐ เจธเจเฉ (
apt upgrade
เจเจฌเฉฐเจเฉ เจฒเจ). - เจเจฎเจพเจเจกเจพเจ เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉเจเจ เจนเจจ เจเจฟ เจเจน เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉเจเจ เจนเจจ เจคเจพเจ เจเฉ เจเจน เจเจธ เจ เจจเฉเจธเจพเจฐ เจเจชเจฃเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฃเฅค
- เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเจผเฉเจฐเฉ เจนเฉเจฃ เจฒเจ เจฅเจฐเจฟเฉฑเจก เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจจ เจฒเจ, เจธเจเฉเจฐเจฟเจชเจ เจเฉฐเจเฉเจจเจฐเจพเจ, เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ, เจ เจคเฉ เจนเจพเจฐเจกเจตเฉเจ เจฐ เจธเจฐเจตเจฐเจพเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจเฉเจฎเฉเจเจฟเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเจพ เจ เจจเฉเจฎเจพเจจ เจฒเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเฉเฅค
- เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจ เจธเฉเจ เจนเจฎเฉเจธเจผเจพ เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจเฉเจฎเฉเจธเจผเจจ เจฌเจพเจฐเฉ เจธเฉเจเจฆเฉ เจนเจพเจ, เจเฉ เจธเจพเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเฉเจก เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฆเจพ เจเจงเจพเจฐ เจฌเจฃ เจเจพเจตเฉเจเจพเฅค
- เจธเจพเจฐเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจเจชเจญเฉเจเจคเจพ เจตเจเฉเจ เจเจฒเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ เจฐเฉเจ, เจเจฟเจเจเจเจฟ เจเจน เจฌเฉเจจเจฟเจเจฆเฉ เจธเจฟเจธเจเจฎ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเฉ เจนเจจ, เจชเจฐ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจเฉฑเจ เจจเจฟเจฏเจฎเจค เจเจชเจญเฉเจเจคเจพ เจตเจเฉเจ เจเฉฑเจฒเจฆเจพ เจนเฉ.
เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเฉฑเจ เจเจฐเจจเจพ
เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเฉฑเจ เจเจฐเฉ:
WORDPRESS_DB_PASSWORD
- เจตเจฐเจกเจชเจฐเฉเจธ เจกเจพเจเจพเจฌเฉเจธ เจชเจพเจธเจตเจฐเจกWORDPRESS_ADMIN_USER
- เจตเจฐเจกเจชเจฐเฉเจธ เจเจกเจฎเจฟเจจ เจจเจพเจฎWORDPRESS_ADMIN_PASSWORD
- เจตเจฐเจกเจชเจฐเฉเจธ เจเจกเจฎเจฟเจจ เจชเจพเจธเจตเจฐเจกWORDPRESS_ADMIN_EMAIL
- เจตเจฐเจกเจชเจฐเฉเจธ เจเจกเจฎเจฟเจจ เจเจฎเฉเจฒWORDPRESS_URL
เจตเจฐเจกเจชเจฐเฉเจธ เจธเจพเจเจ เจฆเจพ เจชเฉเจฐเจพ URL เจนเฉ, เจคเฉเจ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉhttps://
.LETS_ENCRYPT_STAGING
- เจกเจฟเจซเฉเจฒเจ เจคเฉเจฐ 'เจคเฉ เจเจพเจฒเฉ เจนเฉ, เจชเจฐ เจฎเฉเฉฑเจฒ เจจเฉเฉฐ 1 'เจคเฉ เจธเฉเฉฑเจ เจเจฐเจเฉ, เจคเฉเจธเฉเจ เจฒเฉเจเจธ เจเจจเจเฉเจฐเจฟเจชเจ เจธเจเฉเจเจฟเฉฐเจ เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเจเฉ, เจเฉ เจคเฉเจนเจพเจกเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจฆเฉ เจ เจเจธเจฐ เจฌเฉเจจเจคเฉ เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจจเจนเฉเจ เจคเจพเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจเจพเจฐเจจ เจเจฒเฉ เจเจจเจเฉเจฐเจฟเจชเจ เจคเฉเจนเจพเจกเฉ เจเจเจชเฉ เจเจกเจฐเฉเฉฑเจธ เจจเฉเฉฐ เจ เจธเจฅเจพเจ เจคเฉเจฐ 'เจคเฉ เจฌเจฒเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค .
เจธเจเฉเจฐเจฟเจชเจ เจเจพเจเจ เจเจฐเจฆเฉ เจนเฉ เจเจฟ เจเจน เจตเจฐเจกเจชเจฐเฉเจธ-เจธเจฌเฉฐเจงเจค เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเฉฑเจ เจเฉเจคเฉ เจเจ เจนเจจ เจ
เจคเฉ เจเฉ เจจเจนเฉเจ เจคเจพเจ เจฌเจพเจนเจฐ เจจเจฟเจเจฒเจฆเฉ เจนเจจเฅค
เจธเจเฉเจฐเจฟเจชเจ เจฒเจพเจเจจเจพเจ 572-576 เจฎเฉเฉฑเจฒ เจฆเฉ เจเจพเจเจ เจเจฐเฉ LETS_ENCRYPT_STAGING
.
เจชเฉเจฐเจพเจชเจค เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเฉฑเจ เจเจฐเจจเจพ
เจฒเจพเจเจจเจพเจ 55-61 'เจคเฉ เจธเจเฉเจฐเจฟเจชเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเฉ, เจเจพเจ เจคเจพเจ เจเฉเจ เจนเจพเจฐเจก-เจเฉเจก เจเฉเจคเฉ เจฎเฉเฉฑเจฒ เจฒเจ เจเจพเจ เจชเจฟเจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจธเฉเฉฑเจ เจเฉเจคเฉ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจฎเฉเฉฑเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ:
DEBIAN_FRONTEND="noninteractive"
โ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉ เจนเจจ เจ เจคเฉ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเจชเจธเฉ เจคเจพเจฒเจฎเฉเจฒ เจฆเฉ เจเฉเจ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉเจ เจนเฉเฅคWORDPRESS_CLI_VERSION="2.4.0"
เจตเจฐเจกเจชเจฐเฉเจธ CLI เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ เจนเฉเฅคWORDPRESS_CLI_MD5= "dedd5a662b80cda66e9e25d44c23b25c"
โ เจตเจฐเจกเจชเจฐเฉเจธ CLI 2.4.0 เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒ เจฆเจพ เจเฉเฉฑเจเจธเจฎ (เจตเจฐเจเจจ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจฟเฉฑเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉWORDPRESS_CLI_VERSION
). เจฒเจพเจเจจ 162 'เจคเฉ เจธเจเฉเจฐเจฟเจชเจ เจเจน เจเจพเจเจ เจเจฐเจจ เจฒเจ เจเจธ เจฎเฉเฉฑเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ เจเจฟ เจธเจนเฉ เจตเจฐเจกเจชเจฐเฉเจธ CLI เจซเจพเจเจฒ เจกเจพเจเจจเจฒเฉเจก เจเฉเจคเฉ เจเจ เจนเฉเฅคUPLOAD_MAX_FILESIZE="16M"
- เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจซเจพเจเจฒ เจฆเจพ เจเจเจพเจฐ เจเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจตเจฟเฉฑเจ เจ เจชเจฒเฉเจก เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจธเฉเจเจฟเฉฐเจ เจเจ เจฅเจพเจตเจพเจ 'เจคเฉ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจธเจฒเจ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจฅเจพเจ 'เจคเฉ เจธเฉเฉฑเจ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉเฅคTLS_HOSTNAME= "$(echo ${WORDPRESS_URL} | cut -d'/' -f3)"
- เจธเจฟเจธเจเจฎ เจฆเจพ เจนเฉเจธเจเจจเจพเจฎ, WORDPRESS_URL เจตเฉเจฐเฉเจเจฌเจฒ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจฟเจเฅค Let's Encrypt เจฆเฉ เจจเจพเจฒ เจจเจพเจฒ เจ เฉฐเจฆเจฐเฉเจจเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจคเจธเจฆเฉเจ เจคเฉเจ เจเจเจฟเจค TLS/SSL เจธเจฐเจเฉเจซเจฟเจเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅคNGINX_CONF_DIR="/etc/nginx"
- เจฎเฉเฉฑเจ เจซเจพเจเจฒ เจธเจฎเฉเจค NGINX เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจพเจฒเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเจพ เจฎเจพเจฐเจnginx.conf
.CERT_DIR="/etc/letsencrypt/live/${TLS_HOSTNAME}"
- เจตเฉเจฐเฉเจเจฌเจฒ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจตเจฐเจกเจชเจฐเฉเจธ เจธเจพเจเจ เจฒเจ เจฒเฉเจเจธ เจเจจเจเฉเจฐเจฟเจชเจ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจฆเจพ เจฎเจพเจฐเจTLS_HOSTNAME
.
เจเฉฑเจ เจตเจฐเจกเจชเจฐเฉเจธ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเฉฑเจ เจนเฉเจธเจเจจเจพเจฎ เจธเฉเจเจชเจฃเจพ
เจธเจเฉเจฐเจฟเจชเจ เจธเจพเจเจ เจฆเฉ เจกเฉเจฎเฉเจจ เจจเจพเจฎ เจจเจพเจฒ เจฎเฉเจฒ เจเจฐเจจ เจฒเจ เจธเจฐเจตเจฐ เจฆเฉ เจนเฉเจธเจเจจเจพเจฎ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเฉเฅค เจเจน เจฒเฉเฉเฉเจเจฆเจพ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจธเจเฉเจฐเจฟเจชเจ เจฆเฉเจเจฐเจพ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเฉ เจ เจจเฉเจธเจพเจฐ, เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจธเจฐเจตเจฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจตเฉเจฒเฉ SMTP เจฐเจพเจนเฉเจ เจเจเจเจเฉเจเฉฐเจ เจฎเฉเจฒ เจญเฉเจเจฃเจพ เจตเจงเฉเจฐเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Change the hostname to be the same as the WordPress hostname
if [ ! "$(hostname)" == "${TLS_HOSTNAME}" ]; then
echo " Changing hostname to ${TLS_HOSTNAME}"
hostnamectl set-hostname "${TLS_HOSTNAME}"
fi
เจนเฉเจธเจ-เจจเจพเจ เจจเฉเฉฐ /etc/hosts เจตเจฟเฉฑเจ เจเฉเฉเจจเจพ
เจชเฉเจฐเจ
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Add the hostname to /etc/hosts
if [ "$(grep -m1 "${TLS_HOSTNAME}" /etc/hosts)" = "" ]; then
echo " Adding hostname ${TLS_HOSTNAME} to /etc/hosts so that WordPress can ping itself"
printf "::1 %sn127.0.0.1 %sn" "${TLS_HOSTNAME}" "${TLS_HOSTNAME}" >> /etc/hosts
fi
เจ เจเจฒเฉ เจชเฉเจพเจตเจพเจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจเฉเจฒเจธ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจฌเจพเจเฉ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเฉเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจเจน เจฎเฉฐเจจเจฆเจพ เจนเฉ เจเจฟ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจ เฉฑเจช เจเฉ เจกเฉเจ เจนเจจเฅค เจ เจธเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจ เจธเฉเจ เจฒเฉเฉเฉเจเจฆเฉ เจเฉเจฒ เจธเจฅเจพเจชเจค เจเจฐเจฆเฉ เจนเจพเจ:
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Make sure tools needed for install are present
echo " Installing prerequisite tools"
apt-get -qq update
apt-get -qq install -y
bc
ca-certificates
coreutils
curl
gnupg2
lsb-release
NGINX เจฏเฉเจจเจฟเจ เจ เจคเฉ NGINX เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจจเฉเฉฐ เจเฉเฉเจจเจพ
เจธเจเฉเจฐเจฟเจชเจ NGINX เจฏเฉเจจเจฟเจ เจ เจคเฉ เจเจชเจจ เจธเฉเจฐเจธ NGINX เจจเฉเฉฐ เจ เจงเจฟเจเจพเจฐเจค NGINX เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจคเฉเจ เจธเจฅเจพเจชเจฟเจค เจเจฐเจฆเฉ เจนเฉ เจคเจพเจ เจเฉ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจ เจเจพ เจธเจเฉ เจเจฟ เจจเจตเฉเจจเจคเจฎ เจธเฉเจฐเฉฑเจเจฟเจ เจชเฉเจ เจ เจคเฉ เจฌเฉฑเจ เจซเจฟเจเจธ เจตเจพเจฒเฉ เจธเฉฐเจธเจเจฐเจฃ เจตเจฐเจคเฉ เจเจ เจนเจจเฅค
เจธเจเฉเจฐเจฟเจชเจ NGINX เจฏเฉเจจเจฟเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจ
เจคเฉ เจซเจฟเจฐ NGINX เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจเฉเฉเจฆเฉ เจนเฉ, เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจเฉเฉฐเจเฉ เจ
เจคเฉ เจธเฉเจเจฟเฉฐเจเจพเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจนเฉ apt
, เจเฉฐเจเจฐเจจเฉเฉฑเจ เจฐเจพเจนเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจเจพเฅค
NGINX เจฏเฉเจจเจฟเจ เจ เจคเฉ NGINX เจฆเฉ เจ เจธเจฒ เจธเจฅเจพเจชเจจเจพ เจ เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ เจธเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเฉเฉเจฆเฉ เจนเจพเจ เจคเจพเจ เจเฉ เจธเจพเจจเฉเฉฐ เจฎเฉเจเจพเจกเฉเจเจพ เจจเฉเฉฐ เจเจ เจตเจพเจฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจพ เจชเจตเฉ, เจเจฟเจธ เจจเจพเจฒ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจคเฉเจเจผ เจนเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Install the NGINX Unit repository
if [ ! -f /etc/apt/sources.list.d/unit.list ]; then
echo " Installing NGINX Unit repository"
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb https://packages.nginx.org/unit/ubuntu/ $(lsb_release -cs) unit" > /etc/apt/sources.list.d/unit.list
fi
# Install the NGINX repository
if [ ! -f /etc/apt/sources.list.d/nginx.list ]; then
echo " Installing NGINX repository"
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb https://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" > /etc/apt/sources.list.d/nginx.list
fi
NGINX, NGINX เจฏเฉเจจเจฟเจ, PHP เจฎเจพเจฐเฉเจเจกเฉเจฌเฉ, เจธเจฐเจเจฌเฉเจ (เจเจ เจเจจเจเฉเจฐเจฟเจชเจ เจเจฐเฉเจ) เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉเจเจ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจเฉฑเจ เจตเจพเจฐ เจธเจพเจฐเฉเจเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจเฉเฉเฉเจเจ เจเจพเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจเจพเจกเฉเจเจพ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเฉ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเฅค เจธเจเฉเจฐเจฟเจชเจ เจฆเฉเจเจฐเจพ เจธเจฅเจพเจชเจค เจเฉเจคเฉ เจชเฉเจเฉเจเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจกเจชเจฐเฉเจธ.org เจเจฒเจพเจเจฃ เจตเฉเจฒเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเฉเจคเฉ PHP เจเจเจธเจเฉเจเจธเจผเจจ เจตเฉ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจ
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
echo " Updating repository metadata"
apt-get -qq update
# Install PHP with dependencies and NGINX Unit
echo " Installing PHP, NGINX Unit, NGINX, Certbot, and MariaDB"
apt-get -qq install -y --no-install-recommends
certbot
python3-certbot-nginx
php-cli
php-common
php-bcmath
php-curl
php-gd
php-imagick
php-mbstring
php-mysql
php-opcache
php-xml
php-zip
ghostscript
nginx
unit
unit-php
mariadb-server
NGINX เจฏเฉเจจเจฟเจ เจ เจคเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจจเจพเจฒ เจตเจฐเจคเจฃ เจฒเจ PHP เจธเฉเจ เจ เจช เจเจฐเจจเจพ
เจธเจเฉเจฐเจฟเจชเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจเจฟเฉฐเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ conf.d. เจเจน PHP เจ เฉฑเจชเจฒเฉเจกเจพเจ เจฒเจ เจ เจงเจฟเจเจคเจฎ เจซเจผเจพเจเจฒ เจเจเจพเจฐ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉ, PHP เจคเจฐเฉเฉฑเจเฉ เจเจเจเจชเฉเฉฑเจ เจจเฉเฉฐ STDERR 'เจคเฉ เจเจพเจฒเฉ เจเจฐเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ NGINX เจฏเฉเจจเจฟเจ เจฒเฉเจ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพ เจธเจเฉ, เจ เจคเฉ NGINX เจฏเฉเจจเจฟเจ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเฉเจคเจพ เจเจพ เจธเจเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Find the major and minor PHP version so that we can write to its conf.d directory
PHP_MAJOR_MINOR_VERSION="$(php -v | head -n1 | cut -d' ' -f2 | cut -d'.' -f1,2)"
if [ ! -f "/etc/php/${PHP_MAJOR_MINOR_VERSION}/embed/conf.d/30-wordpress-overrides.ini" ]; then
echo " Configuring PHP for use with NGINX Unit and WordPress"
# Add PHP configuration overrides
cat > "/etc/php/${PHP_MAJOR_MINOR_VERSION}/embed/conf.d/30-wordpress-overrides.ini" << EOM
; Set a larger maximum upload size so that WordPress can handle
; bigger media files.
upload_max_filesize=${UPLOAD_MAX_FILESIZE}
post_max_size=${UPLOAD_MAX_FILESIZE}
; Write error log to STDERR so that error messages show up in the NGINX Unit log
error_log=/dev/stderr
EOM
fi
# Restart NGINX Unit because we have reconfigured PHP
echo " Restarting NGINX Unit"
service unit restart
เจตเจฐเจกเจชเจฐเฉเจธ เจฒเจ เจฎเจพเจฐเฉเจเจกเฉเจฌเฉ เจกเฉเจเจพเจฌเฉเจธ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ
เจ
เจธเฉเจ MySQL เจเฉฑเจคเฉ เจฎเจพเจฐเฉเจเจกเฉเจฌเฉ เจจเฉเฉฐ เจเฉเจฃเจฟเจ เจนเฉ เจเจฟเจเจเจเจฟ เจเจธ เจตเจฟเฉฑเจ เจตเจงเฉเจฐเฉ เจเจฎเจฟเจเจจเจฟเจเฉ เจเจคเฉเจตเจฟเจงเฉ เจนเฉ เจ
เจคเฉ เจนเฉเจฃ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจตเฉ เจนเฉ
เจธเจเฉเจฐเจฟเจชเจ เจเฉฑเจ เจจเจตเจพเจ เจกเฉเจเจพเจฌเฉเจธ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ เจ เจคเฉ เจฒเฉเจชเจฌเฉเจ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉเจเจฐเจพ เจตเจฐเจกเจชเจฐเฉเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฒเจ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ:
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Set up the WordPress database
echo " Configuring MariaDB for WordPress"
mysqladmin create wordpress || echo "Ignoring above error because database may already exist"
mysql -e "GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"localhost" IDENTIFIED BY "$WORDPRESS_DB_PASSWORD"; FLUSH PRIVILEGES;"
เจตเจฐเจกเจชเจฐเฉเจธ CLI เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจเจธ เจชเฉเจพเจ
'เจคเฉ, เจธเจเฉเจฐเจฟเจชเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจฆเฉ เจนเฉ
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
if [ ! -f /usr/local/bin/wp ]; then
# Install the WordPress CLI
echo " Installing the WordPress CLI tool"
curl --retry 6 -Ls "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar" > /usr/local/bin/wp
echo "$WORDPRESS_CLI_MD5 /usr/local/bin/wp" | md5sum -c -
chmod +x /usr/local/bin/wp
fi
เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจ เจคเฉ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจจเจพ
เจธเจเฉเจฐเจฟเจชเจ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจตเจฐเจกเจชเจฐเฉเจธ เจฆเฉ เจจเจตเฉเจจเจคเจฎ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจฆเฉ เจนเฉ /var/www/wordpress
เจ
เจคเฉ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจตเฉ เจฌเจฆเจฒเจฆเจพ เจนเฉ:
- เจกเจพเจเจพเจฌเฉเจธ เจเจจเฉเจเจธเจผเจจ เจเฉเจธเฉเจชเฉ เจเฉเจฐเฉเจซเจฟเจ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฒเจ เจฒเฉเจชเจฌเฉเจ เจเฉฑเจคเฉ TCP เจฆเฉ เจฌเจเจพเจ เจฏเฉเจจเจฟเจเจธ เจกเฉเจฎเฉเจจ เจธเจพเจเจ เจเฉฑเจคเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค
- เจตเจฐเจกเจชเจฐเฉเจธ เจเฉฑเจ เจ เจเฉเจคเจฐ เจเฉเฉเจฆเจพ เจนเฉ https:// URL เจคเฉ เจเฉเจเจฐ เจเจฒเจพเจเฉฐเจ HTTPS เจเฉฑเจคเฉ NGINX เจจเจพเจฒ เจเจจเฉเจเจ เจเจฐเจฆเฉ เจนเจจ, เจ เจคเฉ เจฐเจฟเจฎเฉเจ เจนเฉเจธเจเจจเจพเจฎ (เจเจฟเจตเฉเจ เจเจฟ NGINX เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ) PHP เจจเฉเฉฐ เจตเฉ เจญเฉเจเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจจ เจฒเจ เจเฉเจก เจฆเฉ เจเฉฑเจ เจเฉเจเฉเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
- เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจฒเฉเจเจเจจ เจฒเจ HTTPS เจฆเฉ เจฒเฉเฉ เจนเฉ
- เจกเจฟเจซเฉเจฒเจ URL เจฌเจฃเจคเจฐ เจธเจฐเฉเจคเจพเจ 'เจคเฉ เจ เจงเจพเจฐเจค เจนเฉ
- เจตเจฐเจกเจชเจฐเฉเจธ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฒเจ เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจคเฉ เจธเจนเฉ เจ เจจเฉเจฎเจคเฉเจเจ เจธเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
if [ ! -d /var/www/wordpress ]; then
# Create WordPress directories
mkdir -p /var/www/wordpress
chown -R www-data:www-data /var/www
# Download WordPress using the WordPress CLI
echo " Installing WordPress"
su -s /bin/sh -c 'wp --path=/var/www/wordpress core download' www-data
WP_CONFIG_CREATE_CMD="wp --path=/var/www/wordpress config create --extra-php --dbname=wordpress --dbuser=wordpress --dbhost="localhost:/var/run/mysqld/mysqld.sock" --dbpass="${WORDPRESS_DB_PASSWORD}""
# This snippet is injected into the wp-config.php file when it is created;
# it informs WordPress that we are behind a reverse proxy and as such
# allows it to generate links using HTTPS
cat > /tmp/wp_forwarded_for.php << 'EOM'
/* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
EOM
# Create WordPress configuration
su -s /bin/sh -p -c "cat /tmp/wp_forwarded_for.php | ${WP_CONFIG_CREATE_CMD}" www-data
rm /tmp/wp_forwarded_for.php
su -s /bin/sh -p -c "wp --path=/var/www/wordpress config set 'FORCE_SSL_ADMIN' 'true'" www-data
# Install WordPress
WP_SITE_INSTALL_CMD="wp --path=/var/www/wordpress core install --url="${WORDPRESS_URL}" --title="${WORDPRESS_SITE_TITLE}" --admin_user="${WORDPRESS_ADMIN_USER}" --admin_password="${WORDPRESS_ADMIN_PASSWORD}" --admin_email="${WORDPRESS_ADMIN_EMAIL}" --skip-email"
su -s /bin/sh -p -c "${WP_SITE_INSTALL_CMD}" www-data
# Set permalink structure to a sensible default that isn't in the UI
su -s /bin/sh -p -c "wp --path=/var/www/wordpress option update permalink_structure '/%year%/%monthnum%/%postname%/'" www-data
# Remove sample file because it is cruft and could be a security problem
rm /var/www/wordpress/wp-config-sample.php
# Ensure that WordPress permissions are correct
find /var/www/wordpress -type d -exec chmod g+s {} ;
chmod g+w /var/www/wordpress/wp-content
chmod -R g+w /var/www/wordpress/wp-content/themes
chmod -R g+w /var/www/wordpress/wp-content/plugins
fi
NGINX เจฏเฉเจจเจฟเจ เจฆเฉ เจธเจฅเจพเจชเจจเจพ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ
เจธเจเฉเจฐเจฟเจชเจ PHP เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจ เจคเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจฎเจพเจฐเจเจพเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจ NGINX เจฏเฉเจจเจฟเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจฆเฉ เจนเฉ, PHP เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเจฎเจธเจชเฉเจธ เจจเฉเฉฐ เจ เจฒเฉฑเจ เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉเฅค เจเฉฑเจฅเฉ เจฆเฉเจเจฃ เจฒเจ เจคเจฟเฉฐเจจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจนเจจ:
- เจจเฉเจฎ-เจธเจชเฉเจธ เจฒเจ เจธเจฎเจฐเจฅเจจ เจธเจผเจฐเจค เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจน เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจฟ เจธเจเฉเจฐเจฟเจชเจ เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉ เจนเฉเฅค เจเจน เจเจผเจฐเฉเจฐเฉ เจนเฉ เจเจฟเจเจเจเจฟ เจเจผเจฟเจเจฆเจพเจคเจฐ เจเฉฐเจเฉเจจเจฐ เจธเฉเฉฑเจเจ เฉฑเจช เจเฉฐเจเฉเจจเจฐเจพเจ เจฆเฉ เจจเฉเจธเจเจก เจฒเจพเจเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค
- เจเฉเจเจฐ เจจเฉเจฎเจธเจชเฉเจธ เจฒเจ เจธเจฎเจฐเจฅเจจ เจนเฉ, เจคเจพเจ เจจเฉเจฎเจธเจชเฉเจธ เจจเฉเฉฐ เจ เจฏเฉเจ เจเจฐเฉ เจจเฉเฉฑเจเจตเจฐเจ. เจเจน เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจเฉฑเจเฉ เจธเจฎเฉเจ เจ เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉเจเจ เจจเจพเจฒ เจเฉเฉเจจ เจ เจคเฉ เจเฉฐเจเจฐเจจเฉเจ 'เจคเฉ เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉเจฃ เจฆเฉ เจเจเจฟเจ เจฆเฉเจฃ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเฉเฅค
- เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจ
เจงเจฟเจเจคเจฎ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ: (MariaDB เจ
เจคเฉ NGINX Uniy เจเจฒเจพเจเจฃ เจฒเจ เจเจชเจฒเจฌเจง เจฎเฉเจฎเฉเจฐเฉ)/(PHP + 5 เจตเจฟเฉฑเจ RAM เจธเฉเจฎเจพ)
เจเจน เจฎเฉเฉฑเจฒ NGINX เจฏเฉเจจเจฟเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเฉเฉฑเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจเจน เจฎเฉเฉฑเจฒ เจเจน เจตเฉ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ เจเจฟ เจเฉฑเจฅเฉ เจนเจฎเฉเจธเจผเจพเจ เจเฉฑเจเฉ-เจเฉฑเจ เจฆเฉ PHP เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจเฉฑเจฒ เจฐเจนเฉเจเจ เจนเจจ, เจเฉ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ เจเจฟเจเจเจเจฟ เจตเจฐเจกเจชเจฐเฉเจธ เจเจชเจฃเฉ เจเจช เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจ เจธเจฟเฉฐเจเจฐเฉเจจเจธ เจฌเฉเจจเจคเฉเจเจ เจเจฐเจฆเจพ เจนเฉ, เจ เจคเฉ เจตเจพเจงเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจคเฉเจ เจฌเจฟเจจเจพเจ, เจเจฟเจตเฉเจ เจเจฟ WP-Cron เจเฉเฉฑเจ เจเจพเจตเฉเจเจพเฅค เจคเฉเจธเฉเจ เจเจชเจฃเฉเจเจ เจธเจฅเจพเจจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจนเจจเจพเจ เจธเฉเจฎเจพเจตเจพเจ เจจเฉเฉฐ เจตเจงเจพเจเจฃเจพ เจเจพเจ เจเจเจพเจเจฃเจพ เจเจพเจน เจธเจเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเฉฑเจฅเฉ เจฌเจฃเจพเจเจเจ เจเจเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฐเฉเฉเฉเจนเฉเจตเจพเจฆเฉ เจนเจจเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจเจคเจชเจพเจฆเจจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ 'เจคเฉ, เจธเฉเจเจฟเฉฐเจเจพเจ 10 เจ เจคเฉ 100 เจฆเฉ เจตเจฟเจเจเจพเจฐ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
if [ "${container:-unknown}" != "lxc" ] && [ "$(grep -m1 -a container=lxc /proc/1/environ | tr -d '')" == "" ]; then
NAMESPACES='"namespaces": {
"cgroup": true,
"credential": true,
"mount": true,
"network": false,
"pid": true,
"uname": true
}'
else
NAMESPACES='"namespaces": {}'
fi
PHP_MEM_LIMIT="$(grep 'memory_limit' /etc/php/7.4/embed/php.ini | tr -d ' ' | cut -f2 -d= | numfmt --from=iec)"
AVAIL_MEM="$(grep MemAvailable /proc/meminfo | tr -d ' kB' | cut -f2 -d: | numfmt --from-unit=K)"
MAX_PHP_PROCESSES="$(echo "${AVAIL_MEM}/${PHP_MEM_LIMIT}+5" | bc)"
echo " Calculated the maximum number of PHP processes as ${MAX_PHP_PROCESSES}. You may want to tune this value due to variations in your configuration. It is not unusual to see values between 10-100 in production configurations."
echo " Configuring NGINX Unit to use PHP and WordPress"
cat > /tmp/wordpress.json << EOM
{
"settings": {
"http": {
"header_read_timeout": 30,
"body_read_timeout": 30,
"send_timeout": 30,
"idle_timeout": 180,
"max_body_size": $(numfmt --from=iec ${UPLOAD_MAX_FILESIZE})
}
},
"listeners": {
"127.0.0.1:8080": {
"pass": "routes/wordpress"
}
},
"routes": {
"wordpress": [
{
"match": {
"uri": [
"*.php",
"*.php/*",
"/wp-admin/"
]
},
"action": {
"pass": "applications/wordpress/direct"
}
},
{
"action": {
"share": "/var/www/wordpress",
"fallback": {
"pass": "applications/wordpress/index"
}
}
}
]
},
"applications": {
"wordpress": {
"type": "php",
"user": "www-data",
"group": "www-data",
"processes": {
"max": ${MAX_PHP_PROCESSES},
"spare": 1
},
"isolation": {
${NAMESPACES}
},
"targets": {
"direct": {
"root": "/var/www/wordpress/"
},
"index": {
"root": "/var/www/wordpress/",
"script": "index.php"
}
}
}
}
}
EOM
curl -X PUT --data-binary @/tmp/wordpress.json --unix-socket /run/control.unit.sock http://localhost/config
NGINX เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจฎเฉเจฒ NGINX เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจเจพ
เจธเจเฉเจฐเจฟเจชเจ NGINX เจเฉเจธเจผ เจฒเจ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจซเจฟเจฐ เจฎเฉเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ nginx.conf
. เจนเฉเจเจกเจฒเจฐ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจ
เจคเฉ เจ
เฉฑเจชเจฒเฉเจก เจฒเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจซเจพเจเจฒ เจเจเจพเจฐ เจฆเฉ เจธเฉเจเจฟเฉฐเจ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเจฟเจเฅค เจเฉฑเจฅเฉ เจเฉฑเจ เจฒเจพเจเจจ เจตเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจ
เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉฐเจชเจฐเฉเจธเจผเจจ เจธเฉเจเจฟเฉฐเจเจเจผ เจซเจพเจเจฒ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจธ เจคเฉเจ เจฌเจพเจ
เจฆ เจเฉเจเจฟเฉฐเจ เจธเฉเจเจฟเฉฐเจเจเจผเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
# Make directory for NGINX cache
mkdir -p /var/cache/nginx/proxy
echo " Configuring NGINX"
cat > ${NGINX_CONF_DIR}/nginx.conf << EOM
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include ${NGINX_CONF_DIR}/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
client_max_body_size ${UPLOAD_MAX_FILESIZE};
keepalive_timeout 65;
# gzip settings
include ${NGINX_CONF_DIR}/gzip_compression.conf;
# Cache settings
proxy_cache_path /var/cache/nginx/proxy
levels=1:2
keys_zone=wp_cache:10m
max_size=10g
inactive=60m
use_temp_path=off;
include ${NGINX_CONF_DIR}/conf.d/*.conf;
}
EOM
NGINX เจเฉฐเจชเจฐเฉเจธเจผเจจ เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเจพเจนเจเจพเจ เจจเฉเฉฐ เจญเฉเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจธเฉฐเจเฉเจเจฟเจค เจเจฐเจจเจพ เจธเจพเจเจ เจฆเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจฃ เจฆเจพ เจเฉฑเจ เจตเจงเฉเจ เจคเจฐเฉเจเจพ เจนเฉ, เจชเจฐ เจธเจฟเจฐเจซ เจคเจพเจ เจนเฉ เจเฉเจเจฐ เจเฉฐเจชเจฐเฉเจธเจผเจจ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจธเจเฉเจฐเจฟเจชเจ เจฆเจพ เจเจน เจญเจพเจ เจธเฉเจเจฟเฉฐเจเจพเจ 'เจคเฉ เจ
เจงเจพเจฐเจค เจนเฉ
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
cat > ${NGINX_CONF_DIR}/gzip_compression.conf << 'EOM'
# Credit: https://github.com/h5bp/server-configs-nginx/
# ----------------------------------------------------------------------
# | Compression |
# ----------------------------------------------------------------------
# https://nginx.org/en/docs/http/ngx_http_gzip_module.html
# Enable gzip compression.
# Default: off
gzip on;
# Compression level (1-9).
# 5 is a perfect compromise between size and CPU usage, offering about 75%
# reduction for most ASCII files (almost identical to level 9).
# Default: 1
gzip_comp_level 6;
# Don't compress anything that's already small and unlikely to shrink much if at
# all (the default is 20 bytes, which is bad as that usually leads to larger
# files after gzipping).
# Default: 20
gzip_min_length 256;
# Compress data even for clients that are connecting to us via proxies,
# identified by the "Via" header (required for CloudFront).
# Default: off
gzip_proxied any;
# Tell proxies to cache both the gzipped and regular version of a resource
# whenever the client's Accept-Encoding capabilities header varies;
# Avoids the issue where a non-gzip capable client (which is extremely rare
# today) would display gibberish if their proxy gave them the gzipped version.
# Default: off
gzip_vary on;
# Compress all output labeled with one of the following MIME-types.
# `text/html` is always compressed by gzip module.
# Default: text/html
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/vnd.ms-fontobject
application/wasm
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/bmp
image/svg+xml
text/cache-manifest
text/calendar
text/css
text/javascript
text/markdown
text/plain
text/xml
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;
EOM
เจตเจฐเจกเจชเจฐเฉเจธ เจฒเจ NGINX เจธเฉเจ เจ เจช เจเจฐเจจเจพ
เจ เฉฑเจเฉ, เจธเจเฉเจฐเจฟเจชเจ เจตเจฐเจกเจชเจฐเฉเจธ เจฒเจ เจเฉฑเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ default.conf เจเฉเจเจพเจฒเจพเจ เจตเจฟเจ conf.d. เจเจน เจเฉฑเจฅเฉ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ:
- Certbot เจฆเฉเจเจฐเจพ Let's Encrypt เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ TLS เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจจเฉเฉฐ เจธเจฐเจเจฐเจฎ เจเจฐเจจเจพ (เจเจธ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจจเจพ เจ เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจนเฉเจตเฉเจเจพ)
- Let's Encrypt เจฆเฉเจเจ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ TLS เจธเฉเจฐเฉฑเจเจฟเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจเจพ
- เจชเฉเจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจคเฉเจฐ 'เจคเฉ 1 เจเฉฐเจเฉ เจฒเจ เจเฉเจเจฟเฉฐเจ เจเฉฑเจกเจฃ เจฆเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ
- เจฆเฉ เจเจฎ เจฌเฉเจจเจคเฉ เจเฉเจคเฉเจเจ เจซเจพเจเจฒเจพเจ เจฒเจ เจเจเจธเฉเจธ เจฒเฉเจเจฟเฉฐเจ, เจจเจพเจฒ เจนเฉ เจเจฒเจคเฉ เจฒเฉเจเจฟเฉฐเจ เจจเฉเฉฐ เจ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ เจเฉเจเจฐ เจซเจพเจเจฒ เจจเจนเฉเจ เจฎเจฟเจฒเจฆเฉ เจนเฉ: favicon.ico เจ เจคเฉ robots.txt
- เจฒเฉเจเฉเจเจ เจซเจพเจเจฒเจพเจ เจ เจคเฉ เจเฉเจ เจซเจพเจเจฒเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจฐเฉเจเฉ .phpเจเฉเจฐ-เจเจพเจจเฉเฉฐเจจเฉ เจชเจนเฉเฉฐเจ เจเจพเจ เจ เจฃเจเฉฑเจเจค เจธเจผเฉเจฐเฉเจเจค เจจเฉเฉฐ เจฐเฉเจเจฃ เจฒเจ
- เจธเจฅเจฟเจฐ เจ เจคเฉ เจซเฉเจเจ เจซเจพเจเจฒเจพเจ เจฒเจ เจชเจนเฉเฉฐเจ เจฒเฉเจเจฟเฉฐเจ เจจเฉเฉฐ เจ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ
- เจธเจฟเจฐเจฒเฉเจ เจธเฉเจเจฟเฉฐเจ
เจชเจนเฉเฉฐเจ-เจจเจฟเจฏเฉฐเจคเจฐเจฃ-เจฎเจจเจเจผเฉเจฐ-เจฎเฉเจฒ เจซเฉเจเจ เจซเจพเจเจฒเจพเจ เจฒเจ - index.php เจ เจคเฉ เจนเฉเจฐ เจธเจเฉเจเจฟเจเจธ เจฒเจ เจฐเฉเจเจฟเฉฐเจ เจเฉเฉเจจเจพ.
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
cat > ${NGINX_CONF_DIR}/conf.d/default.conf << EOM
upstream unit_php_upstream {
server 127.0.0.1:8080;
keepalive 32;
}
server {
listen 80;
listen [::]:80;
# ACME-challenge used by Certbot for Let's Encrypt
location ^~ /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://${TLS_HOSTNAME}$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ${TLS_HOSTNAME};
root /var/www/wordpress/;
# Let's Encrypt configuration
ssl_certificate ${CERT_DIR}/fullchain.pem;
ssl_certificate_key ${CERT_DIR}/privkey.pem;
ssl_trusted_certificate ${CERT_DIR}/chain.pem;
include ${NGINX_CONF_DIR}/options-ssl-nginx.conf;
ssl_dhparam ${NGINX_CONF_DIR}/ssl-dhparams.pem;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
# Proxy caching
proxy_cache wp_cache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 404 1m;
proxy_cache_revalidate on;
proxy_cache_background_update on;
proxy_cache_lock on;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd,
# .DS_Store (Mac)
# Keep logging the requests to parse later (or to pass to firewall utilities
# such as fail2ban)
location ~ /. {
deny all;
}
# Deny access to any files with a .php extension in the uploads directory;
# works in subdirectory installs and also in multi-site network.
# Keep logging the requests to parse later (or to pass to firewall utilities
# such as fail2ban).
location ~* /(?:uploads|files)/.*.php$ {
deny all;
}
# WordPress: deny access to wp-content, wp-includes PHP files
location ~* ^/(?:wp-content|wp-includes)/.*.php$ {
deny all;
}
# Deny public access to wp-config.php
location ~* wp-config.php {
deny all;
}
# Do not log access for static assets, media
location ~* .(?:css(.map)?|js(.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
access_log off;
}
location ~* .(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
add_header Access-Control-Allow-Origin "*";
access_log off;
}
location / {
try_files $uri @index_php;
}
location @index_php {
proxy_socket_keepalive on;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://unit_php_upstream;
}
location ~* .php$ {
proxy_socket_keepalive on;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
try_files $uri =404;
proxy_pass http://unit_php_upstream;
}
}
EOM
Let's Encrypt เจคเฉเจ เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจฒเจ Certbot เจธเฉเจ เจ เจช เจเจฐเจจเจพ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจตเฉ-เจจเจตเฉเจจเฉเจเจฐเจจ เจเจฐเจจเจพ
- NGINX เจจเฉเฉฐ เจฐเฉเจเจฆเจพ เจนเฉ
- เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเฉเจคเฉเจเจ TLS เจธเฉเจเจฟเฉฐเจเจพเจ เจกเจพเจเจจเจฒเฉเจก
- เจธเจพเจเจ เจฒเจ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจธเจฐเจเจฌเฉเจ เจเจฒเจพเจเจเจฆเจพ เจนเฉ
- เจชเฉเจฐเจฎเจพเจฃ-เจชเฉฑเจคเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ NGINX เจจเฉเฉฐ เจฎเฉเฉ-เจเจพเจฒเฉ เจเจฐเจฆเจพ เจนเฉ
- Certbot เจจเฉเฉฐ เจฐเฉเจเจผเจพเจจเจพ เจธเจตเฉเจฐเฉ 3:24 เจตเจเฉ เจเจฒเจพเจเจฃ เจฒเจ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉ เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจจเฉเฉฐ เจจเจตเจฟเจเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจ เจคเฉ เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ, เจคเจพเจ เจจเจตเฉเจ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจกเจพเจเจจเจฒเฉเจก เจเจฐเฉ เจ เจคเฉ NGINX เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉเจก
echo " Stopping NGINX in order to set up Let's Encrypt"
service nginx stop
mkdir -p /var/www/certbot
chown www-data:www-data /var/www/certbot
chmod g+s /var/www/certbot
if [ ! -f ${NGINX_CONF_DIR}/options-ssl-nginx.conf ]; then
echo " Downloading recommended TLS parameters"
curl --retry 6 -Ls -z "Tue, 14 Apr 2020 16:36:07 GMT"
-o "${NGINX_CONF_DIR}/options-ssl-nginx.conf"
"https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf"
|| echo "Couldn't download latest options-ssl-nginx.conf"
fi
if [ ! -f ${NGINX_CONF_DIR}/ssl-dhparams.pem ]; then
echo " Downloading recommended TLS DH parameters"
curl --retry 6 -Ls -z "Tue, 14 Apr 2020 16:49:18 GMT"
-o "${NGINX_CONF_DIR}/ssl-dhparams.pem"
"https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem"
|| echo "Couldn't download latest ssl-dhparams.pem"
fi
# If tls_certs_init.sh hasn't been run before, remove the self-signed certs
if [ ! -d "/etc/letsencrypt/accounts" ]; then
echo " Removing self-signed certificates"
rm -rf "${CERT_DIR}"
fi
if [ "" = "${LETS_ENCRYPT_STAGING:-}" ] || [ "0" = "${LETS_ENCRYPT_STAGING}" ]; then
CERTBOT_STAGING_FLAG=""
else
CERTBOT_STAGING_FLAG="--staging"
fi
if [ ! -f "${CERT_DIR}/fullchain.pem" ]; then
echo " Generating certificates with Let's Encrypt"
certbot certonly --standalone
-m "${WORDPRESS_ADMIN_EMAIL}"
${CERTBOT_STAGING_FLAG}
--agree-tos --force-renewal --non-interactive
-d "${TLS_HOSTNAME}"
fi
echo " Starting NGINX in order to use new configuration"
service nginx start
# Write crontab for periodic Let's Encrypt cert renewal
if [ "$(crontab -l | grep -m1 'certbot renew')" == "" ]; then
echo " Adding certbot to crontab for automatic Let's Encrypt renewal"
(crontab -l 2>/dev/null; echo "24 3 * * * certbot renew --nginx --post-hook 'service nginx reload'") | crontab -
fi
เจคเฉเจนเจพเจกเฉ เจธเจพเจเจ เจฆเฉ เจตเจพเจงเฉ เจ เจจเฉเจเฉเจฒเจคเจพ
เจ เจธเฉเจ เจเฉฑเจชเจฐ เจเฉฑเจฒ เจเฉเจคเฉ เจนเฉ เจเจฟ เจธเจพเจกเฉ เจธเจเฉเจฐเจฟเจชเจ NGINX เจ เจคเฉ NGINX เจฏเฉเจจเจฟเจ เจจเฉเฉฐ TLSSSL เจธเจฎเจฐเจฅเจฟเจค เจชเฉเจฐเฉเจกเจเจธเจผเจจ-เจคเจฟเจเจฐ เจธเจพเจเจ เจฆเฉ เจธเฉเจตเจพ เจเจฐเจจ เจฒเจ เจเจฟเจตเฉเจ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจฆเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจชเจฃเฉเจเจ เจฒเฉเฉเจพเจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ, เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจตเฉ เจธเจผเจพเจฎเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
- เจธเจนเจฟเจฏเฉเจ
เจฌเฉเจฐเฉเจเฉเจฒเฉ , HTTPS เจเฉฑเจคเฉ เจเฉฑเจกเจฆเฉ เจนเฉเจ เจธเฉฐเจเฉเจเจจ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจฎเจพเจก เจธเฉเจฐเฉฑเจเจฟเจ ัเจตเจฐเจกเจชเจฐเฉเจธ เจฒเจ เจจเจฟเจฏเจฎ เจคเฉเจนเจพเจกเฉ เจธเจพเจเจ 'เจคเฉ เจธเจตเฉเจเจฒเจฟเจค เจนเจฎเจฒเจฟเจเจ เจจเฉเฉฐ เจฐเฉเจเจฃ เจฒเจเจฌเฉเจ เจ เจช เจตเจฐเจกเจชเจฐเฉเจธ เจฒเจ เจเฉ เจคเฉเจนเจพเจกเฉ เจฒเจ เจ เจจเฉเจเฉเจฒ เจนเฉเจธเฉเจฐเฉฑเจเจฟเจ เจฆเฉ เจธเจนเจพเจเจคเจพ เจจเจพเจฒเจเจชเจ เจฐเจฎเฉเจฐ (เจเจฌเฉฐเจเฉ เจเฉฑเจคเฉ)- เจชเฉเจธเจเจซเจฟเจเจธ เจเจพเจ msmtp เจคเจพเจ เจเจฟ เจตเจฐเจกเจชเจฐเฉเจธ เจฎเฉเจฒ เจญเฉเจ เจธเจเฉ
- เจคเฉเจนเจพเจกเฉ เจธเจพเจเจ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ เจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจธเจฎเจ เจธเจเฉ เจเจฟ เจเจน เจเจฟเฉฐเจจเฉ เจเฉเจฐเฉเจซเจฟเจ เจจเฉเฉฐ เจธเฉฐเจญเจพเจฒ เจธเจเจฆเฉ เจนเฉ
เจนเฉเจฐ เจตเฉ เจฌเจฟเจนเจคเจฐ เจธเจพเจเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจ, เจ
เจธเฉเจ เจเจธ 'เจคเฉ เจ
เฉฑเจชเจเฉเจฐเฉเจก เจเจฐเจจ เจฆเฉ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเฉ เจนเจพเจ
NB เจเฉฑเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจฒเฉเจก เจเฉเจคเฉ เจธเจพเจเจ เจฆเฉ เจธเจฎเจฐเจฅเจจ เจฒเจ, เจคเฉเจธเฉเจ เจฎเจพเจนเจฐเจพเจ เจจเจพเจฒ เจธเฉฐเจชเจฐเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจธเจพ Southเจฅเจฌเฉเจฐเจฟเจ . เจ เจธเฉเจ เจเจฟเจธเฉ เจตเฉ เจฒเฉเจก เจฆเฉ เจ เจงเฉเจจ เจคเฉเจนเจพเจกเฉ เจตเฉเจฌเจธเจพเจเจ เจเจพเจ เจธเฉเจตเจพ เจฆเฉ เจคเฉเจเจผ เจ เจคเฉ เจญเจฐเฉเจธเฉเจฎเฉฐเจฆ เจธเฉฐเจเจพเจฒเจจ เจจเฉเฉฐ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจตเจพเจเจเฉเฅค
เจธเจฐเฉเจค: www.habr.com