루트권한으로 전환

sudo -s

(루트 패쓰워드 입력)


1. 패키지 정보 업데이트 

apt-get update


2. 아파치 2 설치

apt-get install apache2




3. mysql 인증 모듈 설치

apt-get install libapache2-mod-auth-mysql


4. mysql 설치

apt-get install mysql-server mysql-client

중간에 비밀번호 설정도 나옴

 



5. PHP5 설치

apt-get install php5-common php5 libapache2-mod-php5


6. PHP와 MySQL을 연동하기 위한 모듈을 설치

apt-get install php5-mysql




7. apache를 재시작

/etc/init.d/apache2 restart


8. mysql 을 재시작

/etc/init.d/mysql restart



아파치 설정 파일 : /etc/apache2/apache2.conf

mysql 설정 파일 :  /etc/mysql/my.cnf

Default Web root :  /var/www/html

Apache root location : /etc/apache2/sites-available/default


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<arpa/inet.h> // AF_INET 외부 네트워크 도메인
#include<sys/types.h>
#include<sys/socket.h>
#define MAXLINE 511
int main(int argc, char *argv[]) {
       int cli_sock;
       struct sockaddr_in serv_addr;
       int datalen;
       pid_t pid;
       char buf[MAXLINE + 1];
       int nbytes;
       if (argc != 3) {     //사용법 숙지
              printf("Usage : %s <IP> <Port> \n", argv[0]);
              exit(0);
       }
       cli_sock = socket(PF_INET, SOCK_STREAM, 0); //cli_sock을 소켓 파일 서술자로 만듭니다.
       if (cli_sock == -1) {
              perror("socket() error\n");
              exit(0);
       }
       memset(&serv_addr, 0, sizeof(serv_addr));
       serv_addr.sin_family = AF_INET;
       serv_addr.sin_addr.s_addr = inet_addr(argv[1]); //ip와
       serv_addr.sin_port = htons(atoi(argv[2])); //port의 입력
       if (connect(cli_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1) { //서버에게 접근 시도
              perror("connect() error\n");
              exit(0);
       }
       if ((pid = fork()) == 1) { //다중 프로세스를 위한 fork함수. 자식 프로세스 생성
              perror("fork() error\n");
              exit(0);
       }
       else if (pid == 0) { //자식 프로세스 부분. stdin로 사용자가 입력한 문자를 buf에 저장하여 소켓에다
              while (1) {        //write 시스템콜을 이용해 server에게 문자를 보낸다. exit 입력시 종료
                     fgets(buf, sizeof(buf), stdin);
                     nbytes = strlen(buf);
                     write(cli_sock, buf, MAXLINE);
                     if ((strncmp, "exit", 4) == 0) {
                           puts("Good Bye.");
                           exit(0);
                     }
              }
              exit(0);
       }
       else if (pid>0) { //부모프로세스. server가 보낸 문자열을 받아 출력한다.
              while (1) {    //역시 exit 를 받을시 종료
                     if (nbytes = read(cli_sock, buf, MAXLINE) <0) {
                           perror("read() error\n");
                           exit(0);
                     }
                     printf("%s", buf);
                     if (strncmp(buf, "exit", 4) == 0)
                           exit(0);
              }
       }
       close(cli_sock);
       return 0;

}



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<arpa/inet.h> //AF_INET 외부 내트워크 도메인
#include<sys/types.h>
#include<sys/socket.h>
#define MAXLINE 511
int main(int argc, char* argv[]) {
       int serv_sock;
       int conn_sock;
       struct sockaddr_in serv_addr;
       struct sockaddr_in conn_addr;
       int addrlen, datalen;
       char buf[MAXLINE + 1];
       int nbytes;
       pid_t pid;
       if (argc != 2) { //사용법 숙지
              printf("Usage : %s <port>\n", argv[0]);
              exit(0);
       }
       serv_sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); // serv_sock를 소켓 파일 서술자로 만든다.
       if (serv_sock == -1) {
              perror("socket() error\n");
              exit(0);
       }
       memset(&serv_addr, 0, sizeof(serv_addr));
       serv_addr.sin_family = AF_INET;
       serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
       serv_addr.sin_port = htons(atoi(argv[1]));
       if (bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1) {
              perror("bind() error\n"); //bind(). 소켓 파일 서술자에게 ip, port 주소를 가진 구조체를 넣어준다.
              exit(0);
       }
       if (listen(serv_sock, 1) == -1) { // 소켓 대기열 생성
              perror("listen() error\n");
              exit(0);
       }
       addrlen = sizeof(conn_sock);
       conn_sock = accept(serv_sock, (struct sockaddr*)&conn_addr, &addrlen); //전화오기를 기다림.
       if (conn_sock == -1) {
              perror("accept() error\n");
              exit(0);
       }
       if ((pid = fork()) == -1) { close(conn_sock); perror("fork() error"); exit(0); }
       else if (pid == 0) { //자식프로세스이다.
              while (1) {
                     fgets(buf, sizeof(buf), stdin);
                     nbytes = strlen(buf);
                     write(conn_sock, buf, MAXLINE);
                     if ((strncmp, "exit", 4) == 0) {
                           puts("Good Bye.");
                           exit(0);
                     } //자식프로세스는 stdin으로 사용자가 입력한 문자를 buf에 저장하여 소켓에다 write 시스템콜을 이용해
              }     //client에게 문자열을 보내고, exit를 입력시 종료하게 한다.
              exit(0);
       }
       else if (pid>0) { //부모프로세스이다.
              while (1) {
                     if ((nbytes = read(conn_sock, buf, MAXLINE)) <0) {
                           perror("read() error\n");
                           exit(0);
                     }
                     printf("%s", buf);
                     if (strncmp(buf, "exit", 4) == 0)
                           exit(0);
              } //부모프로세스는 client가 소켓에 보낸 문자열을 read로 읽어 저장한다.
       }     //역시 exit 가 날라왔을시에는 종료.
       return 0;

}


vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko crashkernel=auto  rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"
핵심은 ‘GRUB_CMDLINE_LINUX’ 에 ‘net.ifnames=0 biosdevname=0’ 를 추가

grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.9.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.9.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.8.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.8.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.6.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.6.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-babecd961e9a465686311e3f5930f25e
Found initrd image: /boot/initramfs-0-rescue-babecd961e9a465686311e3f5930f25e.img
done

cd /etc/sysconfig/network-scripts/
mv ifcfg-eno16777736 ifcfg-eth0

reboot


0. 의존성 라이브러리

yum -y install php56w-xml

//php 버전마다 다르게 있으므로 php(버전)까지 치고 tab을 눌러서 xml선택


1. 미디어위키 다운로드 후 압축풀기

wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-core-1.27.1.tar.gz

tar -zxvf mediawiki-core-1.27.1.tar.gz


2. 압축푼 디렉토리 이동

mv mediawiki-1.27.1/* /var/www/html/


3. 데이터베이스 만들어주기

mysql -u root -p

create database hust_wiki; //여기서 hust_wiki는 내가 만들고싶으거 만든거


GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON hust_wiki.* TO 'wikiadmin'@'localhost' IDENTIFIED BY 'admin123';

//임시로 hust.wiki 데이터베이스, wikiadmin을 계정이름, 비밀번호를 admin123으로 해준다.


FLUSH PRIVILEGES; //이제 권한 설정


4. 이제 위키 설정

- 브라우저 틀고 IP입력 후 들어가면 위키 설정페이지 나오고

set up the wiki클릭


이후 설정해주면 됨
(설정추가예정)


마지막에 

restorecon -r /var/www/html/            //SELinux 차단해제? 인걸로 들음

chmod 644 LocalSettings.php


그리고 위키 사용 ㄱㄱ

+ Recent posts