기본적으로 php 활성화시키고, documentroot 지정, virtual host 사용 가능하게만 변경했다.
#으로 시작하는 라인은 주석으로 처리되므로 #을 삭제하여 필요한 항목들을 활성화시킨다.
% sudo vi /etc/apache2/httpd.conf
LoadModule php7_module libexec/apache2/libphp7.so // 주석 해제 DocumentRoot '/Users/MyUser/Sites' // 본인이 사용할 소스파일의 루트 디렉터리 설정 DirectoryIndex에 index.php. 추가 Include /private/etc/apache2/extra/httpd-vhosts.conf // 주석 해제 LoadModule rewrite_module libexec/apache2/mod_rewrite.so // 주석 해제 --> .htaccess 사용할꺼면 필수! LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so // 주석 해제
# // 이 라인을 아래처럼 나의 DocumentRoot로 변경하여 권한 설정
php 설정
아래의 경로로 가서 필요한 설정들을 변경해준다.
% sudo vi /etc/php.ini
post_max_size=20M // 기본값 8M로는 금방 size limit 에러 문구를 보게 될 것이다. 미리 넉넉하게 20M로 변경
upload_max_filesize=5M // 파일 업로드 용량으로 2M는 너무 적지.. 2M -> 5M로 변경
mysqli.default_socket = /tmp/mysql.sock // 나중에 사용할 mysql을 위해 미리 설정
MySQL 설치
역시 홈브루를 이용하여 설치한다. 내 맥에 이미 설치되어 있는지, 브루를 통해 설치할 수 있는 패키지인지 확인해보고 설치하면 좋다.
% brew list // 설치된 패키지 목록 확인
% brew search mysql // 설치가능한 패키지 확인
% brew install mysql // 설치
mysql에 로그인을 하기 위해 root 계정의 비번을 안전하게 바꿔준다.
% mysql_secure_installation
물어보는 항목들이 몇 나오는데, 어딘가 복사를 해뒀다고 생각했지만 없네 ^^
비밀번호를 LOW, MEDIUM, HIGH 중 어떤 단계로 설정할지 물어봐서
LOW 선택 후 문자 8자리 이상으로 설정했다.
여기서 LOW로 선택하면 나중에 설정해야 하는 값이 하나 더 있다.
LOW - 추가 설정을 하긴 해야 하지만 로긴 때마다 편함 (짧으니까)
MEDIUM / HIGH - 로긴 때마다 길게 입력해야 하므로 불편할 수 있다.
난 일단 LOW로 선택..
anonymous user 관련된 문항은 mysql -uroot -p로 로그인하는 것에 익숙하므로 yes,
root login remotely 관련 문항은 지금껏 원격 접속해야 했던 적이 한 번도 없어서 no,
remove test database 관련 문항은 삭제해도 무방하므로 yes로 했다.
마지막으로 나오는 문항은 지금껏 변경한 거 적용해도 되니? 의 뉘앙스여서 yes로 했다.
no로 하면 그냥 질의가 아예 끝나버리는 건지는 모르겠다. 그러지 않을까?
디비에 접속해서 정상적으로 설치가 되었는지 확인해본다.
% mysql -uroot -p
디비 접속은 정상적으로 되지만, 여기서 끝이 아니다.
브라우저에 사이트를 띄우려 했더니 아래와 같은 mysql 에러가 발생했다.
PHP Warning: mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /Users/MyUser/Sites/project/wp-includes/wp-db.php on line 1635
브라우저에서는, The server requested authentication method unknown to the client
나는 워드프레스를 띄웠기 때문에 워드프레스 코어에서 database connect 에러가 발생하고 있었다.
찾아보니 내 mysql 버전이 8이어서, 사용자 인증 정책 문제로 접속이 안되었다.
mysql의 global 설정은 MEDIUM인데, 브라우저를 통해 접속하려고 하는 계정의 단계가 LOW였던 것.
mysql 인증 단계를 변경하고, 해당 정책이 사용자에게 반영될 수 있도록 사용자 정보도 한번 더 수정이 필요하다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPassword';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
// 설정된 정책에 부합하지 않는 비밀번호여서 변경 못하게 함!
mysql> show variables like 'validate_password.policy';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| validate_password.policy | MEDIUM|
+--------------------------+-------+
1 row in set (0.02 sec)
mysql> SET GLOBAL validate_password.policy=LOW;
mysql> show variables like 'validate_password.policy';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| validate_password.policy | LOW |
+--------------------------+-------+
1 row in set (0.02 sec)
// 정책을 MEDIUM -> LOW 변경
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPassword';
// 변경된 정책으로 로그인 가능하도록 비밀번호를 한 번 변경해준다.