MariaDB에 하이픈(-)이나 점(.)을 포함한 이름으로 데이터베이스를 만들면 에러가 납니다.

예를 들어

create database test-test;

라고 하면 다음과 같은 에러 메시지를 출력하면서 데이터베이스를 생성하지 못합니다.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-test' at line 1

이 문제를 해결하는 방법은 데이터베이스 이름을 낮은 액센트표(grave accent)로 감싸는 것입니다. 즉

create database `test-test`;

와 같이 하면 됩니다.


출처 : https://www.manualfactory.net/10161


[증상]


CentOS7 서버에 FTP를 구축하여 처음 연결을 시도하였는데 아래와 같이 

500 OOPS vsftpd: refusing to run with writable root inside chroot()라는 메시지와 함께 

Critical error가 뜨면서 연결이 되지를 않았다.

원인은 chroot내에 쓰기 권한이 없어서 발생한 문제로써, 설정을 바꿔주면 해결되는 문제다.

 

 

[해결책]

vi /etc/vsftpd/vsftpd.conf

allow_writeable_chroot=YES 구문을 적당한 위치에 추가해 준다.

systemctl restart vsftpd.service


종종 sendmail이 설치된 장비에서, 다음과 같은 오류를 볼 수 있다. (흔하지는 않지만..)

 

[root@linux ]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

m4:/etc/mail/sendmail.mc:10: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory

 

위와 같은 오류는 sendmail.cf를 생성하기 위한 sendmail-cf 패키지가 설치되어 있지 않을 경우에 발생한다.
해결 방법은 다음과 같이 sendmail-cf 패키지를 설치하면 된다.

 

[root@linux ]# yum install sendmail-cf

원문 : http://blog.daum.net/aswip/3638513


PHP 에서 mail 함수 정상 동작하는지 확인하는 소스

<?php
 //$mailto="받는주소";
 $mailto="sample@a.com";
 $subject="mail test";
 $content="test";
 $result=mail($mailto, $subject, $content);
 if($result){
  echo "mail success";
  }else  {
  echo "mail fail";
 }
?>


test.php 로 저장하여,
웹페이지에서 로드했을때
mail success 가 찍혀야 정상

만약, 위 소소에서 mail success 가 찍히는데
각종 커스텀 보드에서 메일 발송이 되지 않는다면,
php소스에서 mail 함수의 각 인자들을 확인해본다.

error_log($mailto, 0);  // mailto 변수를 서버의 에러로그에 찍는다.
error_log($subject, 0);

가령,

<?php
 //$mailto="받는주소";
 $mailto="sample@a.com";
 $subject="mail test";
 $content="test";
 $result=mail($mailto, $subject, $content);
 if($result){
  echo "mail success";
  }else  {

  error_log($mailto, 0); 

  echo "mail fail";
 }
?>

일 경우,
Apache 서버를 구동중이라면,
Apache\logs\error.log
파일에 mailto 변수의 내용이 찍힌다.

지금 내가 사용중인 환경은
Apache2.2.8
+ SMTP(W2K3 R2) + PHP5.2.5


위와 같이 테스트에서 이상이 없었으나,
제로보드에서는 메일을 보내지 못하는 현상이 발생한다.

따라서,
제로보드의 메일발송 소스를 확인해보니,
받는 사람(Receiptor) 변수에

위의 예제에서는 "sample@a.com" 이지만,
제로보드는 "받는사람 이름 <sample@a.com>"을 설정한다.

Receiptor 변수를 임의로 "sample@a.com"으로 수정하고
정상 작동하는 것을 확인
해당 소스를 수정해주었다.

제로보드\classes\mail\Mail.class.php

function getReceiptor() {
  //if($this->receiptor_name) return sprintf("%s <%s>", '=?utf-8?b?'.base64_encode($this->receiptor_name).'?=', $this->receiptor_email);
  return $this->receiptor_email;
}


수정이후 정상 발송 확인

출처: https://lifeful.tistory.com/19 [SEIZ THE DAY.]


[리눅스 sendmail 로 폼메일사용시 nobody@localhost.localhost.com 으로 발송될 경우 ]


보내는 사람 계정 명이 nobody@localhost.localdomain 으로 발송이 되서 

다음이나 다른 포털에서 반송되는 경우를 볼수 있습니다 

이럴때에 조치 방법으로 

php.ini에서 

 

메일 함수 사용시 

리눅스

php.ini 를 수정하는 방법.(Linux) 
; PHP mail() 함수에서 발송하는 메일에는 모두 적용됨.  수정후 아파치 재시작해야함. 
;sendmail_path = 

sendmail_path = “/usr/sbin/sendmail -t -i -f 계정@도메인” 

 

위에 처럼 수정후 발송 하면 잘 적용 되십니다 

무조건 적용 

 

 

윈도우

php.ini 를 수정하는 방법(windows)
; 모든 메일발송자가 고정적으로 지정됨.  수정후 아파치 재시작해야함. 
;sendmail_from = master@example.com 
=> 
sendmail_from = 계정@도메인



출처: https://cnisoft.tistory.com/10 [씨엔아이소프트]