[WordPress] WP PHP extension requirements

cURL – 127 uses (requires libcurl)

  • HTTP API (class WP_Http_curl)
  • url_is_accessable_via_ssl()
  • SimplePie (overridden with class WP_SimplePie_File)
  • GoogleSpell (from TinyMCE package, is not used?)

Date/Time – 367 uses

DOM – 6 uses (requires libxml)

  • iis7_rewrite_rule_exists()
  • iis7_delete_rewrite_rule()
  • iis7_add_rewrite_rule()
  • saveDomDocument()

POSIX Regex – 23 uses

Filter – 2 uses

  • class PHPMailer->ValidateAddress() (optional)

FTP – 72 uses

  • class ftp_base
  • class ftp (pure and sockets versions)
  • class WP_Filesystem_FTPext
  • class WP_Filesystem_ftpsockets

GD – 56 uses

  • wp-admin\includes\image-edit.php
  • wp-admin\includes\image.php
  • wp-includes\media.php

Hash – 6 uses

  • wp-includes\pluggable.php multiple uses (optional – fallback in wp-includes\compat.php)

iconv – 5 uses

  • class SimplePie (optional)
  • wp_check_invalid_utf8() (optional)
  • wp-mail.php (optional)

JSON – 20 uses

  • optional, fallbacks in wp-includes/compat.php

libxml – 4 uses

  • class WP_oEmbed->_parse_xml() (optional)
  • SimplePie

Multibyte String – 29 uses

  • some fallback in wp-includes/compat.php

MySQL – 60 uses

  • class wpdb
  • class SimplePie_Cache (overridden with class WP_Feed_Cache)

OpenSSL – 4 uses

  • class PHPMailer

PCRE – 743 uses

SimpleXML – 1 uses

  • class WP_oEmbed (seems optional)

Sockets – 64 uses

  • class ftp (sockets implementation)

SPL – 3 uses

  • Tokenizer – 3 uses

    • wp_doc_link_parse() (optional)

XML Parser – 89 uses

XMLReader – 1 uses

  • SimplePie (seems optional)

Zlib – 30 uses

[Apache|Nginx] Reverse proxy Real IP

Front Nginx — Back Apache


Nginx

Setting Reverse Proxy with X-Real-IP

$ vi /etc/nginx/conf.d/<SomeReverseProxy>.conf

server {
    listen 80;

    server_name subdomain.silnex.kr;

    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://127.0.0.1:8080;
}

 

Apache

Module Load

$ a2enmod remoteip

Create (or Edit) remoteip.conf 

$ vi /etc/apache2/conf-available/remoteip.conf

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1

than execute $ a2enconf remoteip

Edit apache2.conf(or httpd.conf)

$ vi /etc/apache/apache2.conf

## 수정 전 ##
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
#LogFormat "%h %l %u %t \"%r\" %>s %O" common 
## 수정 후 ##
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O" common

Restart apache service

$ service apache2 restart

[Docker&Compose] Docker & compose & auto complete install

Docker & docker-compose & docker-compose auto complete install


ENV

OS : ubuntu 16.04
Docker ver: docker CE 17.12.1 (2018-03-17)
compose-version : 1.19.0

Recommend follow official page install guide


TL; DR

#Docker CE install on Ubuntu 16.04
$ sudo apt-get remove docker docker-engine docker.io\
    && sudo apt-get update \
    && sudo apt-get install  apt-transport-https ca-certificates curl software-properties-common \
    && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add – \
    && sudo apt-key fingerprint 0EBFCD88 \
    && sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
    && sudo apt-get update \
    && sudo apt-get install docker-ce

#Docker-compose(1.19.0) install on Ubuntu 16.04
$ sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose \
    && sudo chmod +x /usr/local/bin/docker-compose

# Docker-compose bash complete install on Ubuntu 16.04
$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.19.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose \
    && source ~/.bashrc
# OR Logout and Login

 


Docker install [link]

$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt-get update
$ sudo apt-get install  apt-transport-https \
     ca-certificates \
     curl \
     software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \ 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

 

Docker-compose install [link]

$ sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

 

Docker-compose auto complete install [link]

$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.19.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
# source ~/.bashrc OR Logout and Login

If not working then install bash_completion package and retry.

[ssh|sftp] ssh root 접근 허용 및 제한

SSH & SFTP root 접근 허용 및 제한


TL; DR

[ubuntu 16.04 기준]

$ vi /etc/ssh/sshd_config

PermitRootLogin prohibit-password >> PermitRootLogin yes

$ sudo service ssh restart


root의 password를 설정한 이후에도 ssh 접근이 안되거나,

오류: 인증 실패.
오류: 치명적 오류: 서버에 연결하지 못함

sftp를 통해 접속하려고 할 때 위와 같은 메시지가 나오면서 로그인이 안되는 경우에 대한 해결법이다.

/etc/ssh/sshd_config 파일에서 PermitRootLogin옵션의 값을 yes로 변경한후 SSH 데몬을 재시작 해주면 된다.

 

PermitRootLogin 옵션 설정 가능 정보

yes  : 원격 root 로그인 허용
no : 원격 root 로그인 금지
prohibit-password : 원격에서 키 로그인은 허용, 하지만 password를 사용한 로그인은 금지