CentOS + Apache + Mysql(MariaDB) + Mantis

# CentOS 설치
- [Download CentOS](https://www.centos.org/download/)
- [VMware에 CentOS 7설치](https://corock.tistory.com/315)

# pyton + django 설치
## 1. CentOS에 Python 3.7 설치

#### python 3.7.4 설치

```python
# 필수 모듈 설치
$ sudo yum install gcc zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel

# Python다운
$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
# 압축해제
$ tar zxvf Python-3.7.4.tgz
$ cd Python-3.7.4
$ ./configure --enable-shared

# 디폴트로 설치된 2.7버젼과 병행사용(make install:기존 2.7을 덮어씀)
$ make altinstall
#
$ su root # <<== 안해도 되는듯...
$ export LD_LIBRARY_PATH=/usr/local/lib
```
#### 설치확인

```python
# 버전확인
$ python3.7 -V 
# 설치경로 확인
$ which python3.7
```
[참고1](https://dodo-it.tistory.com/69)
[참고2](https://narito.ninja/blog/detail/20/)
[참고3](https://snowdeer.github.io/python/2018/02/20/install-python3-on-centos/) << 일단 중지

## 2. django 설치
- [예제로 배우는 Python 프로그래밍](http://pythonstudy.xyz/python/django)
- [장고걸스 튜토리얼](https://tutorial.djangogirls.org/ko/django_installation/)

### 2.1 pip
- [pip란?](https://medium.com/@dan_kim/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%B4%88%EC%8B%AC%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-pip-%EA%B7%B8%EB%A6%AC%EA%B3%A0-virtualenv-%EC%86%8C%EA%B0%9C-a53512fab3c2)
    - 파이썬으로 작성된 패키지 라이브러리를 관리해주는 시스템
    - pip와 virtualenv는 글로벌 설치되어야 하는 유일한 패키지
    - ubuntu의 apt-get
    
```python
# 
$ yum install epel-release
# 
$ yum install python-pip
# 
$ pip3.7 install pip --upgrade
```
[참고1](https://rriifftt.hatenablog.com/entry/2015/10/28/142043)


### 2.2 가상환경    
- [Virtualenv](https://medium.com/@dan_kim/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%B4%88%EC%8B%AC%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-pip-%EA%B7%B8%EB%A6%AC%EA%B3%A0-virtualenv-%EC%86%8C%EA%B0%9C-a53512fab3c2)
    - 사용자가 정한 임의의 디렉토리 밑에 독립적인 파이썬 개발 환경구축
    - 단독 프로젝트일 경우 생략가능

```python
# 프로젝트를 만들 폴더생성
# user계정(centos)으로 만들자(/home/centos/)
$ mkdir django
$ cd django

# 가상환경관리폴더 env생성
$ python3 -m venv myvenv

# 가상환경사용
$ source myvenv/bin/activate
(myvenv) [root@localhost mytest]
```

### 2.3 Django 설치
```python
# 특정버전 장고설치
(myvenv) $ pip3.7 install Django==2.1.2

# 최신버전 장고설치
# Djangoの最新版だとApacheと連携したときにSQLiteのバージョンのエラーが出て起動できないので、
# 一つ古いバージョンをインストールする。(SQLiteの最新版を入れてもダメだった。)
(myvenv) $ pip3.7 install django

# 프로젝트폴더 생성
(myvenv) ~/django$ django-admin startproject mysite .
```

### 2.4 Apache
```python
# 설치
$ yum install -y httpd-devel
# 방화벽 설정
$ firewall-cmd --permanent --zone=public --add-service=http
$ firewall-cmd --permanent --zone=public --add-service=https
$ firewall-cmd --reload

# 2.5 mod_wsgi 설치 후 실행
# 아파치 기동
$ systemctl enable httpd.service
$ systemctl start httpd.service
```
### 2.5 mod_wsgi
- PythonとApacheをつなぐもの

```python
$ pip3.7 install mod_wsgi
# 환경파일 아파치 폴더에 복사
$ cp /usr/local/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so /etc/httpd/modules
```

- django.conf 생성

```python
$ vim /etc/httpd/conf.d/django.conf
```

```python:django.conf
LoadModule wsgi_module modules/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

WSGIScriptAlias / /home/centos/django/mysite/wsgi.py
WSGIPythonPath /home/centos/django/
#virutalenvを使用している場合
#WSGIPythonHome /home/dekosuke/env/django-env

<Directory /home/centos/django/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
```

- settings.py 수정

```python
$ cd mysite
$ vim settings.py

# settings.py 수정
ALLOWED_HOSTS = ["*"]
```

### 2.6 폴더 접근권한부여
フォルダにアクセスする権限の関係で開発する際は、SELinuxをdisabaleにしておいたほうがいい。
- [SELinuxの設定](https://qiita.com/hanaita0102/items/5d3675e4dc1530b255ba)

それでも発生するようなら、ファイルのアクセスを変更する
- [Linux - Apache 설치후 페이지 접근시, 권한 에러](http://develop.sunshiny.co.kr/960)
- chmod -R 755 公開するフォルダ

## 3. 참조
- [Apache 오류 로그확인](https://zetawiki.com/wiki/아파치_오류_로그_error_log)

```python
# Centos
$ /var/log/httpd/error_log
# Ubuntu
$ /var/log/apache2/error.log

# 마지막 2줄 확인
$ tail -2 /var/log/httpd/error_log
```
- [파이썬(Python) 3 업데이트 후 YUM 실행 시 SyntaxError: invalid syntax 에러](http://semantics.kr/yum-%EC%8B%A4%ED%96%89-%EC%8B%9C-syntaxerror/?ckattempt=1)
- [Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応](https://qiita.com/rururu_kenken/items/8202b30b50e3bfa75821)
- [vi/vim 명령어 정리](https://gyuha.tistory.com/157)

# Oracle 설치
- [Oracle 12c R2(12.2.0.1.0)](https://www.oracle.com/database/technologies/oracle-database-software-downloads.html)
- [설치참조 1](https://confluence.curvc.com/pages/viewpage.action?pageId=11927710)
- [설치참조 2](https://gsk121.tistory.com/384)



======================================
## 1. 저장소 업데이트/추가
#### yum Update
- RPM 기반 시스템용 패키지 설치/삭제/업데이트 도구
- [yum사용법](https://zetawiki.com/wiki/Yum,_yum_%EC%82%AC%EC%9A%A9%EB%B2%95)

```python
yum update -y
```
#### EPEL 추가
- yum 이외의 추가 패키지관리
- [참고](https://www.lesstif.com/pages/viewpage.action?pageId=18219464)

```python
# 설치확인
rpm -qa | grep epel-release
# 저장소 버전 확인
yum list epel-release
# 삭제
#rpm -ev epel-release-6-8.noarch
# 설치
yum install epel-release
```

#### remi 추가
```python
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
```

## 2. Apacheのインストール
```python
# Version 確認
httpd -v
# install
yum install httpd
```
## 3. mysql 
```python
# 確認
rpm -qa | grep php-mysql
# 설치명령어 
#
yum install mariadb-server

# DB
CREATE DATABASE mantisdb;
CREATE USER mantisuser@localhost IDENTIFIED BY 'root';
GRANT ALL ON mantisdb.* TO mantisuser;

select Host, User, Password from mysql.user;

SET PASSWORD FOR mantisuser = PASSWORD('root');
SET PASSWORD FOR mantisuser@localhost = PASSWORD('root');
```
## 3. 방화벽
https://eng-entrance.com/linux-selinux
## 4. mantis

```python
#
mv mantisbt-2.22.1 /var/www/html/mantisbt
#
chown apache:apache -R /var/www/html/mantisbt
```
- 접속  
http://192.168.10.58/mantisbt/login_page.php


- [참조](https://m.blog.naver.com/PostView.nhn?blogId=linebird&logNo=110051600354&proxyReferer=https%3A%2F%2Fwww.google.com%2F) 
- [아파치 오류 로그](https://zetawiki.com/wiki/아파치_오류_로그_error_log)

https://tech.godpress.net/?p=715
https://qiita.com/ssaita/items/9e0170251d45ed1b8818
https://qiita.com/keitaoriginal/items/dd382fcb46bcbb4e14a8

https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%B0%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
https://namu.wiki/w/%EC%9D%B4%EC%8A%88%20%ED%8A%B8%EB%9E%98%EC%BB%A4