Linux-centos

wordpress 설치하기

말하는감자 2021. 2. 24. 15:07

apache 설치

1. 설치

sudo yum install httpd

2. 실행

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

php 설치 - 7.0

1. 기존에 설치된 php가 있다면 삭제

yum remove php-*
yum remove php-common mod_php php-cli

2. 저장소 추가

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum --enablerepo=remi update remi-release

# 저장소 추가 도중 오류 발생시

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

3. 설치

sudo yum install php70w php70w-mysql php70w-mbstring php70w-devel php70w-opcache

4. 설치된 버젼 확인

php -v

5. apache 재실행

sudo systemctl restart httpd
sudo systemctl status httpd

6. 테스트

vim /var/www/html/info.php

<?php
	php.info();
?>

웹에서 info.php를 호출해보면 php 관련 정보가 출력된다


php 설치 - 7.4

1. 저장소 추가하고 설정 업데이트

 sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
 sudo yum -y install yum-utils
 sudo yum-config-manager --enable remi-php74
 sudo yum update

2. 설치

 sudo yum install php php-cli
 php -v
 php --modules

3. 라이브러리 설치

  sudo yum -y install php74-php-common
  sudo yum -y install php74-php-mbstring
  sudo yum -y install php74-php-opcache
  sudo yum -y install php74-php-devel
  sudo yum -y install php74-php-mysqlnd
  sudo yum -y install php74-php-mysqlnd
  sudo yum -y install php-mysql
  sudo yum -y install php-dom
  sudo yum -y install php-mbstring
  sudo yum -y install php-imagick
  sudo yum -y install php-zip

  sudo systemctl restart httpd

wordpress 설치

1. 다운로드

wget https://wordpress.org/latest.tar.gz

2. 압축 해제

tar zxvf latest.tar.gz

3. 파일 이동

mv wordpress /var/www/html

4. 권한 추가

sudo chown -R apache.apache /var/www/html/wordpress

5. httpd.conf 수정

- vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/wordpress"
<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html/wordpress">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

6. db 커넥션 정보 추가

- vim /var/www/html/wordpress/wp-config.php

define( 'DB_NAME', 'DB이름' );
define( 'DB_USER', '계정이름' );
define( 'DB_PASSWORD', '계정암호' );
define( 'DB_HOST', '아이피' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

phpMyAdmin 설치

1. yum 으로 설치

    1. repo 추가

sudo yum install epel-release

    2. 설치

sudo yum install phpmyadmin

2. wget으로 다운받기

https://www.phpmyadmin.net/downloads/ 에서 원하는 버젼 링크 복사
cd /home

# 다운로드
wget 파일 링크

# 압축 해제
tar svf 파일이름

mv 파일이름 /usr/share/phpmyAdmin

3. phpmyadmin 접속 아이피 수정

- sudo vim /etc/httpd/conf.d/phpMyAdmin.conf

<RequireAny>
       Require ip 127.0.0.1 내아이피주소
       Require ip ::1
</RequireAny>

4. 접속 가능한지 테스트

host/phpmyadmin 을 호출해서 페이지가 노출되는지 확인

5. db 연결

- 설정 파일 복사

cd /usr/share/phpMyAdmin
cp confing.sample.inc.php config.inc.php

- vim config.inc.php

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = '아이피주소';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['controluser'] = 'DB계정';
$cfg['Servers'][$i]['controlpass'] = 'DB암호';

MariaDB 설치

1. repo 추가

sudo vim /etc/yum.repos.d/MariaDB.repo

[mariadb]
name=mariaDB
baseurl=http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=http://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2. 설치

sudo yum install MariaDB

3. 설치 확인

rpm -qa | grep MariaDB
	MariaDB-compat-----
	MariaDB-common-----
	MariaDB-client-----
	MariaDB-server-----

mariadb --version
	mariadb  Ver -----MariaDB, for Linux (----) using readline ----

4. 실행

sudo systemctl start mariadb

5. 실행 port 확인

netstat -anp | grep 3306

6. 캐릭터셋 변경

- vim /etc/my.cnf

[mysqld]
default_storage_engine=innodb

init-connect='SET NAMES utf8mb4'
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[client]
port=3306
default-character-set = utf8mb4

[mysqldump]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

7. 접속 확인

- 초기 mariadb는 암호 설정이 되어있지 않아서 그냥 엔터만 쳐도 접속이 가능하다

sudo mysql -u root -p

8. 캐릭터셋 확인

- show variables like 'c%';

| character_set_client             | utf8mb4                    |
| character_set_connection         | utf8mb4                    |
| character_set_database           | utf8mb4                    |
| character_set_results            | utf8mb4                    |
| character_set_server             | utf8mb4                    |
| character_set_system             | utf8                       |
| collation_connection             | utf8mb4_general_ci         |
| collation_database               | utf8mb4_unicode_ci         |
| collation_server                 | utf8mb4_unicode_ci         |

9. 서버 재시작시 자동으로 마리아디비가 실행되도록 설정해준다

sudo systemctl enable mariadb
sudo systemctl is-enabled mariadb

10. database 생성

create database wp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

11. 워드프레스가 접속할 계정을 생성해준다

GRANT ALL ON wp.* TO 'wp'@'%' IDENTIFIED BY '집에갈뤠암호';

mysql-client 설치

제 경우에는 외부 DB와 워드프레스를 연결하기 때문에 mysql-client가 필요했습니다.

로컬 DB가 이미 설치된 경우에는 client가 server 설치시 같이 설치되기 때문에 필요없어요.

1. rpm 추가

sudo rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2. 정상적으로 추가되었는지 확인 - 이때 여기서 client가 안나오면 설치 불가능합니다.

sudo yum search mysql-community

3. 설치

sudo yum install mysql-community-client

4. 접속 확인

mysql -u 사용자이름 -p -h 호스트

오류 모음

1. mysqli_real_connect(): Headers and client library minor version mismatch

-> php-mysql 관련 오류

 

- CLIENT API 확인

php -i | grep 'Client API'

Client API library version => 5.6.45
Client API header version => 5.5.60-MariaDB
Client API version => 5.6.45

- php70w-mysql 삭제

sudo yum remove php70w-mysql

php70w-mysqlnd 설치- 

sudo yum install php70w-mysqlnd

 

2. mysqli_real_connect(): (HY000/2002): Permission denied in

-> 아파치 외부 접속 차단

sudo setsebool -P httpd_can_network_connect 1

 

3. 이새끼 진짜 나쁜새끼임 ㅠㅠ

Warning: chmod(): Permission denied in 
wordpress/wp-admin/includes/class-wp-filesystem-direct.php on line 173

chown apache:apache {wp 설치 경로}

chmod 777 -R {wp 설치 경로}

까지 했지만 저 오류가 난다는 전제하에 진행한다.

/wp 설치 경로/wp-config.php 에 설정을 몇개 추가해준다

define('FS_METHOD', 'direct');
define( 'FS_CHMOD_DIR', 0777 );
define( 'FS_CHMOD_FILE', 0777 );
define('FTP_BASE', '{WP 설치 경로}');
define('FTP_CONTENT_DIR', '{WP 설치 경로}/wp-content');
define('FTP_PLUGIN_DIR ', '{WP 설치 경로}/wp-content/plugins');
define( 'WP_AUTO_UPDATE_CORE', true );
chcon -R -t httpd_sys_content_t {WP 설치 경로} #/var/www/html/wp
chcon -R -t httpd_sys_rw_content_t {WP 설치 경로}
-Rv  {WP 설치 경로의 바로 상위 경로} #/var/www/html
sudo systemctl restart httpd

 

4. 한글 주소 외계어로 나오고 404 출력되는 현상

touch /var/www/html/wordpress/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<IfModule mod_url.c>
CheckURL On
ServerEncoding UTF-8
ClientEncoding EUC-KR
</IfModule>
~

 

vim /etc/httpd/conf/httpd.conf

AllowOverride 를 All 로 수정

<Directory "/var/www/html/wordpress">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

 

4. wordpress 업데이트 도중 오류 발생할때

다운로드에 실패했습니다.: 파일 스트리밍에 대한 목적 디렉터리는 존재하지 않거나 쓸 수 없습니다.

wordpress/wp-config.php의 
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp');를 확인

만약 wp-content 안에 저 디렉토리가 없다면 생성해주고
chown apache:apache temp 로 소유자를 바꿔준다

'Linux-centos' 카테고리의 다른 글

centos에 python, uwsgi, flask, nginx 설치하고 설정하기  (0) 2021.03.29
mariadb 10.5 설치  (0) 2021.03.16
SElinux  (0) 2021.03.10
scp + pem  (0) 2021.03.09
리눅스 (centos) 취약점 점검  (0) 2021.02.26
wordpress 설치하기  (0) 2021.02.24