혹시나 해서 저같이 고생하실분이 계실까봐...
저는 작심40시간으로 듣고 (나중에 개별로도 들을려고)있습니다.
31강 PhP인식 문제는 apache2설치와/PHP7.0 설치
그리고 PHP 설정을 아래와 같이
하시면 저는 해결되더라구요.
It helped me to delete all PHP and reinstall php7.
All that was needed was:
sudo apt-get purge php*
php7 will be deleted, afterwards just to reinstall:
sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0
--------
31강 PHP 강좌 후반부 마지막 예제가 잘안되시는분들 있으시죠? 즉 <a href="./php_final.php?id=<?=$i?>">이부분이 안되는, 다시 말해 <?php echo "";?>를 줄인 <?=""?>가 브라우저에서 안되시는 분들은 PHP 설정에서 short open tag가 off로 되어있어서 그렇습니다..
되게 하는 방법은
자기 아마존에 SSH접속 후(저는 아마존linux. ubuntu가 아니고요) 명령어입력창에 sudo nano /etc/php.ini (혹은 ubuntu linux는 /etc/php5/apache2/php5.ini) 를 치시고 short_open_tag=off라고 되있는 부분을 찾으신 후 off를 on으로 바꾸시고 Ctrl-O, Ctrl-X하신 다음에 sudo service httpd restart (혹은 ubuntu linux는 sudo service apache2 restart 웹서버재시작)하시고 브라우저에서 다시 해보면 됩니다.
(저는 동영상 강좌보기전 다른 아마존 리눅스를 깔아서 아마 버전별 세팅이 달라서 안됐던 것 같습니다. 구글링하다가 해결법을 발견했네요)
아파치 최근버전은 동영상강좌와 다르게 root경로가 /var/www/html인데 이것은 바꿀수 있나요??
/var/www/html 루트 밖에서 작업을하게 되면
브라우져에서 경로가 다르게 인식되기 때문에 안되는거 같네요
/var/www/에 a폴더를 만들고 그안에 a.php를 만들어서 권한을 바꾸고 aptana에서 동기화도 잘되지만...
브라우저에
....compute.amazonaws.com/a/a.php를 하면 아마 브라우저는
....compute.amazonaws.com/var/www/html/a/a.php경로로 파일을 찾기 때문에 not found가 뜨는거 같아요..
xshell에서 권한을 주고 aptana에서 동기화해도 not found가 뜨는 것은 당연하기 때문에
아파치에서 기본디렉토리설정을 바꾸는법이 있다면 그게 방법이 되겠네요.. 저도 알고싶.. ㅠ
사실은 앞강의에서 궁금해 하던 부분인뎀 여기와서 보니 해결방법이 언급되고 있네여 ! 그래서 혹시나 하고 저처럼 고생하시는 분을 위해 몇가지 올립니다.
aptana 에서 php project 생성하고 publish 에서 Run Web Deployment Wizard -> Deploy My Project ->
Remote Path에서 /var/www/html 로 입력 시켜 주는 것이 중요하네여...! 그래야 싱크가 됩니다.
Xshell 에서 cd /var/www/html -> sudo chown ubuntu . -R 로 root 를 ubuntu로 바꿔주면 aptana에서
save기능이 먹히네여!! 저도 이것이 잘 안돼서 고행했네여^^ 덕분에 복습함......!!! sudo chown -R ubuntu .로하면 안됨 !!!
Document Roots
By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.
The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.
index.html 하단에 보면 이렇게 나오는데요, 버전이 달라지면서 root폴더가 바뀐것 같습니다. 즉, 강좌에서는 root 폴더를 /var/www에서 했지만, 바뀐 버전부터는 /var/www/html 에서 해야하네요. (루트 폴더 바꿀 수 있으면 좋을텐데... 잘 모르겠;;)
1. 강의와는 달리 /var/www/ 폴더에 그냥 파일을 만들어서 브라우저에서 실행하려면
not found 에러가 뜹니다.
-> 이를 해결 하려면 /var/www/html/ 이란 파일에 들어가서 파일을 만들어서 실행해야지만
에러가 생기지 않고 브라우저에서 보입니다.
-> 아마 ubuntu의 버전이 다르거나 웹서비스의 버전이 달라서 생기는 문제가 아닐까 싶습니다.
혹시 이에 대해 아시는 것이 있으면 댓글 부탁드립니다.
2. aptana에서 /var/www/에 폴더를 만들어서 업로드를 하려면 parent path does not exist라면서
파일이 sync되지 않습니다.
-> 이를 해결하려면 Xshell에 들어가서 mkdir로 파일을 만들고 그 파일을 전 강의에서 배웠던 것처럼
ubuntu로 권한 설정을 해주면 aptana에서도 업로드가 가능해집니다.
-> 근데 여기서 생성된 파일은 브라우저에서 not found에러가 납니다. 그래서 /var/www/html 폴더 안에
옮겼더니 브라우저에서 실행이 됩니다.
혹시 왜 html 폴더 안에서만 실행이 되는지 아시는 분 계시나요? 어떻게 해야 html 밖에서도 html 파일이
브라우저에서 구현이 될까요?