반응형


    Sentora 'username_' 나오지 않게 하기



    개인적으로 사용할 목적으로 Sentora를 사용한다면 조금 번거로운 부분이 하나 있습니다. DB를 새로 생성할 때, 계정명이 앞에 붙는 것이 그것입니다. Sentora의 버전이 1.0.0에서 1.0.3으로 판올림함에 따라 데이터베이스 뿐아니라 FTP 계정명 앞에도 '계정이름'이 자동으로 붙여서 나오게 되었습니다. 이렇게 앞에 붙는 것을 접두사(Prefix)라고 합니다. 





    호스팅 패널을 사용하면 세팅과정에 있어서는 편리하지만, 데이터베이스나 각종 설정명 앞에 Prefix들이 붙어서 사용하기 번거롭게 만드는 경우들이 생겨 사용을 꺼려 하는 분들이 있습니다. 저는 DB명에는 Prefix가 붙어야 한다는 주의지만(여러 사람에게 서비스를 한다는 전제하에서) 소규모 호스팅에서는 FTP계정명의 경우에는 겹치는 일이 자주 발생하지는 않기때문에 굳이 Prefix가 붙어야 할까 라는 생각이 들었습니다. 또한 완전 개인적으로 서버를 사용하거나 일부 몇명에게만 호스팅을 제공하는 경우에는 DB 앞에 Prefix가 필요 없을 수도 있는데, 쓸 때마다 불편한 그 접두사들을 떼 보도록 하겠습니다.


    기본적으로 자동생성되는 이름을 설정하는 파일은 각 모듈의 controller.ext.php 라는 파일이 담당하고 있고, 그 파일을 일부 수정하면 불편한 부분을 해소할 수 있습니다.




    FTP User에서 "계정명"제거하기


    일단, 가장 답답한 순서대로 FTP User앞에 붙는 Prefix부터 제거를 해봅시다. 파일이 있는 절대 경로는 이렇습니다.


    /etc/sentora/panel/modules/ftp_management/code


    그 안에 controller.ext.php 파일을 수정합니다. 그리고 186번째 줄을 보면 다음과 같은 내용이 있습니다.



    여기의 구조를 살펴보면 $currentuser['username']부분이 바로 Prefix로 유저이름이 들어가게 하는 역할을 하는 부분입니다. 그리고 '_' 가 중간에 밑줄에 해당하는 부분이구요. $username은 생성시 입력했던 User명입니다.


    $currentuser['username'] . '_' . $username

    이렇게 된 구조는 실제로 이런식으로 보입니다.

    zadmin_ftp


    이 문장의 내용을 분석하면 $username으로 입력을 하면 앞에 $currentuser['username'] 과 '_' 을 붙여서 출력하라는 결과로 얻을 수 있습니다.


    그럼 원리대로 앞에 Prefix를 없앨려면 $currentuser['username'] . '_' . 이 부분만 없애면 되겠죠? 그래서 이 문장을 아래처럼 해당 부분을 삭제합니다.



    이렇게 하면 입력한 그대로의 접두사 없는 Username 을 사용할 수 있는 것이죠.





    DB Name에서 "계정명 제거하기"


    데이터베이스에서도 원리는 위와 같습니다. 


    하지만, DB 명에서는 controller.ext.php 파일에서도 여러군데 수정이 필요합니다. 그 이유와 과정을 설명할 예정인데, 그 전에 위에 FTP 유저명 바꾸듯이 controller.ext.php 파일을 수정해야 합니다. 같은 원리대로 수정을 해보겠습니다. 일단, 절대경로부터 적어보면


    /etc/sentora/panel/modules/mysql_databases/code/controller.ext.php


    위의 경로에 있는 파일의 101번재 라인을 보면 아래 처럼 되어 있습니다.



    역시나 여기서도 $currentuser['username'] . '_' .  이 부분을 제거합니다. 하지만, 이렇게 제거나고 나면 문제가 생깁니다. 화면과 함께 차근차근 설명할 예정인데 그 과정에 대해서 요약해보면 DB명은 수정하기 위해서 고쳐야 되는 부분이 총 4단계가 필요합니다.


    상황 설명


    1. 아무것도 하지 않은 상태에서 데이터베이스 이름을 1이라고 해서 생성 (실제 생성된 데이터베이스 zadmin_1)

    2. 101번째 라인 수정하고 데이터베이스 2생성

    3. 114번째 라인 수정하고 데이터베이스 3 생성

    4. module.zpm 파일 수정하고 데이터베이스 4 생성


    각 상황들에 대해서 패널에서 보여지는 화면phpMyAdmin을 통해 실제 DB가 생성된 화면을 비교해서 살펴보도록 하겠습니다.






    1. 기본설정에서 데이터베이스 생성하기 

     




    입력한 데이터베이스 이름 : 1

    패널에 표시된 데이터베이스 이름 : zadmin_1

    실제로 생성된 데이터베이스 이름 : zadmin_1



    센토라 패널의 디폴트 상태의 입력화면 입니다. 데이터베이스 이름을 입력하면 앞에 자동적으로 계정명이 접두사로 붙어서 생성됩니다. 우측 하단에 보면 phpMyAdmin 화면을 첨부하였는데 이 화면을 통해서도 실제 생성된 DB 이름이 zadmin_1인 것을 확인할 수 있습니다.





    2. controller.ext.php 파일 101번째 라인 수정


    위에서 설명했던 controller.ext.php 파일중에 101번째 라인을 수정합니다.


    /etc/sentora/panel/modules/mysql_databases/code/controller.ext.php


    여기 라인을 보면 위에 설명했던 익숙한 내용이 눈에 띕니다.



    앞서 말했던 내용와 같이 여기서도 $currentuser['username'] . '_' .  부분을 제거 합니다.



    이렇게 설정하고 실제로 데이터베이스를 생성해 보겠습니다.



    입력한 데이터베이스 이름 : 2

    패널에 표시된 데이터베이스 이름 : zadmin_2

    실제로 생성된 데이터베이스 이름 : 2


    실제로 만들어진 DB 이름은 2이지만, 패널에 표시되는 이름은 여전히 앞에 "계정명_"가 붙어있습니다. 나중에 데이터베이스를 이용할 때 실제 DB 이름인 2를 입력해서 사용한다면 문제없겠지만, 실제로 사용시에 상당한 혼란이 발생할 것 같습니다. 이 부분을 개선해야 하는데 그러기 위해서는 같은 파일을 추가로 수정해야 할 부분이 있습니다.





    3. controller.ext.php 파일 114번째 라인 수정


    114번째 라인은 데이터베이스를 생성 후 패널에 표기되는 생성된 데이터베이스의 이름의 표현법을 담당합니다.



    여기도 역시 $currentuser['username'] . "_" .  이 부분을 제거합니다.



    어떻게 생성되는지 확인하기 위해 3이라는 데이터베이스를 생성해 보도록 하겠습니다.





    입력한 데이터베이스 이름 : 3

    패널에 표시된 데이터베이스 이름 : 3

    실제로 생성된 데이터베이스 이름 : 3


    실제로 생성되는 데이터베이스 이름과 패널이 표시되는 데이터베이스 이름이 일치하게 되었습니다. 하지만, 파란 줄로 표시한 것 처럼 새로운 데이터베이스를 생성하기 위한 입력 칸을 보면 여전히 "유저명_" 이 기본적으로 붙어있는데 실제 데이터베이스 생성과는 직접적인 관련이 없는 부분이지만 데이터베이스를 생성할 때 헷갈리기 때문에 이 부분도 수정하도록 하겠습니다.





    4. module.zpm 파일 72번째 라인 수정


    *.zpm 파일은 Zpanel과 Sentora 패널에서 사용하는 html 문서 변환 파일입니다. 확장자만 다를 뿐 파일 안에 태그 형식은 html과 거의 100% 호환 되는 파일입니다. 이 파일에서 72번째 줄이 바로 새로운 데이터베이스를 생성할 때 패널에서 표시되는 내용을 담당합니다.


    일단, 이 파일의 절대경로부터 알려드리면 아래와 같습니다.


    /etc/sentora/panel/modules/mysql_databases/module.zpm


    여기에 72번째 라인을 보면 아래와 같이 되어 있습니다.


    이 중에서 <@ CurrentUserName @>_ 부분을 삭제합니다.



    이제 다시 패널로 접속해서 새로운 데이터 베이스를 생성해 보겠습니다.



    위에 화면처럼 생성하는 입력칸에서도 더이상 "유저명_"이 나타나지 않는 것을 확인할 수 있습니다.



    데이터베이스의 경우에는 혼자서 서버를 사용하는 경우에는 큰 문제는 없지만, 여러사람에게 호스팅을 서비스 하는 경우에는 별로 추천하지 않는 방법입니다. 데이터베이스가 중복되는 경우가 꽤 많기 때문에 접두사를 삭제하는 것은 여러번 고려를 해보고 변경할 것을 추천드립니다.

    이번 포스팅은 센토라가 1.0.3 이후로 불편해 하는 분들을 위해 FTP 사용자를 원래대로 되돌리는 방법을 연구하다, 데이터베이스도 접두사를 빼는 방법까지 적었습니다. 앞에 붙는 접두사가 불편한 분들에게 도움이 될 것이라고 생각합니다.^^






    반응형
    Posted by clamp2x