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 |