저는 myhosting.com의 VPS 서비스를 이용하고 있습니다.


OS는 CentOS를 사용하고 있는데, WordPress를 쓰려다보니 PHP Version이 너무 낮아 쓸 수 없는 문제가 있었습니다.

이를 해결하는 방법을 여기저기 찾다가 최종적으로 다음과 같이 하면 되는 것을 알아 냈습니다.


다음의 스크립트를 실행하여 Atomic GPG키를 다운로드하고 

# wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh


yes냐 no냐고 물어보면 yes라고 답하고 다음의 커맨드를 실행합니다.


# yum --enablerepo=atomic update mysql* --skip-broken


그리고 PHP 버젼을 확인하시면 버젼이 upgrade 된 것을 확인하실 수 있습니다.

# php -v

이번에 Windows Machine에서 잘 돌던 PHP 프로그램을 CentOS로 옮겼습니다.

다른 건 다 정상 동작하는데, 어떤 프로그램이 동작 안하는 것이 있어서 이것 저것 시도해보았습니다.

원인은 php.ini에서 설정을 변경함으로써 가능하다는 것을 확인하였습니다.

우선 get이나 post를 통해 파라메터를 전달했는데, 이것을 php로 구현한 Software에서 인지하지 못하는 경우 php.ini에서 아래의 설정을 변경해주세요.

위치는 '/etc/php.ini’입니다.

register_globals = On

register_long_arrays = On

register_argc_argv = On

원래 위의 설정은 Production Mode에서는 별로 추천하지 않는 설정이라고 합니다. 속도를 개선하고자 한다면 위의 Mode를 Off해도 동작할 수 있도록 서버 소프트웨어를 구현하는 것이 좋습니다.

CentOS에서 phpMyAdmin을 쓰시는 분 중 mcrypt 확장 모듈 호출이 안되시는 분들이 계실겁니다.

아마 에러메세지는 다음과 같이 나올 것입니다.

이런 경우 다음과 같이 간편하게 mcrypt를 사용하게 만들 수 있습니다.

 

PHP에서 사용하는 것을 전제로 설명드리면, 아래의 명령어를 커맨드 라인에서 실행해주시면 됩니다.

# yum install php-mcrypt

 

위의 명령어를 실행하니 제 CentOS에서는 다음과 같은 메시지가 나오네요. 중간에 y버튼과 엔터키를 눌러주는 수고를 해주셔야 합니다.

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.steadfast.net
* extras: mirrors.lga7.us.voxel.net
* updates: mirrors.lga7.us.voxel.net
base                                                     | 1.1 kB     00:00
extras                                                   | 2.1 kB     00:00
updates                                                  | 1.9 kB     00:00
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package          Arch         Version                       Repository    Size
================================================================================
Installing:
php-mcrypt       x86_64       5.1.6-15.el5.centos.1         extras        16 k

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 16 k
Is this ok [y/N]: y
Downloading Packages:
php-mcrypt-5.1.6-15.el5.centos.1.x86_64.rpm              |  16 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : php-mcrypt                                               1/1

Installed:
  php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1

Complete!


혹시 라이브러리만 설치하고 싶은 분은 다음의 모듈만 설치하셔도 됩니다.

# yum install libmcrypt 


 

설치 후 다음의 명령어를 실행해주셔야 반영됩니다. 물론 root 권한이 있으셔야 된다는 점 잊지 마시고요.

# /etc/init.d/httpd restart

호스팅서비스를 이용하여 호스팅을 하는데 파일업로드 용량제한을 받고 있는 경우 관리자에게 요청하여 해결해야 하는 번거로움이 있다.

이 경우 다른 호스팅 세팅까지도 영향을 받을 수 있는데, 이 경우 다음의 경우에 해당이 되면 용량제한을 스스로 풀 수 있다.

* 환경

  1. 호스팅 받고 있다. – 예) 카페24
  2. 상위디렉트리에 .htaccess 파일이 존재한다.
  3. php.ini 파일을 수정할 권한이 없다.
  4. 현재 업로드 할 수 있는 용량 10M이다. 업로드 용량을 50M정도로 확장하고 싶다.


* 해결방안

  1. vi 에디터로 .htaccess 파일을 연다.
  2. 기본적으로 "PHP_FLAG register_globals ON" 이렇게 설정이 되어 있다.
     이제 그 아래에 2줄을 추가해보자.
     PHP_VALUE upload_max_filesize 50M
     PHP_VALUE post_max_size  50M
  3. 저장하면, 설정한 값으로 변한다.
     이제 10M 넘는 것을 첨부해서 업로드 해보세요.

우리나라 웹 호스팅 업체들은 트래픽과 스토리지 사이즈를 제한해서 서비스를 한다. 또 거기에 맞춰서 요금을 만든다.

영국에 있는 BlueHost.com은 무한대의 용량, 무한대 트래픽 서비스를 제공한다.

환율을 1달러당 1,500원이라고 가정했을때 1년 호스팅비용은

$6.95 x 1,500 x 12개월 = 125,100원

심지어 Perl, PHP, MySQL 이런거 무조건 공짜로 제공한다.

우워- 이쯤되면 우리나라 도메인 서비스업체보다는 위의 업체가 더 낫다고 할 수 있지 않을까?

좀안간 구글도 이런 시스템을 무료로 제공할것으로 예상된다.
현재는 GAE(Google App Engine)이라는 이름으로 Python과 Java 기반 개발공간을 500M의 용량으로 제공하며 구글이 만들었다는 빅테이블(DB)은 무한대로 제공하고 있는데, 좀안간 Ruby, PHP등도 제공할것으로 예상된다.

서버 프로그래머들이 놀 공간(Play Ground)을 무료로 제공하고 WIN-WIN해보자는 전략을 펼칠것으로 예상된다.

공식적으로 구글에서 PHP를 지원한다고 하지는 않았으나 구글 App Engine에서 PHP를 사용하는 방법이 전혀 없는 것은 아니다.

이를 사용하기 위해서는 Quercus라고 하는 Java Servlet을 이용하면 된다.
완벽하다고 하긴 좀 그렇지만 PHP의 대부분의 기능을 사용 할 수 있다고 한다.

Quercus는 다음의 URL에서 다운로드 할 수 있다.

http://www.caucho.com/download

 

 

대략 사용방법을 설명하면 Resin을 다음과 같이 수정해주고

<web-app xmlns="http://kurapa.com/ns/resin"> <servlet-mapping url-pattern="*.php" servlet-class="com.caucho.quercus.servlet.QuercusServlet"> </servlet-mapping> </web-app>

hello-world.php를 다음과 같이 만든다.

<?php echo "Hello World"; ?>

그리고 실행을 하면 씩씩하게 동작을 한다.

http://localhost:8080/hello-world.php

 

괜찮지 않은가? ㅋㅋ Good Luck !!

+ Recent posts