æè¿ããã¹ãã£ã³ã°ããVPSã«ç§»è¡ããããšã«ããŸãããCentOS7ãNginxãApacheãPHPãMySQLã䜿çšããŸãã ãã®ãããã¯ã«é¢ããèšäºã¯å€æ°ãããŸãããå€ãã®åŽé¢ã«ã€ããŠã¯èšåãããŠããªãããããã®èšäºãæçš¿ããŠç¥èã®ããçµéšè±å¯ãªäººã
ã®æèŠãèããŸãã ãã§ã«çè§£ãããšããã«ãµãŒããŒãæ§æãããããã³ã¡ã³ãããèšäºã®é¢é£æ§ã倿ã§ããŸãã Nginxã¯ããµãŒããŒã®è² è·ãæžããããã«ãéçããã³Apacheãã€ããã¯ã¹ïŒPHPã¹ã¯ãªããïŒãæäŸããŸãã
æºåããããžã§ã¯ãã®çšŒåäžã®ãµãŒããŒã®ãã¹ãŠã®èšå®ãããµãŒããŒæ§æïŒCPU-2Ã2000 MHzããã³RAM-2048 MBïŒã§é©çšããŸãã
éå§ããã«ã¯ãCentOS 7ãããªã€ã³ã¹ããŒã«ãããé©åãªVPSãèŠã€ãã
PuTTYçµç±ã§SSHçµç±ã§ãµãŒããŒã«æ¥ç¶ããŸãã
ãã¹ãåãšããŒããå
¥åããŠã[éã]ãã¯ãªãã¯ããŸãã

次ã«ããã°ã€ã³[Enter]ãå
¥åããæ¬¡ã«ãã¹ã¯ãŒããå
¥åããŸãïŒãã¹ã¯ãŒãã¯è¡šç€ºãããªãããšã«æ³šæããŠãã ããïŒ[Enter]ïŒ
ããã±ãŒãžã®å€ãããŒãžã§ã³ãç¶æããªãããã·ã¹ãã ãæŽæ°ããŸãã
[root@test ~]# yum update
ãŸãã¯ããã¹ãŠã®ããã±ãŒãžãæŽæ°ãããšãå€ãããã±ãŒãžãåé€ãããŸãã
[root@test ~]# yum upgrade
ããã¹ãã€ã³ã¿ãŒãã§ãŒã¹ã§ãã¡ã€ã«ãããŒãžã£ãŒãã€ã³ã¹ããŒã«ãã-Midnight CommanderïŒ
[root@test ~]# yum install mc
ããã¹ããšãã£ã¿-Nanoãã€ã³ã¹ããŒã«ããŸãã
[root@test ~]# yum install nano
ãµãŒããŒã§äœ¿çšå¯èœãªRAMã®éãšäœ¿çšå¯èœãªéãããã³SWAPã®ååšã確èªããŸãã RAMãäžè¶³ãããšãããŒã¿ããã£ã¹ã¯ã«è»¢éããããµãŒããŒã®é床ãäœäžããŸããSWAPã¯æãŸãããããŸããããæ¬¡ã®ããšãä¿èšŒã§ããŸãã
[root@test ~]# free -m
ãµã€ãã®ãã¡ã€ã«æ§é ãšãŠãŒã¶ãŒãäœæããŸãããã¹ãŠã®ãµã€ãã®ãã¡ã€ã«çšã®ãã£ã¬ã¯ããªïŒãã©ã«ããŒïŒãäœæããŸãã
[root@test ~]# cd /
[root@test ~]# mkdir -m 755 website
åã
ã®ãµã€ãã®äžã§ãæ¬¡ã®æé ãå®è¡ããŸããåãµã€ãã®ã³ã³ãã³ãã¯ç¬èªã®ãã£ã¬ã¯ããªã«ãããããã¢ã¯ã»ã¹æš©ãåºå¥ããããã«æ°ãããŠãŒã¶ãŒãšåå¥ã®ãã£ã¬ã¯ããªãäœæããŸãã
-bãŠãŒã¶ãŒãã£ã¬ã¯ããªãäœæããããã©ã«ããŒ
-mãã£ã¬ã¯ããªãäœæããŸã
-UãŠãŒã¶ãŒãšåãååã®ã°ã«ãŒããäœæããŸã
-s / bin / falseãŠãŒã¶ãŒã·ã§ã«ãç¡å¹ã«ããŸã
[root@test ~]# useradd name.site -b /website/ -m -U -s /bin/false
ãµã€ãããŒã¿ïŒãµã€ããã¡ã€ã«ããã°ãäžæãã¡ã€ã«ïŒã®ãã£ã¬ã¯ããªãäœæããŸãã
[root@test ~]# mkdir -p -m 754 /website/name.site/www
[root@test ~]# mkdir -p -m 754 /website/name.site/logs
[root@test ~]# mkdir -p -m 777 /website/name.site/tmp
ææè
ãšã°ã«ãŒãããµããã©ã«ããŒãå«ããã£ã¬ã¯ããªã«å€æŽããŸãã
[root@test ~]# chown -R name.site:name.site /website/name.site/
ãã£ã¬ã¯ããªãžã®ã¢ã¯ã»ã¹æš©ã倿ŽããŸã-name.siteïŒ
[root@test ~]# chmod 755 /website/name.site
Nginxãã€ã³ã¹ããŒã«ããŸããã€ã³ã¹ããŒã«æé ã¯ã
Nginxã®å
¬åŒWebãµã€ãã§æäŸãããŠããŸãã
CentOSã§yumãªããžããªãæ§æããã«ã¯ããã¡ã€ã«/etc/yum.repos.d/nginx.repoãäœæããŸãã
[root@test ~]# cd /etc/yum.repos.d
[root@test ~]# touch nginx.repo
nginx.repoãã¡ã€ã«ãéããŸãã
[root@test ~]# nano /etc/yum.repos.d/nginx.repo
ãã®ã³ã³ãã³ãã貌ãä»ããŠãã¡ã€ã«ãä¿åããŸãã
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
眲åã確èªããã«ã¯ãããŒãããŠã³ããŒãããŠãrpmããã±ãŒãžãããŒãžã£ãŒã«ã€ã³ããŒãããŸãã
[root@test ~]# rpm --import http://nginx.org/keys/nginx_signing.key
Nginxãã€ã³ã¹ããŒã«ããŸãã
[root@test ~]# yum install nginx
以äžãéå§ããŸãã
[root@test ~]# systemctl start nginx.service

äžæåæ¢ïŒ
[root@test ~]# systemctl stop nginx.service
ApacheãšPHPãã€ã³ã¹ããŒã«ããŸããApacheãã€ã³ã¹ããŒã«ããŸãïŒCentOS-httpdäžïŒïŒ
[root@test ~]# yum install httpd
PHPãã€ã³ã¹ããŒã«ããŸãã
[root@test ~]# yum install php
Apacheãèµ·åããŸãã
[root@test ~]# systemctl start httpd.service

äžæåæ¢ïŒ
[root@test ~]# systemctl stop httpd.service
Nginxãæ§æããŸããã¹ã¿ãŒãã¢ããã«è¿œå ïŒ
[root@test ~]# systemctl enable nginx.service
ã¡ã€ã³æ§æãã¡ã€ã«ãéããŸãã
[root@test ~]# nano /etc/nginx/nginx.conf
ç·šéããŠä¿åããŸãïŒ
/etc/nginx/nginx.confuser nginx;
worker_processes 2;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
multi_accept on;
}
http {
error_log /var/log/nginx/error.log warn;
access_log off;
charset utf-8;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
reset_timedout_connection on;
client_header_timeout 15;
client_body_timeout 30;
send_timeout 15;
keepalive_timeout 5;
keepalive_requests 30;
client_max_body_size 8m;
limit_rate_after 30M;
limit_rate 500K;
open_file_cache max=10000 inactive=3m;
open_file_cache_min_uses 2;
open_file_cache_valid 1m;
sendfile on;
tcp_nodelay on;
tcp_nopush on;
include /etc/nginx/conf.d/*.conf;
}
Nginxãèµ·åãããŠãŒã¶ãŒïŒ
user nginx;
ã¯ãŒã¯ããã»ã¹ã®æ°ã瀺ããŸãïŒããã»ããµã³ã¢ã®æ°ãšããŒããã£ã¹ã¯ã®æ°ã«äŸåããŸãããã£ã¹ã¯ãããã¯é«éã«ç§»åã§ããªãããã§ãïŒã
worker_processes 2;
å®è¡äžã®ãµãŒããŒã®ããã»ã¹IDïŒ
pid /var/run/nginx.pid;
ã€ãã³ãã»ã¯ã·ã§ã³ïŒ
events {
#
}
ã€ãã³ããããã¯å
ã§ããµãŒããŒãžã®åææ¥ç¶ã®æå€§æ°ïŒworker_processesÃworker_connectionsïŒïŒ
worker_connections 1024;
ã€ãã³ããããã¯å
ã§ãå¯èœãªéãæ¥ç¶ãåãå
¥ããŸãã
multi_accept on;
httpã»ã¯ã·ã§ã³ãæ®ãã¯ãã®äžã«ãããŸãïŒ
http {
#
}
æå®ããããã¹ã§ãã°ãšã©ãŒïŒã¬ãã«ïŒèŠåããšã©ãŒãã¯ãªãã£ã«ã«ãã¢ã©ãŒãïŒïŒ
error_log /var/log/nginx/error.log warn;
ã¢ã¯ã»ã¹ãã°ãšã³ããªãç¡å¹ã«ããŸãïŒããŒããã©ã€ãã¯ãããããšãããšèšããŸãïŒïŒ
access_log off;
ããã©ã«ãã®ãšã³ã³ãŒããèšå®ããŸãã
charset utf-8;
NginxããŒãžã§ã³ã®è¡šç€ºããªãã«ããŸãã
server_tokens off;
MIMEã¿ã€ããæ¥ç¶ããŸãã
include /etc/nginx/mime.types;
ãã¡ã€ã«ã®MIMEã¿ã€ããå€å¥ã§ããªãå Žåãããã©ã«ãã§ã¯ãã¡ã€ã«ã¯ãã€ããªã«ãªããŸãã
default_type application/octet-stream;
ã¯ã©ã€ã¢ã³ããå¿çããªãå Žåãæ¥ç¶ãéããŸãã
reset_timedout_connection on;
ã¯ã©ã€ã¢ã³ãèŠæ±ããããŒã15ç§ä»¥å
ã§èªã¿åããŸãã
client_header_timeout 15;
ã¯ã©ã€ã¢ã³ãèŠæ±æ¬æã30ç§ä»¥å
ã§èªã¿åããŸã-ééã¯ãèŠæ±æ¬æã®è»¢éå
šäœã§ã¯ãªãã2ã€ã®é£ç¶ããèªã¿åãæäœã®éã§ã®ã¿èšå®ãããŸãã
client_body_timeout 30;
ã¯ã©ã€ã¢ã³ãã15ç§ä»¥äžå¿çãåãå
¥ããªãå Žåãæ¥ç¶ããªã»ããããŸãã
send_timeout 15;
5ç§ä»¥å
ã§æ¥ç¶ãéãããŸãŸã«ããŸãã
keepalive_timeout 5;
1ã€ã®ã¯ã©ã€ã¢ã³ãããã®ãªãŒãã³æ¥ç¶èŠæ±ã®æå€§æ°ïŒ
keepalive_requests 30;
8ã¡ã¬ãã€ããè¶
ãããªã¯ãšã¹ãã¯åãä»ããŸããã
client_max_body_size 8m;
1人ã®ãŠãŒã¶ãŒãç¡æã®ãã©ãã£ãã¯ãã£ãã«å
šäœãå æããªãããã«ã30 MBåŸã«ããŒã¿åºåã®é床ã«å¶éã課ããŸãã
limit_rate_after 30M;
å¶éåŸã®1ã€ã®æ¥ç¶å
ã§ã®ã¯ã©ã€ã¢ã³ãã®æå€§é床ã¯500 Kb / s以äžã«ãªããŸãã
limit_rate 500K;
ãã¡ã€ã«ã®æå€§æ°ãèšå®ããŸãããã¡ã€ã«ã«é¢ããæ
å ±ã¯ãã£ãã·ã¥ã«æ ŒçŽããã3å以å
ã«ãã¡ã€ã«ãååºŠèŠæ±ãããªãå Žåã¯åé€ãããŸãã
open_file_cache max=10000 inactive=3m;
ãã¡ã€ã«ã2å以äžèŠæ±ãããå Žåããã£ãã·ã¥ã«å
¥ããŸãïŒ
open_file_cache_min_uses 2;
ãã£ãã·ã¥ã®é¢é£æ§ã1åããšã«ç¢ºèªããŸãã
open_file_cache_valid 1m;
仲ä»ãªãã§éååŠãäžããïŒ
sendfile on;
ããŒã¿ããããã¡ãªã³ã°ããªãã§ãã ããïŒ
tcp_nodelay on;
1ã€ã®ãããã§ããããŒãéä¿¡ããŸãã
tcp_nopush on;
æ¥ç¶èšå®ïŒ
include /etc/nginx/conf.d/*.conf;
ãµã€ãããšã«ãä»®æ³Nginxãã¹ããäœæããŸããNginxããµã€ããã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ãnginxãŠãŒã¶ãŒãname.siteã°ã«ãŒãã«è¿œå ããŸãã
[root@test ~]# usermod -a -G name.site nginx
次ã«ãæ§æãã¡ã€ã«ãäœæããŸãã
[root@test ~]# touch /etc/nginx/conf.d/name.site.conf
ãã¡ã€ã«ãéããŸãã
[root@test ~]# nano /etc/nginx/conf.d/name.site.conf
ç·šéããŠä¿åããŸãïŒ
/etc/nginx/conf.d/name.site.confserver {
listen 80;
server_name name.site www.name.site;
#access_log /website/name.site/logs/nginx_access.log;
error_log /website/name.site/logs/nginx_error.log;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
location ~* \.(css|js|png|gif|jpg|jpeg|ico)$ {
root /website/name.site/www;
expires 1d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
ãµãŒããŒã¯ããŒã80ã§ãªãã¹ã³ããŸãã
listen 80;
ãµãŒããŒåã¯ããªã¯ãšã¹ããå®è¡ããããããã¯ã決å®ãããã¡ã€ã³åã瀺ãããŸãã
server_name name.site www.name.site;
ç¹å®ã®ãµã€ãã®Nginxãšã©ãŒãã°ãžã®ãã¹ïŒ
error_log /serves/name.site/logs/nginx_error.log;
Apacheãªã¯ãšã¹ãã®ãªãã€ã¬ã¯ãïŒ
proxy_pass http://127.0.0.1:8080/;
ApacheãµãŒããŒããå¿çãèªã¿åããšãã«ã¿ã€ã ã¢ãŠããè¶
ããå Žåã300ç§åŸã«æ¥ç¶ãåæããŸãã
proxy_read_timeout 300s;
ããããŒãæž¡ãïŒ
proxy_set_header Host $host;
ã¯ã©ã€ã¢ã³ãIPã®è»¢éïŒ
proxy_set_header X-Real-IP $remote_addr;
èŠæ±ãè¡ããããµãŒããŒã®ãªã¹ããéä¿¡ããç¬èªã®ãµãŒããŒã远å ããŸãã
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
ãããã·ãµãŒããŒã®ãããã¡ãªã³ã°ãç¡å¹ã«ããŸãã
proxy_buffering off;
Nginxã¯çµ±èšãæäŸããŸãïŒ
location ~* \.(css|js|png|gif|jpg|jpeg|ico)$ {
root /serves/name.site/www;
expires 1d;
}
Apacheãæ§æããŸããã€ã³ã¹ããŒã«ããApacheã¢ãžã¥ãŒã«ã確èªããŸãã ç§ã¯apache2-mpm-preforkãæã£ãŠããŸãïŒ1ã€ã®ã¹ã¬ãããæã€1ã€ã®ããã»ã¹ã1ã€ã®æ¥ç¶ãåŠçããŸããPHPãšäžç·ã«å®å
šã§ããããšãæšå¥šãããŸãïŒïŒ
[root@test ~]# apachectl -V
httpd.confãéããŸãã
[root@test ~]# nano /etc/httpd/conf/httpd.conf
ç·šéããŠä¿åããŸãïŒ
httpd.confServerRoot "/etc/httpd"
DocumentRoot "/website"
Include conf.modules.d/*.conf
User apache
Group apache
Listen 127.0.0.1:8080
ServerName 127.0.0.1:8080
ServerAdmin root@localhost
ServerSignature Off
ServerTokens Prod
RLimitMEM 786432000
TimeOut 250
AddDefaultCharset utf-8
DefaultLanguage ru
KeepAlive Off
ContentDigest Off
EnableSendfile off
ErrorLog "logs/error_log"
LogLevel error
<IfModule mime_module>
TypesConfig /etc/mime.types
</IfModule>
<Directory />
DirectoryIndex index.php
AllowOverride none
Require all denied
</Directory>
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 30
MaxRequestsPerChild 2500
</IfModule>
<Files ".ht*">
Require all denied
</Files>
IncludeOptional sites-enabled/*.conf
Apacheã«ãŒããã£ã¬ã¯ããªãã€ã³ã¹ããŒã«ããŸãã
ServerRoot "/etc/httpd"
ãµã€ããã¡ã€ã«ãä¿åããããã£ã¬ã¯ããªïŒ
DocumentRoot "/website"
èšå®ãã¡ã€ã«ãããŒãããŸãïŒ
Include conf.modules.d/*.conf
ãµãŒããŒãèµ·åãããŠãŒã¶ãŒïŒ
User apache
ãµãŒããŒãèµ·åããã°ã«ãŒãïŒ
Group apache
èŠæ±ãåãå
¥ããIPãšããŒããæå®ããŸã;å€éšããã¯ããã®ãµãŒããŒã¯è¡šç€ºãããŸããïŒ
Listen 127.0.0.1:8080
èªå·±æ±ºå®ã®ããã®ãã¹ãåãšããŒãïŒ
ServerName 127.0.0.1:8080
ãšã©ãŒãçºçããå Žåã«ã¯ã©ã€ã¢ã³ãã«éä¿¡ãããã¡ãŒã«ã¢ãã¬ã¹ïŒ
ServerAdmin root@localhost
ã·ã¹ãã ãšApacheãµãŒããŒã®ããŒãžã§ã³æ
å ±ã®éä¿¡ãç¡å¹ã«ããŸãã
ServerSignature Off
ããããŒã§Apacheã«é¢ããã¯ã©ã€ã¢ã³ãæ
å ±ã®éä¿¡ãç¡å¹ã«ããŸãã
ServerTokens Prod
ã¡ã¢ãªäœ¿çšéã750ã¡ã¬ãã€ãã«å¶éããŸãã
RLimitMEM 786432000
ãªã¯ãšã¹ãã®åä¿¡ãåŠçãã³ã³ãã³ãã®NginxãµãŒããŒãžã®éä¿¡ã®æå€§æéïŒ
TimeOut 250
ãšã³ã³ãŒããèšå®ããŸãã
AddDefaultCharset utf-8
ã³ã³ãã³ãã®èšèªãèšå®ããŸãã
DefaultLanguage ru
1ã€ã®æ¥ç¶ã§å€æ°ã®ãªã¯ãšã¹ãã®åŠçããªãã«ããŸãã
KeepAlive Off
Content-MD5 HTTPããããŒã®çæããªãã«ããŸãã
ContentDigest Off
Apacheã¯staticãæäŸããªããããåæããŸãã
EnableSendfile off
æå®ããããã¹/ etc / httpd / logs / error_logã«Apacheãšã©ãŒãæžã蟌ã¿ãŸãã
ErrorLog "logs/error_log"
ãšã©ãŒãèšé²ããã¬ãã«ã瀺ããŸãã
LogLevel error
MIMEã¿ã€ããæ¥ç¶ããŸãã
<IfModule mime_module>
TypesConfig /etc/mime.types
</IfModule>
ãã£ã¬ã¯ããªã»ã¯ã·ã§ã³ïŒ
<Directory />
...
</Directory>
Directoryãããã¯å
ã§ããã£ã¬ã¯ããªãžã®ãã¹ãæå®ãããŠããå Žåãindex.phpãæå®ããŸã::
DirectoryIndex index.php
Directoryãããã¯å
ã§ã.htaccessã®ã¢ã¯ã»ã¹æ
å ±ã®äžæžããçŠæ¢ããŸãã
AllowOverride none
ãã£ã¬ã¯ããªãããã¯å
ã§ããµãŒããŒãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãæåŠããŸãã
Require all denied
Mpm_prefork_moduleã»ã¯ã·ã§ã³ïŒ
<IfModule mpm_prefork_module>
...
</IfModule>
Apacheãèµ·åããåŸãmpm_prefork_moduleãããã¯å
ã«5ã€ã®ããã»ã¹ãäœæããŸãã
StartServers 5
mpm_prefork_moduleãããã¯å
ã®æªäœ¿çšããã»ã¹ã®æå°æ°ïŒãã¹ãŠã®ããã»ã¹ãããžãŒã®å Žåãæ°ãã空ãããã»ã¹ãéå§ãããŸãïŒïŒ
MinSpareServers 5
mpm_prefork_moduleãããã¯å
ã§ã¯ãæªäœ¿çšïŒã¹ãã¢ïŒããã»ã¹ã®æå€§æ°ã¯æ¬¡ã®ãšããã§ãã
MaxSpareServers 10
åæã«éå§ã§ããåããã»ã¹ã®æå€§æ°ã§ããmpm_prefork_moduleãããã¯å
ã§ãæ®ãã¯ãã¥ãŒã«å
¥ããããŸãïŒåããã»ã¹ã®å¢å ã«äŒŽããã¡ã¢ãªæ¶è²»ãå¢å ããŸãïŒã
MaxClients 30
mpm_prefork_moduleãããã¯å
ã§ãæå®ãããæ°ã®ãªã¯ãšã¹ããåŠçãããåŸãããã»ã¹ãåèµ·åããŸãïŒãªãŒããŒãããŒæã«å¿
èŠ-ã¡ã¢ãªãªãŒã¯ïŒïŒ
MaxRequestsPerChild 2500
.htaccessãžã®è¿æ¥ã¢ã¯ã»ã¹ïŒ
<Files ".ht*">
Require all denied
</Files>
èšå®ãã¡ã€ã«ãããŒãããŸãïŒ
IncludeOptional sites-enabled/*.conf
åãµã€ãã«å¯ŸããŠãApacheä»®æ³ãã¹ããäœæããŸããåãµã€ãã®ã°ã«ãŒãã«apacheãŠãŒã¶ãŒã远å ããŸãã
[root@test ~]# usermod -a -G name.site apache
Apacheä»®æ³ãã¹ãæ§æãã¡ã€ã«çšã®ãã£ã¬ã¯ããªãäœæããŸãã
[root@test ~]# mkdir /etc/httpd/sites-enabled
æ§æãã¡ã€ã«ãäœæããŸãã
[root@test ~]# touch /etc/httpd/sites-enabled/name.site.conf
ãã¡ã€ã«ãéããŸãã
[root@test ~]# nano /etc/httpd/sites-enabled/name.site.conf
ç·šéããŠä¿åããŸãïŒ
/etc/httpd/sites-enabled/name.site.conf<VirtualHost *:8080>
ServerName name.site
ServerAlias www.name.site
DocumentRoot /website/name.site/www
<Directory "/website/name.site">
AllowOverride None
Require all granted
</Directory>
DirectoryIndex index.php
ErrorLog /website/name.site/logs/error.log
CustomLog /website/name.site/logs/requests.log combined
</VirtualHost>
VirtualHostãããã¯ããªãã¹ã³ããããŒãã瀺ãããŸãã
<VirtualHost *:8080>
...
</VirtualHost>
ãã¡ã€ã³åïŒ
ServerName name.site
ãã¡ã€ã³ãã©ãŒïŒ
ServerAlias www.name.site
ãã®ãµã€ãã®ãã¡ã€ã«ãä¿åããããã£ã¬ã¯ããªïŒ
DocumentRoot /website/name.site/www
ãµã€ããã¡ã€ã«ãå
±æããïŒ
Require all granted
ãã£ã¬ã¯ããªãžã®ãã¹ãæå®ãããŠããå Žåãããã©ã«ãã§ä»¥äžãéããŸãã
DirectoryIndex index.php
ç¹å®ã®ãµã€ãã®Apacheãšã©ãŒãã°ãžã®ãã¹ïŒ
ErrorLog /website/name.site/logs/error.log
ã¢ã¯ã»ã¹ãã°ãã¹ïŒ
CustomLog /website/name.site/logs/requests.log combined
NginxãšApacheã®ç¢ºèªãApacheãã¹ã¿ãŒãã¢ããã«è¿œå ããŸãã
[root@test ~]# systemctl enable httpd.service
ãã¡ã€ã«ãäœæãç·šéãä¿åããŸãã
[root@test ~]# touch /website/name.site/www/index.php
[root@test ~]# nano /website/name.site/www/index.php
phpèšå®ãã³ããŒããŸãã
[root@test ~]# cp /etc/httpd/conf.d/php.conf /etc/httpd/sites-enabled/php.conf
NginxãšApacheãèµ·åããŸãã
[root@test ~]# systemctl start nginx.service
[root@test ~]# systemctl start httpd.service
PHPãæ§æããŸããphp.iniãéããŸãã
[root@test ~]# nano /etc/php.ini
ç·šéããŠä¿åããŸãïŒ
/etc/php.iniengine = On
expose_php = Off
short_open_tag = Off
zlib.output_compression = Off
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source, etc
display_startup_errors = Off
display_errors = Off
log_errors = On
error_log = "/usr/local/zend/var/log/php.log"
ignore_repeated_errors = Off
ignore_repeated_source = Off
html_errors = On
implicit_flush = Off
output_buffering = 4K
realpath_cache_size = 2M
realpath_cache_ttl = 1800
zend.enable_gc = On
max_input_time = 200
max_execution_time = 30
file_uploads = On
memory_limit = 256M
post_max_size = 8M
upload_max_filesize = 2M
max_file_uploads = 4
extension_dir = "/usr/local/zend/lib/php_extensions"
date.timezone = Europe/Moscow
default_mimetype = "text/html"
default_charset = "UTF-8"
variables_order = "CGPS"
register_argc_argv = Off
auto_globals_jit = On
enable_dl = Off
allow_url_fopen = On
allow_url_include = Off
PHPã€ã³ã¿ãŒããªã¿ãŒããªã³ã«ããŸããå¿
èŠã«å¿ããŠãç¹å®ã®ãµã€ãã§ãªãã«ããããšãã§ããŸãã
engine = On
PHPã«ã€ããŠã¯ã©ã€ã¢ã³ãã«éä¿¡ãããããããŒãç¡å¹ã«ããŸãã
expose_php = Off
PHPã¿ã°ã®çãæžã蟌ã¿ãç¡å¹ã«ãã<ïŒ...ïŒ>ïŒ
short_open_tag = Off
ããŒãžã®å§çž®ããªãã«ããŸãã
zlib.output_compression = Off
å±éºãªæ©èœãç¡å¹ã«ããŸãã
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source, etc
PHPã®èµ·åäžã«çºçãããšã©ãŒã衚瀺ããªãã§ãã ããã
display_startup_errors = Off
ãšã©ãŒã衚瀺ããªãïŒ
display_errors = Off
ãã£ã¹ãã¬ã€ããªãã«ããåŸã®ãšã©ãŒãèšé²ããŸãã
log_errors = On
ãšã©ãŒãæžã蟌ãŸãããã¡ã€ã«ïŒ
error_log = "/usr/local/zend/var/log/php.log"
ç¹å®ã®ãã¡ã€ã«ããã³è¡ã§çºçããåããšã©ãŒãèšé²ããªãã§ãã ããïŒignore_repeated_source-ãªãã«ããå¿
èŠããããŸãïŒã
ignore_repeated_errors = Off
ãªã³ã«ãããšãç°ãªããã¡ã€ã«ãè¡ã§çºçããå¯èœæ§ã®ããåããšã©ãŒã¯èšé²ãããªãããããªãã«ããŸãã
ignore_repeated_source = Off
ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããšãã«HTMLã¿ã°ããªãã«ããŸãã
html_errors = On
ããŒã¿ããããã¡ã«è¿œå ããŸãã
implicit_flush = Off
ãã¹ãŠã®ãã¡ã€ã«ã®
åºåãããã¡ãªã³ã° ãæå€§æ°ïŒ
output_buffering = 4K
realpath cacheã䜿çšããŠ
ã statïŒïŒã®åŒã³åºãåæ°ãæžãããŸãïŒ
realpath_cache_size = 2M
ãã£ãã·ã¥ã¹ãã¬ãŒãžæéã30åã«èšå®ããŸãã
realpath_cache_ttl = 1800
埪ç°ãªã³ã¯ã®ã³ã¬ã¯ã¿ãŒãå«ãŸããŸãã
zend.enable_gc = On
ãµãŒããŒã§ããŒã¿ãåä¿¡ããæå€§æéïŒPOSTãGETãHEADïŒã瀺ããŸãããã®æéã¯ãPHPã®éå§ããã¹ã¯ãªãããå®è¡ããããŸã§ã®æéã§ãã
max_input_time = 200
ã¹ã¯ãªããã®æå€§å®è¡æéãæå®ããŸãïŒå€ã¯Apacheã®å Žåããã倧ãããããŸãã-ã¿ã€ã ã¢ãŠãïŒ
-set_time_limitã®ä»£ããã«ïŒ
max_execution_time = 30
ãµãŒããŒãžã®ãã¡ã€ã«ã®ã¢ããããŒããèš±å¯ããŸãã
file_uploads = On
ã¹ã¯ãªããã䜿çšã§ããæå€§ã¡ã¢ãªãµã€ãºïŒ
memory_limit = 256M
POSTã¡ãœããã«ãã£ãŠéä¿¡ãããããŒã¿ã®æå€§ãµã€ãºïŒä»¥äžã®å€-memory_limitïŒã
post_max_size = 8M
ã¢ããããŒãããããã¡ã€ã«ã®æå€§ãµã€ãºïŒpost_max_sizeããå°ããå¿
èŠããããŸãïŒïŒ
upload_max_filesize = 2M
1ã€ã®ãªã¯ãšã¹ãã§è»¢éã§ãããã¡ã€ã«ã®æ°ïŒ
max_file_uploads = 4
æ¡åŒµã¢ãžã¥ãŒã«ããããã£ã¬ã¯ããªãžã®ãã¹ïŒ
extension_dir = "/usr/local/zend/lib/php_extensions"
ã¿ã€ã ãŸãŒã³ãèšå®ããŸãã
date.timezone = Europe/Moscow
ããŒã¿åïŒ
default_mimetype = "text/html"
ãšã³ã³ãŒãã£ã³ã°UTF-8ãèšå®ããŸãã
default_charset = "UTF-8"
倿°ã®åŠçé åºã¯ã$ _COOKIEã$ _GETã$ _POSTã$ _SERVERã§ãã
variables_order = "CGPS"
argvããã³argc倿°ã宣èšããªãã§ãã ããã
register_argc_argv = Off
äœ¿çšæã«SERVERããã³ENV倿°ãäœæããããããããã©ãŒãã³ã¹ãåäžããŸãã
auto_globals_jit = On
åçèªã¿èŸŒã¿ããªãã«ãããšãã»ãã¥ãªãã£ã«åœ±é¿ããŸãã
enable_dl = Off
URLã«ããå€éšãã¡ã€ã«ã®æäœãèš±å¯ããŸãã
allow_url_fopen = On
å€éšãã¡ã€ã«ã®äœ¿çšãç¡å¹ã«ããŸãã
allow_url_include = Off
MySQLãã€ã³ã¹ããŒã«ããŠæ§æããŸããmy.cnfãåãé¢ããŸãã
[root@test ~]# nano /etc/mysql/my.cnf
ç«¶åããMySQLã¯ãšãªãåŠçãã䞊åããã»ã¹ã®æ°ïŒã³ã¢ã®æ°ã«2ãæãããã®ïŒïŒ
thread_concurrency = 4
æ°ããããŒãã«ã®ããã©ã«ããšã³ã³ãŒãã£ã³ã°ãèšå®ããŸãã
default-character-set = utf8
InnoDBããŒãã«ã䜿çšããŸãã
default-storage-engine = InnoDB
RAMã®ããŒãã«ã®ã€ã³ããã¯ã¹çšã®ãããã¡ã®ãµã€ãºãèšå®ããŸãïŒMyISAMããŒãã«ã«é¢é£ïŒïŒ
key_buffer_size = 5M
ãããã¡ãŒããŒã¿ãšããŒãã«ã€ã³ããã¯ã¹-InnoDBïŒ
innodb_buffer_pool_size = 300M
MySQLã«ãã£ãŠäœæãããäžæããŒãã«ã«å²ãåœãŠãããRAMã®æå€§ãµã€ãºïŒ
tmp_table_size = 50M
ãã£ãã·ã¥å
ã«ãããªãŒãã³ããŒãã«ã®æå€§æ°ïŒ
table_open_cache = 64
æ
å ±ããã£ã¹ã¯ã«æžã蟌ãããã«äœ¿çšãããããŒã¿ãããã¡ãŒã¯InnoDBã§ãã
innodb_log_buffer_size = 0M
ã¯ãšãªãã£ãã·ã¥ããªãã«ã
ãŸã ã
query_cache_size = 0
åã¹ããªãŒã å
ã®ããŒã¿ã®ãœãŒãïŒORDER BYïŒãŸãã¯ã°ã«ãŒãGROUP BYïŒã«äœ¿çšããããããã¡ãŒã®ãµã€ãºïŒ
sort_buffer_size = 512K
åã¹ã¬ããã®åããŒãã«ã«ã¡ã¢ãªãå²ãåœãŠãŸããããã®å€ã倧ãããããšãã¯ãšãªã®å®è¡é床ãäœäžããå¯èœæ§ããããŸãã
read_buffer_size = 512K
-ORDER BYã䜿çšããã¯ãšãªã®ãœãŒãé床ã«åœ±é¿ããŸãã
read_rnd_buffer_size = 1M
ãããã®ã¯ãšãªã§ã€ã³ããã¯ã¹ã䜿çšãããŠããªãå ŽåãJOINã䜿çšãããããã¡ãµã€ãºïŒ
join_buffer_size = 2M
ã¹ã¿ãã¯ãµã€ãºãã¿ã¹ã¯ã®ãªã¹ããä¿åããå ŽæïŒããŒãã«ã®ééããªã¯ãšã¹ãã®å®è¡ãªã©ïŒïŒ
thread_stack = 1M
æ¥ç¶ãããã¡ãšãã®çµæã«ã¡ã¢ãªãå²ãåœãŠãmax_allowed_paââcketã«å¢ããããšãã§ããŸãã
net_buffer_length = 30K
1ã€ã®ãªã¯ãšã¹ãã§è»¢éã§ããããŒã¿ã®æå€§ãµã€ãºïŒ
max_allowed_packet = 5M
åææ¥ç¶ã®æå€§æ°ïŒ
max_connections = 75
ãã¥ãŒã«å
¥ããããšãã§ããæ¥ç¶ã®æ°ïŒ
back_log = 250
ããŒã«ã«ãã¹ãã®ã¿ããªãã¹ã³ããïŒ
bind-address = 127.0.0.1
TCP / IPæ¥ç¶ã䜿çšããããœã±ãããä»ããŠããŒã¿ã転éããŸãã
skip-networking
MySQLãµãŒããŒã§ã®ããããã®ã¡ã¢ãªæ¶è²»éãèšç®ããã«ã¯ïŒçè§£ãããšããïŒã次ã®åŒã䜿çšã§ããŸãïŒApacheãµãŒããŒã«ã¯æ¢ã«750 MBãå²ãåœãŠãããŠãããNginxãµãŒããŒã«ä»»ããå¿
èŠãããããšãå¿ããªãã§ãã ããïŒïŒ
key_buffer_size + innodb_buffer_pool_size + tmp_table_size + ((sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack) Ã max_connections) = ?
ã»ãã¥ãªãã£ã«ã€ããŠå°ããã«ãŒããšããŠãã°ã€ã³ããããšã¯æãŸãããªããããæ°ãããŠãŒã¶ãŒãäœæããŸãã
[root@test ~]# adduser newuser
ãŠãŒã¶ãŒã®ãã¹ã¯ãŒããèšå®ããŸã-newuserïŒ
[root@test ~]# passwd newuser
sudoããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
[root@test ~]# yum install sudo
æ°ãããŠãŒã¶ãŒãsudoã«è¿œå ããŸãã
[root@test ~]# gpasswd -a newuser wheel
ããŒã22ãä»ããŠSSHã«æ¥ç¶ããå Žåã¯ã倿Žããå¿
èŠããããsshd_configãéããŸãã
[root@test ~]# nano /etc/ssh/sshd_config
ããŒãã空ãããŒãã«å€æŽããŸãïŒã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠãããã¡ã€ã¢ãŠã©ãŒã«ãä»ããŠããŒã22ãéãã54139ãªã©ã®æ°ããããŒããéãããšãå¿ããªãã§ãã ããïŒã
Port 54139
空ã®ãã¹ã¯ãŒãã§ã®ãã°ã€ã³è©Šè¡ãçŠæ¢ããŸãã
PermitEmptyPasswords no
ã«ãŒããã°ã€ã³ãæåŠããŸãã
PermitRootLogin no
æ°ãããŠãŒã¶ãŒã®ã¿ã端æ«ã«ãã°ã€ã³ã§ããããã«ããŸã-
newuserïŒ
AllowUsers newuser
sshãåèµ·åããŸãã
[root@test ~]# service sshd restart
PS Nginxã¯php-fpmã§äœ¿çšã§ããŸãããApacheãé©åã«æ§æãããŠããå Žåãããã©ãŒãã³ã¹ã«å€§ããªéãã¯ãªããšããæèŠããããŸãã
ãµãŒããŒã®ã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹ã«ç¹ã«æ³šæãæãããã®ã§ããšã©ãŒãæ¬ èœãèŠã€ããå Žåã¯ã³ã¡ã³ãã«æžããŠãã ãããå¿
èŠã«å¿ããŠèšäºãä¿®æ£ããŸãã