Install MongoDB PHP Driver
$aptitude search pecl
$apt-get install pecl
$sudo apt-get php7.0-dev //run phpize
$pecl install mongodb
add "extension=mongodb.so" in fpm/php.ini and cli/php.ini:
Install MongoDB Manual(수동설치)
MongoDB Download Center | MongoDB : 링크를 따라가면 자신에 맞는 버전페이지로 자동이동
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.6.tgz
가급적 묵음파일버전(tar,tar.gz, tgz 압축푸는법) 으로 받는다. 수동설치가 안정적이다.
$sudo su
#tar xvf https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.6.tgz -C /usr/local/
#cd /usr/local
#mv https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.6.tgz mongodb
서브디렉토리를 생성하는데 mongodb 는 오픈소스기반 Bigdata 처리 software인걸 감안 할때 설정 실행 파일을 제외한 데이터는 외부 저장소로 확장(Scale out)이 용이하다는 점이 기존 RDBMS보다 강한 장점으 작용합니다. 그러므로 시작단계에서는 메인 디렉토리에 저장소를 함께 두어로 상관없지만 저는 외부 저장소로 dpath를 지정하기위해 우분투를 설치할당시에 분할해 두었던 dba1파티션을 사용해 보겠읍니다.
mkdir -p /dba1/mongodb/data/
$mkdir -p /dba1/mongodb/log/
다음은 설정파일을 보관할 디렉토리를 만듭니다.
$mkdir config
그리고 설정 파일을 만드는데 혹시라도 mongodb를 설치했다가 지운적이 있다거나하면 /etc 폴더 및에 mongodb.conf파일이 존재할수 있으므로 그것을 symlink를 걸어서 사용하거나 새로 만들어 아래 내용을 입력한다.
dbpath=/usr/local/mongo
logpath=/usr/local/mongo/mongo.log
logappend=true
port=
verbose=true
fork=true
rest=true
[root@localhost mongo]#cd /usr/local/mongodb
[root@localhost mongo]# /usr/local/mongodb/bin/mongod --config config/mongodb.conf
2014-08-07T09:39:22.849+0900 ** WARNING: --rest is specified without --httpinterface,
2014-08-07T09:39:22.849+0900 ** enabling http interface
about to fork child process, waiting until server is ready for connections.
forked process: 3152 child process started successfully, parent exiting
# /usr/local/mongodb/bin/mongodb
localhost:7070
MongoDB shell version: 2.6.3
connecting to: localhost:7070/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2014-08-07T09:39:22.849+0900 ** WARNING: --rest is specified without --httpinter face,
2014-08-07T09:39:22.849+0900 ** enabling http interface
2014-08-07T09:39:22.856+0900 [initandlisten]
2014-08-07T09:39:22.856+0900 [initandlisten] ** WARNING: Readahead for /usr/loca l/mongo is set to 4096KB
2014-08-07T09:39:22.856+0900 [initandlisten] ** We suggest setting it t o 256KB (512 sectors) or less
2014-08-07T09:39:22.856+0900 [initandlisten] ** http://dochub.mongodb.o rg/core/readahead
# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
2017-07-31T13:09:40.566+0900 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-07-31T13:09:40.566+0900 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
root@ubuntu:/home/khjoony# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
tcp6 0 0 :::5355 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
127.0.0.1:27017 <--- 없음
# mongod
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] MongoDB starting : pid=5439 port=27017 dbpath=/data/db 64-bit host=ubuntu
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] db version v3.4.6
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] allocator: tcmalloc
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] modules: none
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] build environment:
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] distmod: ubuntu1604
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] distarch: x86_64
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] target_arch: x86_64
2017-07-31T13:12:57.426+0900 I CONTROL [initandlisten] options: {}
2017-07-31T13:12:57.493+0900 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-07-31T13:12:57.493+0900 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-07-31T13:12:57.493+0900 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-07-31T13:12:57.493+0900 I CONTROL [initandlisten] now exiting
2017-07-31T13:12:57.493+0900 I CONTROL [initandlisten] shutting down with code:100
root@ubuntu:/usr/local/mongodb/bin# mongod --config ../conf/mongodb.conf
2017-07-31T13:16:55.638+0900 I CONTROL [main] ** WARNING: --rest is specified without --httpinterface,
2017-07-31T13:16:55.638+0900 I CONTROL [main] ** enabling http interface
about to fork child process, waiting until server is ready for connections.
forked process: 5456
child process started successfully, parent exiting
root@ubuntu:/usr/local/mongodb/bin# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6
Server has startup warnings:
2017-07-31T13:16:55.638+0900 I CONTROL [main] ** WARNING: --rest is specified without --httpinterface,
2017-07-31T13:16:55.638+0900 I CONTROL [main] ** enabling http interface
2017-07-31T13:16:55.689+0900 I STORAGE [initandlisten]
2017-07-31T13:16:55.689+0900 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-07-31T13:16:55.689+0900 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten]
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten]
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten]
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-07-31T13:16:56.584+0900 I CONTROL [initandlisten]
> ^C
bye
Error : listen(): bind() failed errno:98 Address already in use for socket
Error : Failed to set up sockets during startup
solution : It was already running
$service mongodb status
Error : failed to unlink socket file /tmp/mongodb-27017.sock operation not permitted
==Permission denied for socket: /tmp/mongodb-27017.sock
Solution : $sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
ubuntu 우분투에서 mongodb 데이터 위치 directory 변경하기
NoSQL의 대명사 MongoDB의 편리함에 생산성이 좋아지고 있습니다.
왠만한 프로그램은, mysql 대신 mongodb를 쓸까 생각중입니다. ^^
ubuntu에서 mongodb를 설치하면, 기본적으로 /var/lib/mongodb 에 설치되게 됩니다.
가만히 놔두면, root가 가득차서 시스템이 위험해 질 수 있겠죠~ 그래서 변경하는 법을 공유합니다.
설치 사용 만큼이나, 간단합니다.
1. /data/mongodb 디렉토리를 생성합니다.
2. 디렉토리 오너를 mongodb로 설정합니다.
chown mongodb:mongodb /data/mongodb
3. 데이터베이스 중지하기
sudo service mongodb stop
4. 퍼미션 유지하며 하위디렉토리 복사하기
cp -Rp /var/lib/mongodb /data
5. 환경설정 변경
vi /etc/mongodb.conf
dbpath=/data/mongodb 설정
6. 데이터베이스 재 시작
sudo service mongodb start
7. 프로세스 시작후 데이터베이스 가동될 때까지 조금 대기
8. mongo shell 등에서 확인
MongoDB는 기본적으로 127.0.0.1 즉 로컬에서만 접속가능하도록 설정되어 있습니다.
개발하다보면, 다른 서버에서도 MongoDB에 접속해서 데이터 입력, 수정, 삭제, 받아오기 등을 처리해야 하죠.
간단하게 설정할 수 있습니다.
vi로 /etc 아래 있는 mongod.conf 파일을 열어주세요.
vi /etc/mongod.conf
아래와 같이 기본설정은 bind_ip에 로컬이 들어가 있습니다.
bind_ip = 127.0.0.1
이것을 0.0.0.0 으로 변경해주면, 다른 어느 곳에서나 접속이 가능하도록 변경됩니다.
bind_ip = 0.0.0.0
bind_ip = 127.0.0.1, 12x.12x.12x.12x
아이피 주소 사이에 콤마로 구분하시면 됩니다.
위 설정은 로컬과 12x.12x.12x.12x 주소만 허용하는 설정이 되겠죠.
자 원하는 설정을 하셨다면, MongoDB를 재시작 해주시면 되겠죠.
/etc/init.d/mongod restart
출처: http://ngee.tistory.com/372 [ngee]
댓글