CentOS7에서 Wordpress 설치하기(nginx,php7, mariadb10)
이하 모든 설치는 root계정으로 진행한다고 가정합니다.
1. php 7.0 설치
1 2 3 4 | yum install -y epel-release rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum --enablerepo=remi update remi-release yum --enablerepo=remi-php70 install -y php php-mbstring php-pear php-fpm php-mcrypt php-devel php-xml php-mysql php-gd | cs |
설치가 완료되면 php.ini 파일을 설정해야한다. 기본적으로 아래의 설정은 설정하고 넘어가자.
vim /etc/php.ini
1 2 3 4 | [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Seoul | cs |
1 2 | ;cgi.fix_pathinfo=1 cgi.fix_pathinfo=0 | cs |
1 2 3 4 5 | ;user = apache user = nginx ; RPM: Keep a group allowed to write in log dir. ;group = apache group = nginx | cs |
1 2 | ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sock | cs |
1 2 3 | listen.owner = nginx listen.group = nginx listen.mode = 0660 | cs |
1 2 | systemctl enable php-fpm.service systemctl start php-fpm | cs |
2. mariadb10 설치
vim /etc/yum.repos.d/MariaDB.repo
1 2 3 4 5 6 7 | # MariaDB 10.1 centos repository # http://mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/rhel7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 | cs |
yum install -y mariadb mariadb-server
설치가 완료되면 간단하게 설정을 한다.
vim /etc/my.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [mysql] default-character-set = utf8 [mysqld] skip-host-cache skip-name-resolve lower_case_table_names=1 character-set-client-handshake=FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utf8_general_ci max_connections = 500 thread_pool_max_threads = 300 innodb_file_per_table # innodb 테이블스페이스를 테이블별로 각각의 파일로 나누어 생성한다. innodb_buffer_pool_size = 2G # 버퍼풀의 메모리 사이즈. 권장은 메인메모리의 50~70% (전용서버일때) 디폴트는 8M innodb_flush_log_at_trx_commit = 1 innodb_adaptive_flushing = ON innodb_adaptive_hash_index = ON innodb_autoextend_increment = 8 # 테이블스페이스를 자동으로 늘려주는 단위, MB 단위이다. datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid !includedir /etc/my.cnf.d | cs |
위처럼 설정했으면 이제 mariadb 를 최초 실행해준다.
systemctl start mariadb
systemctl enable mariadb
그리고 다음을 실행한다.
1 | mysql_secure_installation | cs |
mysql 의 기본보안설정이다. testdb등을 삭제해야한다.
처음에 패스워드를 물어보면 그냥 엔터로 넘어가고 추가적으로 새로운 패스워드를 설정하겠냐고 물어보니 설정하자.
Change the root password? [Y/n] y
이후 질답
1 2 3 4 5 6 | Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y systemctl restart mariadb.service | cs |
이렇게 하고나면 접속할 사용자 계정이 필요해진다.
1 | mysql -uroot -p | cs |
아까 설정한 password를 입력하여 접속하자.
이후에 다음과 같이 권한설정과 함께 내가 사용할 root이외의 계정을 만들자. 한글로 되어있는 부분을 잘 변경해서 입력하자.
1 2 | GRANT ALL PRIVILEGES ON *.* TO '이부분에 사용할 계정명'@'%' IDENTIFIED BY '이부분에 사용할 패스워드 입력' WITH GRANT OPTION; FLUSH PRIVILEGES; | cs |
1 2 3 4 | CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '이곳에는 패스워드를 넣어주세요.'; GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER ON *.* TO 'wordpress'@'127.0.0.1'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'wordpress'@'localhost'; | cs |
위 명령으를 입력하고 다른 GUI 툴로 접속해서 계정에 대한 관리를 하는걸 추천한다. 일단 권한 설정은 이정도만 다루도록 한다.
설정이 완료되면 exit 를 입력하여 나오도록 한다.
그리고 방금 만든계정으로 다시 접속해서 db를 만들어보자
mysql -uwordpress -p
1 | CREATE DATABASE `wordpress` | cs |
위와같이 database까지 생성했으면 db준비완료
3. nginx 설치
(nginx의 경우 버전이 wordpress 에 별로 영향을 미치지 않는다. 안정성있게 기본제공버전으로 설치하도록 하자.)
1 2 | yum install -y nginx systemctl enable nginx | cs |
wordpress 디렉토리를 아직 만들진 않았지만 설정을 미리 해놓도록 하자.
1 | vim /etc/nginx/conf.d/default.conf | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; index index.php; root /home/www/wordpress; location / { try_files $uri $uri/ /index.php?$args; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/wordpress$fastcgi_script_name; include fastcgi_params; } } | cs |
nginx -t
그리고나서 nginx를 재시작한다.
systemctl restart nginx
4. wordpress 설치
다음을 순차적으로 따라해본다.(중간에 wget으로 받는 파일은 워드프레스 영문버전이다. 한글버전을 받고 싶다면 해당 url로 교체하여 입력한다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --reload firewall-cmd --list-all mkdir /home/www/ cd wget https://wordpress.org/latest.tar.gz tar zxvf latest.tar.gz wordpress rm -rf latest.tar.gz mv wordpress/ /home/www/wordpress mkdir /home/www/wordpress/wp-content/uploads mkdir /home/www/wordpress/wp-content/upgrade chown -R nginx:nginx /home/www/wordpress chown -R nginx:nginx /var/lib/php/ chcon -R -t httpd_sys_content_t /home/www /usr/sbin/setsebool -P httpd_can_network_connect true setsebool -P httpd_can_network_connect 1 setsebool -P httpd_enable_homedirs 1 setsebool -P httpd_can_network_relay 1 setsebool -P httpd_setrlimit 1 chcon -R -t httpd_sys_rw_content_t /home/www/wordpress/ cd /home/www/wordpress/ cp /home/www/wordpress/wp-config-sample.php /home/www/wordpress/wp-config.php vim /home/www/wordpress/wp-config.php | cs |
이제 편집기의 내용 중 DB이름과 user 이름을 넣어주도록하자.
1 2 3 4 5 6 | // database_name_here 부분에 DB의 이름을 넣어야 한다. 원하는 이름으로 넣어주자. define('DB_NAME', 'database_name_here'); // username_here 부분에 위에서 만들었던 db의 계정명을 넣어주자. define('DB_USER', 'username_here'); // password_here 부분에 위에서 만들었던 db 계정의 password를 입력해주자. define('DB_PASSWORD', 'password_here'); | cs |
그리고 db내용이 끝나는 부분쯤에 다음을 넣자
1 | define('FS_METHOD','direct'); | cs |
저장하고 빠져나오면 일단 준비는 완료.
부가적으로 메일이 필요한 기능을 쓴다면 추가적으로 php에서의 mail 기능이 이상태로는 안될 수 있으니 sendmail도 설치하자.
1 2 3 | yum install sendmail sestatus -b | grep sendmail setsebool -P httpd_can_sendmail=on | cs |
그리고 이제 웹브라우저를 열고 워드프레스 인스톨 페이지에 접속해보자.
http://서버의IP/wp-admin/install.php
만약 위와같은 화면을 만나지 못했다면 위의 내용을 다시한번 천천히 정독해보도록한다.
'IT > Etc' 카테고리의 다른 글
CryptXXX v3 부분 복구툴 발표 - AhnLab (0) | 2016.06.08 |
---|---|
Crypz 등의 확장자를 가진 CryptXXX 랜섬웨어 복구툴 (0) | 2016.06.07 |
Windows2003 에서 사용불가인 크롬의 대안 (0) | 2016.04.14 |
티스토리에서 포스트별 방문자 표시하기 (19) | 2016.04.14 |
Windows7 데스크탑PC에서 최대절전모드 사용하기 (0) | 2016.04.13 |