Apache 설치, PHP 설치, Mysql을 설치를 다 했는데,


phpmyadmin을 설치 후 접속하니 Not Found 에러가 발생한다.


페이지를 찾을 수 없다는 이 에러... 어떻게 해야할까?


아파치에서 phpmyadmin을 인식을 못하는것이기 때문에


nano /etc/apache2/apache2.conf 


입력해서 설정 파일을 열고. phpmyadmin을 포함시켜줘야 한다.


맨 아래로 이동하여 


Include /etc/phpmyadmin/apache.conf


을 추가해주면 된다.


물론. phpmyadmin이 저 경로에 설치되어 있어야한다(기본 경로이므로 왠만하면 설치되어 있을 것)


확인하고 싶다면, 


whereis phpmyadmin


을 터미널에 입력한다면 설치 경로를 확인할 수 있다.

Posted by sungho88
,

APM이라고 부르는 이유를 알게 되었다.


Apache -> PHP ->Mysql -> phpmyadmin 순으로 깔아야 문제가 발생하지 않는다.


아파치 설정을 잘 못 건들여서 


apache2 unrecognized service


에러가 발생하였다. 수정 전으로 복구시켜보려 노력해봤으나 도저히 답이 없었다.


대부분의 사람들이 완전 삭제 후 재설치를 추천했다.


그래서 쓰여있는대로 아파치를 purge를 이용하여 싹 지우고 다시 설치를 했다.


그런데 문제가 발생했다.


웹 브라우저에서 PHP를 읽지 못하는 것이었다.


브라우저에 PHP코드 그대로 출력되었다...뭔가 패키지가 연동이 안 된 것이라 생각해 


검색해본 결과 


apt-get install libapache2-mod-php5 


이 명령어를 이용하여 아파치와 PHP의 연결을 해줘야한다.


다시 원상복구~




Posted by sungho88
,

우분투냐 CentOS냐에 따라 명령어가 다르다


우분투를 기준으로  


아파치 정지(Stop)/시작(Start)/재시작(Restart)는 다음과 같이 입력한다.


$ service apache2 stop

$ service apache2 start

$ service apache2 restart


다시 로드하는 명령어는 다음과 같다.


 /etc/init.d/apache2 reload



Posted by sungho88
,

chmod 777 /var/www/html


이렇게 입력해서 권한을 늘려주면 된다.

참고로, 777은 모든 권한을 풀어주므로 편해지기는 하지만, 보안상 좋지않다고 한다.


http://ttend.tistory.com/686


이 사이트를 참고하면 777의 의미를 알 수 있을 것이다.



FileZilla에 접속해서 아파치 웹 서버에 파일을 업로드하려 했으나, 


Permission denied가 뜨면서 실패했다.


그 해결방안으로 chmod 777 /var/www/html으로 작성하면,


write까지 된다. 755의 경우 쓰기는 안된다.


이것 역시 위 사이트에서 확인하도록 하자.

Posted by sungho88
,

<?php $saved_date = $row['date']; // 데이터베이스 값을 변수에 저장 $dateVal = substr($saved_date, 5, 10); // 날짜만 잘라서 변수에 저장 ?>


$row['date']에 2017-09-02 이 저장되어 있다고 가정하면,

substr() 함수를 이용하여 문자열을 원하는 위치에서 자를 수 있다.


 월.일


형태의 날짜를 작성하고 싶다면, 년 부분을 제거시키면 된다.

주의할 점은 잘라내는 부분이 사라지는 것이 아니라 그 부분만 남는다는 것이다.


위와 같이 substr($saved_date, 5, 10)로 작성하면 이 부분만 남게 된다는 것이다.


2017-09-02


문자열 하나하나가 위치다.


앞에서부터 5번째 즉, 2017-(이부분)


결론 2017-을 버리고 09-02까지만 잘라 사용하겠다는 의미이다!

반대로 음수로 할 수도 있다. 이것은 뒤에서부터 똑같이 진행된다.


Posted by sungho88
,

 rm -f test


단순히 파일을 지우고 싶다면, rm(아마도 remove의 약자) -f 파일명 

으로 하면된다.


주의할 점


위 -f의 의미는 묻지도 따지지도 않겠다는 뜻.

파일명을 입력하고 엔터를 치는 순간 파일은 제거된다.



Posted by sungho88
,

$_SERVER['PHP_SELF']


- 셀프. 즉, 자기 자신 PHP를 나타낸다.

- 즉, $_SERVER['PHP_SELF']을 사용하는 페이지가 test.php 면 test.php 경로 자체를 가지고 온다.

- 이것은 보통 form에서 action에 주로 사용한다. 이러면,  실행중인 PHP를 다시 호출한다.


        <form id="register-form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

            <input type="email" name="usr_email" placeholder="Email" class="form-control" />

<input type="text" name="usr_name" placeholder="Email" class="form-control" />

        </form>


이렇게 주로 작성한다. 나도 그냥 갖다 붙여서 잘 모르고 사용헀다.


그런데 만약에 PHP에서 사용하던 변수를 계속 사용하려면 어떻게 할까?


서버측에서(php포함) header를 사용하여 location으로 페이지를 이동한다.


그래서 다음과 같이 URL 뒤에 변수 = 값을 사용하는 GET방식으로 변수를 보내고 싶었다.


header("Location: ../index.php?number=$num");


이렇게 했는데 아무리 해도 주소창에


index.php?number=


으로 나오며 해당 페이지가 나오지 않았다... 왜 값을 가져오지 못하는것일까.

검색을 하다가 form에 의문을 갖게 되었고, 이때서야 의미를 알지 못하던 

$_SERVER['PHP_SELF']에 대해 검색해봤다.


그 결과,


https://stackoverflow.com/questions/18747843/pass-get-variables-when-using-serverphp-self


여기서 발견. 어이없이 action을 비워두라는 답변. 해봤는데 오 된다.


<form action="" method="POST">

정확한 문법, 왜 그러지는지는 아직 잘 모르곘다.


아마 해당 PHP파일로만 이동(위의 경우 /index.php로) 만 보내고 GET 파라미터를 무시하는것이 

아닌가하는 생각을 해본다.


※결론※

어쨋거나 form 태그 속성 중 action에 $_SERVER['PHP_SELF']을 집어넣는 경우 

GET 파라미터들이 무시되며 null? 공백? 으로 나온다는 것을 알게 되었다.

Posted by sungho88
,

<?php 


// php코드


?> 이것은 php 문법임을 나타내는 기호이다.


이 안에서, 자바스크립트 코드를 출력하고 싶다면? 또는 함수를 호출하고 싶다면 어떻게 해야 할까?


눈에 볼 수 있도록 출력해주는 명령어는 echo이다.


그리고, echo 뒤에 자바스크립트 코드를 넣주면 된다. 굉장히 더티하게 보일 수 있고, 

비효율적으로 보이기도 한다.

만약, 자바스크립트에서는 


alert("출력하고 싶은 문장");


만 작성하면 alert 경고창이 뜬다. 하지만, PHP에서의 경우에는 허용하지 않는다.


1. 만약 alert창을 PHP에서 띄우고 싶다면 어떻게 할까?


<?php echo "<script>alert('삭제되었습니다');</script>"; ?>


이렇게 echo 안에 스크립트 태그부터 열고 닫고 한 뒤, 안에 코드를 직접 입력해야 한다.


2. 만약, 자바스크립트 함수를 실행하고 싶다면 어떻게 할까?


동일하다.


<?php echo("<script language='javascript'>function_test();</script>"); ?>


이렇게 작성하면 자바스크립트 함수가 실행된다.


Posted by sungho88
,

홈페이지를 만들다보니 SQL문을 종종 짜야할 때가 있다.

이번에는 게시물 하단에 LIST를 구현하는데, 해당 게시물을 중심으로 -5개부터 +5개를 만들었다.

이 경우 어떤 범위 내에 값을 DB로부터 끌고와야 하는데, 이 역할을 하는 문법이 바로 BETWEEN이다

단어의 뜻을 알면 당연하다.


WHERE id BETWEEN 시작값 AND 끝값


이렇게 작성하면 DB에 저장된 id값들 중 시작값부터 끝값까지 조건에 맞는 값만 추출해낼 수 있다.

만약,  현재 보고있는 게시물을 중심으로 5번째 이전 게시물부터 5번째 이후 게시물까지 보고싶다면


$sql01 = 'select * from student_table where id between ' .$bno. '-5 and ' .$bno.'+5';


이렇게 작성하면 된다. 이 문장의 의미는


student_table 테이블에서 id 속성을 현재 글 번호 bno에서 -5한 값부터 +5한 값까지 불러오는 코드다.

이렇게 하면 해당 게시물을 기준으로 상단, 하단으로 5개씩 리스트가 생기게 된다.


참고로, echo에서 php 변수를 HTML 태그와 혼용하는 경우에는 다음과 같이 작성한다

 

echo "<b>{$title}</b>";


이렇게 하면 title 변수를 b태그 처리 한 뒤, echo로 출력해준다.

Posted by sungho88
,

<우분투 버전 확인하기>

lsb_release -a 또는 cat /etc/issue.net

 

1. apt-get 업데이트

$ sudo apt-get update

2. nginx 설치

$ sudo apt-get install nginx

3. mysql 설치

$ sudo apt-get install mysql-server (Design11004)

4. DB를 초기화

$ sudo mysql_install_db



sudo chown -R sysadm:www-data 

nginx 서버 재시작

$ sudo /etc/init.d/nginx restart



/usr/share/nginx/html/

Posted by sungho88
,