하나의 회의공간을 서로다른 회사가 사용하는데, 예약시스템으로 관리할 필요가 생겼다. 

예약시스템 관리하는 오픈소스를 찾아보았다.

회의내용등이 외부로 공개되는것을 원치 않아 내부에서만 사용하는 설치형태 기준으로 찾아보기로 했다.

(구글캘린더 응용등은 배제)

1. Coworkers - 친숙한 java 기반의 회의실(자원) 예약시스템, 설치를 해봤으나 기능이 좀 미비하고, 중간에 오류가 발생함(아마도 설정이나 소스를 제대로 확인하지 못해서 발생한게 아닌가 싶다.)

2. Booked - PHP로 개발된 예약시스템. 문서화 및 설치가이드가 잘되어 있는듯하여 이 제품으로 선택

 - 공식사이트 - https://www.bookedscheduler.com/

   ( 초기에는 사이트에서 다운로드를 지원했으나 3.0버전업 이후에 지원하지 않음. )

 - github에서 구버전(2.8.5) 다운로드 진행 : https://github.com/effgarces/BookedScheduler

 - 공식포럼 : https://forums.bookedscheduler.com/ 

 - 설치가이드 : 소스를 다운받으면 installation.md5에 영문으로 친절하게 가이드되어 있음

 

이후 어느순간 유료화 정책으로 변경되면서 소스다운로드가 사라졌다. 완전히 사라진건 아니고 숨겨졌다.

아래 github를 통해서 다운로드 해야한다. (22.05.01 updated)

https://github.com/effgarces/BookedScheduler

 

설치유형 : AWS EC2 개설해서 DB(MariaDB), Apache2.x로 직접 설치

설치순서 : 일반적인 APM설치의 과정을 거친다. 

 

1. MySQL(MariaDB)설치

2. Apache 설치

3. PHP설치

4. 방화벽 오픈

 

1. DB설치

CREATE DATABASE `booked`;
CREATE USER 'booked_user'@'localhost' identified by 'PASSWORD';
CREATE USER 'booked_user'@'127.0.0.1' identified by 'PASSWORD';

GRANT ALL on booked.* to 'booked_user'@'localhost';
GRANT ALL on booked.* to 'booked_user'@'127.0.0.1';

SET foreign_key_checks = 0;

 

2. Apache 설치

 //apache 설치
 \> sudo yum install -y httpd
...
 //apache 시작
 \> sudo systemctl start httpd

 //리부팅시 자동실행
 \> sudo systemctl enable httpd

 

3. PHP 및 모듈 설치

///////////// PHP7 설치 /////////////
sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

sudo yum-config-manager --enable remi-php73
sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-xml php-pear php-pdo

sudo systemctl restart httpd

sudo vi /var/www/html/phpinfo.php

<?php
phpinfo()
?>

브라우져에서 http://SERVER-ADDRESS/phpinfo.php로 확인

 

4. 방화벽 해제

\> sudo vi /etc/selinux/config

SELINUX=disabled 로 변경.

 

5. 소스 배포 및 권한변경

특별한 이유가 없다면 /var/www/html에 배포한다.

sudo chown -R apache:apache /var/www/html

//tpl, tpl_c는 아래와 같이 권한을 변경
//설치과정에서 권한오류가 발생한다면 777변경 후 설치완료 후 755로 변경한다.
sudo chmod 755 tpl
sudo chmod 755 tpl_c

 

6. 설치스크립트 진행

http://SERVER-ADDRESS/Web/install/ 페이지에서 설치 진행

 

 

 

 

 



The requested operation has failed

도대체 저 에러를 몇번을 반복하면서 설정을 바꿔봤던가. 이것이야 말로 진정한 삽질이로다.

 

윈도우에서 아파치를 설치하고 거기에 PHP를 돌려본 사람은 아마도 두분류가 있을듯 하다.

아무렇지 않게 쉽게 성공한 사람  vs 무한 삽질을 해대는 사람.

 

원인은 딱 한가지. 매뉴얼을 제대로 읽었나? 잃지 않았나의 차이.

버전업이 되면서 5.3.x 이후에 특히 발생하는 문제.

PHP 5.2.x를 사용할때는 아무 문제가 없었던 문제.

"

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

If you are using PHP with IIS you should use the VC9 versions of PHP

VC6 Versions are compiled with the legacy Visual Studio 6 compiler

VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed

 

Do NOT use VC9 version with apache.org binaries

VC9 versions of Apache can be fetched at Apache Lounge. We use their binaries to build the Apache SAPIs.

 

결론은 VC6, VC9인지 체크먼저 해보자.

 

VC6 ==> Apache

VC9 ==> IIS

 

현재 PHP 사이트 다운로드 상단에 나와 있는  최신 버전은 5.4.9

5.3.x 버전이후는 VC9이다.

아무거나 설치하면 되는줄 알았는데, 그런것이 아니었다.

아파치용 최신버전은 PHP 5.2 (5.2.17)  요걸 사용하자.

 

참고로 윈도우상에서 APM(Apache + PHP + MySQL)을 테스트 해보기위한 가장 쉬운 방법은 다음의 자동설치를 이용하는것이다.

 

APMSETUP ==> http://www.apmsetup.com/

 

php-cgi.exe

 

php-cgi.zip



기본파일

_common.php  : common.php를 호출하는 곳으로, 모든 디렉토리에서 같은 파일 이름을 씁니다.
_head.php        : head.php를 호출하는 곳으로, 모든 디렉토리에서 같은 파일 이름을 씁니다.
_tail.php           : tail.php를 호출하는 곳으로, 모든 디렉토리에서 같은 파일 이름을 씁니다.
common.php    : 그누의 기본구조이며, 모든 작업에 있어서 반드시 include 해야 합니다
config.php        : 그누의 기본적인 변수, 테이블, 도메인 등을 정의 합니다
dbconfig.php    : 그누의 설치후에 생기는 것으로 mysql db 접속에 필요한 정보가 있습니다. 그누를 재설치 하고자 하는 경우 이 파일을 지우고, install.bak을 install로 바꾸면 됩니다

디자인 파일

style.css       : 그누의 기본 css 입니다.
head.php       : head.sub.php 및 필요한 lib을 불러오고 상단 및 좌측 디자인이 있습니다
head.sub.php : 모든 곳에서 공통으로 불러 쓰며 디자인이 없습니다
index.php       : _common.php, _head.php, _tail.php를 불러오고 메인 디자인이 있습니다
tail.sub.php    : 모든 곳에서 공통으로 불러쓰며 숨겨진 iframe, 접속접보 insert 등이 있습니다
tail.php           : tail.sub.php를 불러오고 우측 및 하단부 디자인이 있습니다

디렉토리

adm/              : 관리자 페이지
bbs/               : 그누의 기본 프로그램
cheditor4/        : 웹 편집기 (cheditor, http://www.chdcode.com)
extend/            : 그누를 설치하면 생기는 디렉토리로 이곳의 모든 파일은 common.php에서 읽습니다. 이곳에 파일을 넣으면 그누에서 항상 쓸 수 있어서 편하지만 그만큼 사이트의 속도를 떨어뜨리게 됩니다.
img/                : 그누의 기본 이미지
install/             : 설치 프로그램 디렉토리, 설치후에는 install.bak으로 바뀜
js/                   : 자바스크립트 디렉토리
lib/                  : php 라이브러리 디렉토리
skin/                : 그누보드 스킨 디렉토리

skin/board/       : 게시판 스킨 디렉토리 (게시판 관리화면에서 지정)
skin/connect/    : 현재 접속자수 스킨 디렉토리 (관리자/기본환경설정에서 지정)
skin/latest/        : 최신글 스킨 디렉토리 (해당 함수를 호출할 때 지정)
skin/member/   : 회원정보 등록/수정 스킨 디렉토리 (관리자/기본환경설정에서 지정)
skin/new/         : 최근 게시물 스킨 디렉토리 (관리자/기본환경설정에서 지정)
skin/outlogin/    : 외부로그인 스킨 디렉토리 (해당 함수를 호출할 때 지정)
skin/poll/          : 투표스킨 디렉토리 (해당 함수를 호출할 때 지정)
skin/popular/     : 인기검색어 스킨 디렉토리 (해당 함수를 호출할 때 지정)
skin/search/      : 검색 스킨 디렉토리 (관리자/기본환경설정에서 지정)
skin/visit            : 방문자수 스킨 디렉토리 (해당 함수를 호출할 때 지정)

아래는 사용하지 않거나 빈도가 낮으므로 삭제해도 됩니다.

cheditor/           : 구버젼 cheditor
geditor/             : geditor (4.30.00부터 cheditor로 대치되었슴)
convert/            : 그누 3에서 업글하기
install.bak/        : 설치후 변경된 설치프로그램 디렉토리 이름

 

 

출처 : http://blog.daum.net/haha25/5387156