Centos 중지를 하고 다시 시작했더니 외부 IP 가 바뀌어  wordpress 가 아래 처럼 보이기 시작했습니다. ㅜㅠ

 

우선 다시 ip 가 변경되는걸 방지 하기 위해 고정 ip 를 일단 신청했습니다.

아래 그림에서 보듯이 구글 클라우드 홈 화면의 VPC 네트워크의 외부 ip 주소로 진입합니다.

아래 그림에서 고정 주소 예약을 클릭합니다.

(아래 그림의 항목에서 지역부터는 고정주소가 지정되어 나타난 항목입니다. 최초 설정시에는 빈값으로 보여집니다.)

아래 그림 처럼 이름과 설명을 넣고 현재 외부 ip 로 사용하고 있는것을 고정주소로 예약 합니다.

마지막에 연결대상은 현재 생성된 VM 인스턴스(centos) 를 선택하면 됩니다.

예약을 하게 되면 조금 시간이 흐른 후 적용됩니다.

이제 고정주소는 설정했고

wordpress 내용의 변경이 필요합니다.

우선 config 파일의 내용에 아래 내용의 추가가 필요합니다.

define('WP_HOME','http://123.123.123.74/wp/');
define('WP_SITEURL','http://123.123.123.74/wp/');

당연히 123.123.123.74 는 변경된 ip 이거나 도메인 이어야합니다.

 

콘솔창에서 아래 처럼 명령을 입력합니다.아래 ip 주소는 바뀐 ip(도메인) 주소를 넣습니다.

sudo nano /etc/wordpress/config-123.123.123.74.php

아래 그림과 같이 내용을 입력합니다.

password 는 기존 db 비번을 넣으면 됩니다.

여기서 중요한 것은 위에서 추가할 내용을 마지막에 넣는것입니다.

 <?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', '1a2b3c4d!!');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
define('WP_HOME','http://123.123.123.74/wp/');
define('WP_SITEURL','http://123.123.123.74/wp/');

?>

 

위 작업이 완료된후 사이트에 재 접속합니다.

위 작업만 하더라도 사이트가 정상 동작 될 수 있습니다. (이미지가 깨질수 있음 ㅜㅠ)

만약 위작업만으로 해결된다면 아래 처럼 추가된 내용을 제거해야합니다.

sudo nano /etc/wordpress/config-123.123.123.74.php

 

만약 위 방법으로도 해결이 안된다면

아래 두가지 방법을 시도합니다.

1. wp-config 파일에

define('WP_HOME','http://123.123.123.74/wp/');
define('WP_SITEURL','http://123.123.123
.74/wp/');

을 추가합니다.

wp-config 파일은 cd /usr/share/wordpress 위치에 있으며

sudo nano wp-config.php 명령을 실행하여

아래 그림과 같이 마지막에 내용을 추가합니다.

2.  각 테마별로 functions.php 파일에 아래 내용을 추가합니다.

update_option('siteurl','http://123.123.123.74/wp/');
update_option('home','http://123.123.123.74/wp/');

각 테마폴더는

cd /var/lib/wordpress/wp-content/themes 여기에 있으며

테마별 폴더로 접근하여 sudo nano functions.php

명령어를 이용해 초입 부분에 위 내용을 추가합니다.

위 두가지 작업까지 하면 모두 해결됩니다.

또한 위 두가지 작업은 사이트가 로딩된 이후 반드시 추가된 내용을 제거해야합니다.

 

참고사이트

https://codex.wordpress.org/ko:%EC%82%AC%EC%9D%B4%ED%8A%B8_URL_%EB%B3%80%EA%B2%BD_%EB%B0%A9%EB%B2%95

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

참고 : https://www.lesstif.com/pages/viewpage.action?pageId=21430675

 

워드프레스 설정을 끝내고 테마를 바꾸려니 아래 처럼 ftp 서버를 지정하라고 나옵니다.

oh my god... IIS 상에서는 저런 과정이 없었는데...ㅜㅠ

그래서 가장 하단의 참고 사이트를 참고하여 ftp 설정을 진행하였는데 계속 실패..실패...

다행히 ftp 말고 ssh/scp 를 이용하여 가능하다는 말에 이방법으로 설정을 해보았습니다. (위 참고사이트)

 

1. 파일질라 프로그램을 이용한 SSH SFTP Updater Support 파일 넣기

일단 이 방법은 파일질라 프로그램을 이용해 파일을 옮겨야 합니다.

파일질라 프로그램은 아래 첨부했으니 다운받아서 설치하시면 됩니다.

FileZilla_3.27.1_win64-setup.exe

파일질라를 실행해서 파일 바로 밑에 아이콘을 클릭합니다. (아래 그림에 표시)

이제 아래 그림과 같이 사이트 관리자 창이 뜨고 새 사이트를 클릭하여

centos 정보를 입력합니다.

호스트에 구글클라우드 플랫폼상의 외부IP 를 넣고

포트는 22

프로토콜은 SFTP 를 선택하고

사용자에는 centOS 사용자 id 를 넣고

이전에 저장해 놓은 개인 키파일을 찾아 설정합니다.

* 개인 키파일은 아래 포스트에서 참고 해주세요
  2017/09/04 - [Server] - (구글 클라우드 플랫폼) CentOS 에 Putty 로 연결하기

연결을 하게되면 아래처럼 비번을 한번 더묻고 서버 비번을 넣어주면

연결이 완료됩니다.

연결이 완료된 상태에서

SSH SFTP Updater Support 를 다운 받아서 위 그림처럼 파일을 옮겨주어야합니다.

https://wordpress.org/plugins/ssh-sftp-updater-support/

 

2. SSH SFTP Updater Support 파일 압축풀기

파일 옮기는게 완료되었으면

이제 Putty 로 접속하여 ls 명령어를 실행하면 아래처럼 옮긴 압축파일(google-cloud-sdk-169.0.0-windows-x86_64.zip)이 보이게 됩니다.

이걸 여기에서 사용하는건 아닙니다.

압축파일을 이동시켜주어야합니다.

아래 명령어를 수행하여 wordpress 쪽 plugins 폴더에 옮깁니다.

sudo mv ssh-sftp-updater-support.0.7.1.zip  /var/lib/wordpress/wp-content/plugins/ssh-sftp-updater-support.0.7.1.zip

이제 압축을 풀어야합니다.

압축을 풀기위해 압축 package 를 install 합니다.

sudo apt-get install unzip

압축을 풉니다.

sudo unzip ssh-sftp-updater-support.0.7.1.zip

 

3. 사이트에서 SSH SFTP Updater Support plugin 활성화 하기

이제 사이트 관리자 화면으로 접속하여 Plugins 메뉴로 들어가면 아까 압축풀었던 SSH SFTP Updater Support 항목이

보여집니다. 비활성화(Deactivate) 되어 있는 항목을 클릭하여

아래처럼 Active 상태로 활성화 합니다.

 

4. SELinux 설정하기

다시 Putty 로 옵니다.

SELinux 에 신규 정책을 추가해주어야합니다.

먼저 신규 정책 추가 명령을 내리기 위해 package 를 하나 설치해야합니다.

sudo apt-get install policycoreutils 

위 명령어를 실행하여 설치를 완료하고

먼저 SELinux 가 활성화 되어있는지 확인합니다.

sudo getenforce

위 명령어의 결과가 disable 이라면

아래 그림과 같이 enforcing 로 해야합니다.

... 그런데 계속 전 활성화가 되지 않네요..ㅜㅠ

활성화 방법을 찾으러 갑니다. 활성화 이후로는

아래 사이트를 참고하여 진행하면 됩니다. 죄송;; 해결되면 이어서 포스팅 하겠습니다.

https://www.lesstif.com/pages/viewpage.action?pageId=21430675

 

* 참고 사이트


http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/
https://www.php79.com/287
https://www.digitalocean.com/community/tutorials/how-to-configure-secure-updates-and-installations-in-wordpress-on-ubuntu
http://blog.naver.com/unsutilizer/221068941492

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

  

신규테마를 받을때는 이상없었는데 기존 테마나 플러그인을 업데이트 하려면

아래처럼 이전 버전을 제거 할수 없다는

메세지가 나오면서 업데이트가 실패되었습니다. (아래 그림 참고)

이 또한 이전과 같이 권한 문제로 보고 권한을 주는걸로 해결을 보았습니다.

전제는 아래의 이전 제 포스팅을 따라하셨다면 .. 입니다.

2017/09/04 - [Server] - (구글 클라우드 플랫폼) CentOS 에 Apache 웹서버 설치하기

2017/09/04 - [Server] - (구글클라우드 플랫폼) CentOS 에 WordPress 설치하기.

우선 테마는 아래와 같이 권한을 주면 해결됩니다.

특이한건 Thrmes 만 권한을 주면 안되고 아래 처럼 wordpress 폴더까지 권한을 주어야합니다.

sudo chmod -R 777 /usr/share/wordpress/wp-content/themes
sudo chmod -R 777 /usr/share/wordpress/wp-content
sudo chmod -R 777 /usr/share/wordpress

플러그인은 아래와 같이 권한을 주면 해결됩니다.

sudo chmod -R 777 /usr/share/wordpress/wp-content/plugins

아래는 해결된 화면입니다.

 

아래는 실행화면.. 참고..용..

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

테마를 새로 받아서 적용하려고 하는데 '디렉터리를 생성할 수 없습니다.'

라고 에러가 떴다.

이런건 무조건 권한 문제인것 같아서 찾아보니

wp_content 경로에 권한을 줘야하는것 같았다.

Putty 로 연결하여 아래 명령어를 실행하니

sudo chmod -R 777 /var/lib/wordpress/wp-content

아래처럼 새로운 태마가 이상없이 받아졌다.

테마를 새로 받기 위해 ftp 설정을 마치고..

Proceed 하니 아래처럼 에러가 발생된다.

Unable to locate WordPress Content directory (wp-content).

에러는 wp-config.php 파일의 마지막 부분에

아래 내용을 넣으면 해결된다.

if(is_admin()) {
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}

centos 에서 wp-config.php 파일은 :/usr/share/wordpress 경로에 있다. 해당 경로에서 편집하면 된다.

junijuniya@centos-kjun:/usr/share/wordpress$ sudo nano wp-config.php

참고 : https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content/?replies=15

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

사용자를 추가하는 방법입니다.

sudo adduser 계정명

위 명령어를 수행하면 아래와 같이 password 를 설정하고 계정에 대한 약간의 정보를 입력해야합니다.

( user2457 을 추가한 예시임 )

추가된 사용자의 비번을 바꾸려면 아래 명령을 수행합니다.

sudo passwd 계정명

위 명령어를 실행하면 아래처럼 비번을 변경할 수 있습니다.

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

ftp 로 특정 포트에 접근하려고 하는데 접근이 안되어 확인해 보니

구글클라우드 플랫폼은 22,443,80 포트만 기본적으로 열어두는 것 같았습니다.

https://codelabs.developers.google.com/codelabs/cloud-networking-101/index.html?index=..%2F..%2Findex#7

그래서 위 링크의 내용대로 방화벽을 추가하는 방법을 알아보고자 합니다.

구글 클라우드 플랫폼의 콘솔 메인 화면에서 좌측의 VPN 네트워크 를 선택합니다.

VPN 네트워크 화면에서 방화벽 규칙을 선택하고 방화벽 규칙 만들기를 합니다.

규직은 기본적으로 저장되어있는 규칙을 참고해서 만들면 됩니다.

만약 21번 포트를 열고 싶다면 아래처럼 입력하고 저장하면됩니다.

이렇게만 하면 내가 만든 VM 에 자동으로 방화벽이 적용됩니다.

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

 

참고 링크 : https://wiki.debian.org/WordPress

중간 중간 난관이 있었지만 일단 위 방식대로 한 내용을 적어봅니다.

우선 이전 포스팅의 apache2 가 설치된 상태에서 진행했습니다.

2017/09/04 - [Server] - (구글 클라우드 플랫폼) CentOS 에 Apache 웹서버 설치하기

 

1. 먼저 아래 명령어로 wordpress 를 설치합니다.

sudo apt-get install wordpress curl apache2 mysql-server

위처럼 설치 도중 mysql  의 root 계정의 암호를 설정하는 화면이 나타납니다.

비번을 알아서 잘 설정하고 기억합니다. 꼭 기억합니다.

 

2. wordpress 사이트를 활성화 시키기 위해 wp.conf 내용을 수정 및 추가합니다.

(참고로 아래 명령어는 파일이 없으면 만들고 편집모드로 들어가게됩니다.)

sudo nano /etc/apache2/sites-available/wp.conf

위 명령어로 편집모드로 들어가서 아래와 같이 입력합니다.

Alias /wp/wp-content /var/lib/wordpress/wp-content
Alias /wp /usr/share/wordpress
<Directory /usr/share/wordpress>
    Options FollowSymLinks
    AllowOverride Limit Options FileInfo
    DirectoryIndex index.php
    Require all granted
</Directory>
<Directory /var/lib/wordpress/wp-content>
    Options FollowSymLinks
    Require all granted
</Directory>

* 참고로 nano 는 내용을 입력한후 Ctrl + X 를 누르고 Y 를 누른후 Enter 하면 저장이 완료됩니다.
   Ctrl + Z 는 모든 내용을 무시하고 편집모드를 빠져나갑니다.

 

3. 사이트를 활성화합니다.

sudo a2ensite wp

 

4. 웹서버를 재시작 합니다.

sudo service apache2 reload

 

5. 도메인 관련 파일을 하나 만듭니다. (중요)

자신의 IP 로 도메인을 연결해 놓았다면 그 도메인 이름이 들어가게 파일을 만들어야합니다.

즉, www.naver.com 이라면 config-www.naver.com.php 파일을 만들어야합니다.

전 구글클라우드에 도메인을 연결하지는 않았기 때문에 IP 주소로 만들었습니다.

그렇기 때문에 config-104.199.xxx.xxx.php 로 만들었습니다. (xxx 는 보안상 가림)

이제 위 파일을 만들고 내용을 입력하도록 합니다.

sudo nano /etc/wordpress/config-104.199.xxx.xxx.php

위 명령어를 통해 편집모드로 들어가서 아래 내용을 입력하고 password 부분은 앞서 mysql 의 root 계정의 암호로 변경합니다.

(암호는 새로 지정해도 상관없습니다. 머리가 좋으시면;;; 전 기억못할 것 같아서 그냥 똑같이 했습니다.)

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
?>

 

6. 쿼리문을 작성합니다. (중요)

이부분이 제가 좀 시간이 걸린 부분입니다.

일단 링크대로 wp.sql 파일을 만들어 그안에 실행할 쿼리를 넣고 실행하도록 하면됩니다.

sudo nano ~/wp.sql

위처럼 파일을 만들고 내용은 아래 내용을 입력합니다.

'password' 는 위에서(5번) 에서 지정한 암호로 변경해야합니다.

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

이제 아래 명령어로 실행하면 쿼리가 실행되게 됩니다.

sudo cat ~/wp.sql | mysql --defaults-extra-file=/etc/mysql/debian.cnf

그런데 아래 처럼 에러?가 발생됩니다. (에러가 발생안된다면 패스해 주시면됩니다.)

Could not open required defaults file: /etc/mysql/debian.cnf
Fatal error in defaults handling. Program aborted

그런데 위 에러를 검색해도 해결방안이 잘 안나오더군요

그래서 그냥 mysql 로 들어가서 쿼리문을 수동으로 실행했습니다.

아래 명령어를 실행하여 mysql 로 진입합니다.

sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

아래가 진입했을때 내용이며 굵게 표시된 부분이 직접입력한 부분입니다.

진입시 비번을 물어봅니다. 앞서 지정한 암호를 넣고 진입합니다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.5.57-0+deb8u1 (Debian)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
    -> ON wordpress.*
    -> TO wordpress@localhost
    -> IDENTIFIED BY 'xxxxxxxx';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

xxxxxxxx 부분은 앞서 지정한 password 를 넣으면 됩니다.

이제 사이트에 접속합니다.

http://사이트주소/wp 로 들어가거나 http://사이트주소/wp/wp-admin/install.php 로 들어가서

아래와 같은 화면이 보이면 설치가 정상적으로 된것입니다.

대충기본적인 정보를 넣고

관리자 계정과 암호를 넣고

계정이 만들어졌으니 로그인 해서

로그인이 성공하면 아래 처럼 관리자 화면이 나타납니다.

상단의 집모양 버튼을 누르면 아래처럼 사이트가 만들어진걸 확인 할수 있습니다.

 

참고로 웹루트는 /var/www/html/ 입니다.

여기에 php 파일을 옮겨놓고 테스트 가능합니다.

(he default document root for Apache is /var/www/ (before Ubuntu 14.04) or /var/www/html/ (Ubuntu 14.04 and later).

See the file /usr/share/doc/apache2/README.Debian.gz for some explanation on how the Apache configuration on Ubuntu is done.)

CentOS 에 SSH 연결하기 위해서는 앞서 포스팅에서 소개해드린데로

구글 클라우드 플랫폼에서 제공되는 브라우저 상의 SSH 도구로도 충분합니다.

하지만 매번 브라우져를 켜서 접속하는건 일입니다.

그래서 Putty 를 설치해서 접속완료까지의 과정을 소개합니다.

 

우선 Putty 를 설치합니다.

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

다운된 파일을 실행하여 설치합니다. 설치는 다음다음...

이제 SSH 키 페어를 생성해야합니다.

puttygen 을 실행합니다.

실행해서 Generate 버튼을 클릭합니다.

(이때 반드시 마우스가 다른곳에 가 있으면 안됩니다. 반드시 putty gen 실행 프로그램에 마우스를 두세요.)

완료가 되면 아래처럼 key 란에 솰라솰라 키가 나옵니다.

여기에 key comment 에 구글계정 을 넣고 암호를 설정합니다.

(암호는 설정하지 않아도 됩니다.)

이제 Save public key 와 Save private key 를 클릭해 공개키와 개인키를 로컬에 저장합니다.

이제 구글 클라우드 클랫폼에서 메타데이터로 이동하여 SSH 키 탭을 선택합니다.

SSH 키 추가를 클릭하고

아까 puttygen 에서 나온 키를 복사하여

아래 처럼 붙여넣고 저장 합니다.

그럼 아래처럼 키가 적용된걸 확인할 수 있습니다.

이제 putty 로 접속하기 위해 외부 IP 를 알아 둡니다.

putty 를 실행합니다.

host name 란에 id@외부IP 를 넣고

Connection - SSH - Auth  로 이동하여 제일 하단의 Private key file authenrication 에서 Brewse.. 를 클릭하여

아까 저장한 개인키를 선택하고 열기 합니다.

이제 Open 버튼을 클릭하면 아래처럼 접속이 되는걸 알수 있습니다.

앞서 암호를 지정했다면 암호를 넣어야 진입됩니다.

연결까지 완료 되었습니다.

 

글이 도움이 되었다면 광고 한번 클릭 부탁드립니다.^^

글이 도움이 되었다면 광고 클릭 부탁드립니다.^^

 

 

이전에 구글클라우드를 설정하고 Centos 를 설치하고나서 먼가를 해볼작정이었지만

질질 끌다가 오늘 시간이 나서 apach 웹서버를 설치해 보았습니다.

아래는 이전 포스팅입니다.

2017/06/09 - [Server] - 구글 클라우드 시작하기 (Google Cloud Platform)

 

이전 글에서 브라우저 상에서 ssh 가 동작하지 않았는데 이유는 간단했습니다.

이전 포스팅에서도 설명했지만 아래그림과 같이 자바스크립트를 항상 허용을 선택해야 합니다.

위와같이 하고 완료 하니 ssh 가 잘 동작하였습니다.

이제 apache 를 설치해 봅니다.

우선 아래 명령어로 최신버전을 가져옵니다.

sudo apt-get update

업데이트가 완료되면 아래 명령어를 실행하여 apache 를 설치합니다.

sudo apt-get install apache2

Y 넣고 Enter 하면 설치가 쭉 진행되고 웹서버 까지 동작하게 됩니다.

구글클라우드의 웹주소를 넣어보니 apache 웹서버가 제대로 동작하는 걸 확인 할수 있습니다.

+ Recent posts