본문 바로가기

개발 공부

리눅스 Apache, PHP, MySQL 소스설치

가상 머신 리눅스 우분투 16.04 LTS에  apm 소스설치


[Apache 설치]

 

wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz

 

wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz

 

tar xvfz httpd-2.4.25.tar.gz

tar xvfz apr-1.5.1.tar.gz -C httpd-2.4.25/srclib/

tar xvfz apr-util-1.5.4.tar.gz -C httpd-2.4.25/srclib/

mv httpd-2.4.25/srclib/apr-1.5.1 httpd-2.4.25/srclib/apr

mv httpd-2.4.25/srclib/apr-util-1.5.4 httpd-2.4.25/srclib/apr-util

 

wget --ftp-user=anonymous ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

tar xvfz pcre-8.39.tar.gz

cd pcre-8.39

./configure --prefix=/usr/local/pcre

make && make install

 

apt-get install libssl-dev

 

cd httpd-2.4.25/

./configure --prefix=/app/apache \

--with-included-apr \

--with-pcre=/usr/local/pcre/bin/pcre-config \

--with-ssl \

--enable-so \

--enable-ssl \

--enable-rewrite \

--with-mpm=worker \

--enable-cache \

--enable-modules=all \

--enable-mods-shared=all


make && make install


cd /app/apache/conf

vi httpd.conf


(vi모드 따로 검색해보고 쓰는법 숙지하기)


아무데나 ServerName localhost 추가

<IfModule dir_module> 태그안에 index.html 옆에 index.php 추가


AddType application/x-compress .Z 

퍼온 사이트에서 아래쪽에 밑에 두줄 추가해야 한다고 나와 있는데 추가하면 사이트에 localhost 를 주소창에 입력하고 실행하면 index.html 파일이 다운로드 된다.


 둘중 밑에 있는 것은 주석처리를 해주자 


AddType application/x-httpd-php .php .htm .html .inc .php4 .php3

AddType application/x-httpd-php-source .php5 


AddType application/x-httpd-php .php .htm .html .inc .php4 .php3

#AddType application/x-httpd-php-source .php5 




cp /app/apache/bin/apachectl /etc/init.d/httpd


/etc/init.d/httpd start

/etc/init.d/httpd restart


실행 후 브라우저에 localhost or 127.0.0.1 or 현재아이피 

로 접속해서 It Works!가 뜨면 성공 

아파치 설치 끝


window에서 it works 확인하려면 


명령어 ifconfig


inet addr 의 ip 주소를 window 브라우저에 주소창에 입력한다. 



[MySQL 설치]

(참고 사이트 하나 http://bluexmas.tistory.com/631 여기가 더 자세할지도

많이 비슷한것같은 아니 똑같은?? 사이트 http://bluexmas.tistory.com/m/631  기억은 잘 안나는데 뭔가짬뽕해야될듯 하다)


wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz


apt-get install cmake

apt-get install libncurses5-dev

 

useradd -m -c "MySQL Server" -d /usr/local/mysql -s /bin/false -u 27 mysql

 

tar xvfx mysql-5.7.18.tar.gz

cd mysql-5.7.18

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_USER=mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/sr/local/mysql/boost


make test 해주는 게 좋을듯하다. 

make && make install

(꽤 오래걸림)


cd /usr/local/mysql/


./bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data


mv my.cnf /etc/my.cnf


[mysqld] 

# port=3306 

init_connect=SET collation_connection = utf8_general_ci 

init_connect=SET NAMES utf8 

character-set-server=utf8 

collation-server=utf8_general_ci 


# table_cache=1024 

max_connections=2048 

max_user_connections=500 

max_connect_errors=10000 

wait_timeout=300 

query_cache_type = 1 

query_cache_size = 128M 

query_cache_limit = 5M 

slow_query_log 

long_query_time=3 

max_allowed_packet=16M 

sort_buffer_size = 2M 


# skip-innodb 

skip-name-resolve 


[mysql] 

default-character-set=utf8 


[client] 

default-character-set=utf8


새로 파일이 만들어지는데 위 내용 추가하고 저장


cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


vi /etc/init.d/mysqld


basedir=/usr/local/mysql 

datadir=/usr/local/mysql/data


이렇게 수정 


update-rc.d mysqld defaults


service mysqld start

service mysqld status (확인창에서 나오려면 q를 누르면됨)

service mysqld stop


명령어 3개로 확인및 껏다키기


./bin/mysql -u root -p

(이게 안되면 mysql 파일 있는 경로 전체 다써줘야한다.)



여기서 진입이 안될경우 mysql 비밀번호 재설정 구글링 ㄱ


--mysql진입--

mysql> use mysql


update user set authentication_string = password('비밀번호') where user = 'root';


flush privileges;(변경 사항 저장)


exit or quit


[추가] mysql 사용자추가 (근데 이런건 mysql로 따로 검색하면 많이나옴)


mysql> create user 'user1'@'%' identified by 'userpw';

mysql> grant all privileges on *.* to 'user1'@'%';

mysql> flush privileges;



[php 7.2.0 깔때 필요한 사이트]

https://www.fun25.co.kr/blog/php-7-ubuntu-1404-compile-install/?page=8

밑에 socket 관련된거 해줘야한다.



버전 받는 방법

wget http://kr1.php.net/get/php-7.2.0.tar.bz2/from/this/mirror -O php-7.2.0.tar.bz2

tar xvf php-7.0.8.tar.bz2 && cd php-7.0.8


mysql > select 1; 확인해서 에러뜬거 


mysql > SET PASSWORD =PASSWORD('비밀번호');

해주고 다시 접속


[PHP 설치]

 

wget http://kr1.php.net/distributions/php-5.6.24.tar.gz


tar xvfz php-5.6.24.tar.gz


cd php-5.6.24


apt-get install libxml++2.6-dev

sudo apt-get install libpng-dev


./configure --prefix=/usr/local/php \

--with-mysql-sock=/var/lib/mysql/mysql.sock \ 

--with-mysql=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-apxs2=/app/apache/bin/apxs \     

--with-config-file-path=/app/apache/conf \

--with-regex=php \

--with-zlib \

--disable-debug \

--enable-calendar \

--enable-ftp \

--enable-sockets \

--enable-sysvsem \

--enable-sysvshm \

--with-gd \

--enable-mbstring



make && make install

 

cp php.ini-production /app/apache/conf/php.ini


여기서 발생한 오류는 php 와  mysql랑 연동이 안되는 것이었는데


php 설치할때 


./configure --prefix=/usr/local/php \

--with-mysql-sock=/var/lib/mysql/mysql.sock \ 


 /var/lib/mysql/mysql.sock 에 가보면 아무 것도 없다


일단


cd /var/lib

mkdir mysql

cd mysql

ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock


해주면 링크가 걸린다


find / -name php.ini

경로가 나오면


vi 경로/php.ini


/socket 으로 찾아서


pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"
mysql.default_socket="/var/lib/mysql/mysql.sock"
mysqli.default_socket="/var/lib/mysql/mysql.sock"

으로 수정하고 밑에 mysql 연동 확인 해보면 되지않을까?


* phpinfo.php 확인 (openssl, mysql 연동확인)


# vi /app/apache/htdocs/phpinfo.php 

<?php 

phpinfo(); 

?>

후에 브라우저에 localhost/phpinfo.php 다음 php 정보 나오면 성공 


* mysql 연동확인 - mysqltest.php 이거 또한 /app/apache/htdocs 에 넣는다


mysql_connect는 php5 이전 방식임


<!DOCTYPE html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title>MySql-PHP TEST</title>

</head>

<body>

<?php

$db_host="localhost";

$db_user="root";

$db_passwd="root비밀번호";

$db_name="db명";

$conn =mysqli_connect($db_host, $db_user, $db_passwd, $db_name);

if(mysqli_connect_errno($conn)){

echo "connect faild : ".mysqli_connect_error();

echo "ERROR NUMBER : ".mysqli_connect_errno();

}else {

echo "connect success"

}

?>

</body>

</html>


참고 사이트(http://makand.tistory.com/entry/PHP-Mysql-ConnectPHP-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99)





출처: http://ppost.tistory.com/entry/우분투1604lts에-apm-수동설치하기소스설치 [Game Developer,]

'개발 공부' 카테고리의 다른 글

apache2.4 php7 mariaDB window10에 설치  (2) 2018.04.27
firebase 적용 시 API 19 이하에서 에러  (0) 2018.01.19