2018. 6. 29. 17:14



; short_open_tag = Off


이건, <?php ?> 에서 php를 생략 가능하게 해준다.

<?   코드 ?> 이렇게만 쓸수있게 된다.

short_open_tag = On 

으로 바꿔준다.

이게 제일편한 설정임!!!!




;display_errors = On

에러를 보여준다.




;upload_tmp_dir = "/var/www/tmp"

업로드 임시 폴더를 지정해 준다.



;upload_max_filesize = 2048M

업로드 파일 최대값을 바꿔준다.

난 2Gb로 바꿔줌.


;post_max_size = 1024M

post 할때 사이즈도 바꿔준다.



default_charset = "UTF-8"

캐릭터셋도 UTF로 바꿔준다.




;date.timezone = "Asia/Seoul"

php 로그 를 보면, 밑에 같은 에러가 뜨는데, 


[Fri Jun 29 13:54:07 2018] [error] [client 192.168.0.14] PHP Warning:  phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/www/phpinfo.php on line 1


이때, 타임존 세팅해주면 위같은 에러가 안뜬다.



;session.save_path = "/home/www/session"

세션파일 경로를 바꿔준다.

여러서버에서 돌릴때는 스토리지 연결하고, 

여기에 경로 잡아주면, 세션은 공유되서, 끊기는 현상이 없어진다.



;session.name = PHPSESSID

하는김에, 세션 이름도 바꿔준다.








Posted by Tyson
2018. 6. 29. 14:24

www.test.com/test.php 


같이 뒤에 .php 를 생략하고 싶을때 하는방법으로,



아파치 설정에서, 

rewrite_module 

주석 해제해 주고,


NameVirtualHost *:80

<VirtualHost *:80>

    ServerAdmin webmaster@test.com

    DocumentRoot "/home/www/test"

    ServerName www.test.com

    Options +FollowSymlinks

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME}\.php -f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ $1.php


    <Directory "/home/www/test">

        AllowOverride all

        Options Indexes MultiViews FollowSymLinks

#    Require all granted

    </Directory>

    ErrorLog logs/error_log

    CustomLog logs/access_log common


</VirtualHost>



가상호스트 세팅에, 위와 같이 추가해준다.


RewirteCond 에 php, 등을 써주면 된다.

DocumentRoot "/var/www/html"

등은, 다른 폴더로 세팅해준다.



Posted by Tyson
2018. 6. 29. 12:21



#이전 php 삭제 


PHP 설치 여부 확인

[root@localhost ~]# rpm -qa | grep php
php-common-5.1.6-5.el5
php-cli-5.1.6-5.el5




PHP 삭제

[root@localhost ~]# rpm -e php-cli-5.1.6-5.el5
[root@localhost ~]# rpm -e php-common-5.1.6-5.el5

[root@localhost ~]# rpm -qa | grep php

[root@localhost ~]#

Apache 확인 및 삭제

[root@localhost ~]# rpm -qa | grep apache
[root@localhost ~]# rpm -qa | grep httpd
httpd-2.2.3-6.el5.centos.1
[root@localhost ~]# rpm -e httpd-2.2.3-6.el5.centos.1
오류: Failed dependencies:
httpd >= 2.2.0 is needed by (installed) gnome-user-share-0.10-6.el5.i386


============================================================


참고 블로그 http://runningbaek.blogspot.com/2009/08/rpm-mysql-apache-php.html


==========================================================



#yum remi Repo 추가하기 

 그냥 yum 하면, php5.3버전을 설치해서, Repo 업데이트 해줘야함.


참고 블로그 : https://zetawiki.com/wiki/YUM_remi_%EC%A0%80%EC%9E%A5%EC%86%8C_%EC%B6%94%EA%B0%80


[root@zetawiki ~]# rpm -qa | grep remi-release
[root@zetawiki ~]# yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
... (생략)
===========================================================================================
 Package              Arch           Version                 Repository               Size
===========================================================================================
Installing:
 remi-release         noarch         6.8-1.el6.remi          /remi-release-6         6.3 k

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

Total size: 6.3 k
Installed size: 6.3 k
Is this ok [y/N]: y
[root@zetawiki ~]# rpm -qa | grep remi-release
remi-release-6.8-1.el6.remi.noarch
[root@zetawiki ~]# yum list remi-release




=================================================================



# remi Repo를 이용해서 yum 으로 php5.6 설치


참고 블로그 : https://zetawiki.com/wiki/CentOS_6%EC%97%90_PHP_5.6_%EC%84%A4%EC%B9%98_(yum_remi)




[root@zetawiki ~]# yum --enablerepo=remi-php56 install php
... (생략)
===========================================================================================
 Package              Arch         Version                          Repository        Size
===========================================================================================
Installing:
 php                  x86_64       5.6.26-1.el6.remi                remi-php56       2.7 M
Installing for dependencies:
 libedit              x86_64       2.11-4.20080712cvs.1.el6         base              74 k
 libzip-last          x86_64       1.1.3-1.el6.remi                 remi-safe         42 k
 php-cli              x86_64       5.6.26-1.el6.remi                remi-php56       4.0 M
 php-common           x86_64       5.6.26-1.el6.remi                remi-php56       1.1 M
 php-pecl-jsonc       x86_64       1.3.10-1.el6.remi.5.6            remi-php56        51 k
 php-pecl-zip         x86_64       1.13.4-1.el6.remi.5.6            remi-php56        53 k

Transaction Summary
===========================================================================================
Install       7 Package(s)

Total download size: 8.0 M
Installed size: 29 M
Is this ok [y/N]: y



나 같은 경우는 php-devel도 필요하기 때문에 php-devel도 추가한다.




예>

[root@localhost oci8-1.4.9]# yum --enablerepo=remi-php56 install php php-devel



확인 

[root@zetawiki ~]# rpm -qa | grep php



[root@zetawiki ~]# php -v
PHP 5.6.26 (cli) (built: Sep 15 2016 14:57:05) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies





그 사실, php-devel 이 필요한 이유는 php oci8 설치할때, 

phpize 를 사용해야하는데, phpize는 php-devel이 필요하기 때문이다.




==========================================================


#oci8 설치


참고 블로그 : http://zetawiki.com/wiki/PHP%EC%97%90%EC%84%9C_%EC%98%A4%EB%9D%BC%ED%81%B4_DB_%EC%82%AC%EC%9A%A9


pecl download oci8-1.4.9.tgz
tar xvzf oci8-1.4.9.tgz
cd oci8-1.4.9
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
make all install



위에서 OCI8 다운로드 부분인 pecl download oci8-1.4.9.tgz은, 이것 대신 wget http://pecl.php.net/get/oci8-1.4.9.tgz를 실행하거나, http://pecl.php.net/package/oci8 에서 직접 다운로드해도 된다.




[root@zetawiki ~]# pecl download oci8-1.4.9.tgz
downloading oci8-1.4.9.tgz ...
Starting to download oci8-1.4.9.tgz (169,255 bytes)
.....................................done: 169,255 bytes
File /root/oci8-1.4.9.tgz downloaded
[root@zetawiki ~]# tar xvzf oci8-1.4.9.tgz 
... (생략)
oci8-1.4.9/php_oci8.h
oci8-1.4.9/php_oci8_int.h
oci8-1.4.9/README
[root@zetawiki ~]# cd oci8-1.4.9
[root@zetawiki oci8-1.4.9]# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@zetawiki oci8-1.4.9]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
... (생략)
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
[root@zetawiki oci8-1.4.9]# ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
[root@zetawiki oci8-1.4.9]# make all install
... (생략)
Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/lib64/php/modules/
→ /usr/lib64/php/modules/ 에 PHP 확장기능 oci8.so 가 설치되었다.





#####위에는 오라클 인스턴스 클라이언트를 쓸때라, 경로 지정을 해줘서 라이브러리 가져와서 쓰는법이고,

오라클이 설치되어있는 상태에서는 ,


./configure --with-oci8=shared,$ORACLE_HOME


위에처럼 치고, 

Ln 링크는 생략하고,


make all install 해주면, 된다.



----------------------------------------------------------------------

Libraries have been installed in:

   /appls/oci8File/oci8-1.4.9/modules


If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable

     during execution

   - add LIBDIR to the `LD_RUN_PATH' environment variable

     during linking

   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag

   - have your system administrator add LIBDIR to `/etc/ld.so.conf'


See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------


Build complete.

Don't forget to run 'make test'.


Installing shared extensions:     /usr/lib/php/modules/

[root@localhost oci8-1.4.9]# 



위에처럼  /usr/lib/php/modules/ 폴더에, 설치 됬다고 뜰거다.


설치확인

[root@zetawiki oci8-1.4.9]# ll /usr/lib64/php/modules/oci8.so 
-rwxr-xr-x 1 root root 502555 Jun 19 14:44 /usr/lib64/php/modules/oci8.so






========================================================================


# php 연동하기

[root@zetawiki oci8-1.4.9]# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
[root@zetawiki oci8-1.4.9]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]



연동확인

php -r "oci_connect();"
[root@zetawiki ~]# php -r "oci_connect();"
Warning: oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1




=============================================================================



여기서 부터 중요하다!!


오라클이랑, apache를 연결해줘야한다.

처음에 이것때문에, oci8은 떴는데, 디비 연결이 안되서......헤맸었다.

근데, phpinfo.php를 만들어서 목록을 보면 환경변수에, Oracle이 안떴다.



vi /etc/sysconfig/httpd

또는 

~/.bash_profile (#source .bash_profile)

로 들어가서,



export LD_LIBRARY_PATH="/OraRoom/oracle/11g/lib"

export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

export ORACLE_HOME="/OraRoom/oracle/11g"

export TNS_ADMIN="/OraRoom/oracle/11g/network/admin"



오라클 정보를 추가해준다.



그리고 항상 서버는 재시작!!!

service httpd restart




이야~ 인제 다 되었다.!!!

테스트 하러가자!!!!!


아~!! tnsnames.ora 파일을 불러올때 확인해야될께, 권한이다.

폴더랑, 파일 권한을 바꿔줘야한다!!!


chmod 755 tnsnames.ora


이거때문에, tns목록을 php에서 못 불러와서.....몇시간을 헤맸다!!!



테스트 법은 추후에 다시 올리겠다.


Posted by Tyson
2018. 1. 23. 16:56

php쓸때,


<?php   ?> 하고 안에 코드를 넣는데,


이게 은근히 귀찮다. 


<?   ?> 이렇게만 써도 Php인식하게 쓰기 위해서는


php.ini 파일에서 수정을 해줘야한다.



위치는 


php --ini | grep php.ini



이렇게 찾던제, 아니면, info.php에 보면 



Loaded Configuration File/etc/php.ini



저렇게 위치가 나와있다.





vi /etc/php.ini


으로 들어가서, 


short_open_tag = Off 



On으로 바꿔주면 된다.



Posted by Tyson
2015. 10. 2. 10:40
1
2
3
4
5
6
7
8
9
10
11
12
13
    
<?
//숫자만 남기기.
    $pattern = '/([0-9])+/'; //패턴입력
    $max = 'U0000040'
    preg_match_all($pattern$max$match); //패턴에서 검색해서 숫자만 남기기
    $str = implode(''$match[0]); //문자 숫자로 바꾸기
    $str++;
    //앞에 000000넣기(9자리)
    $str = sprintf("%09d",$str); //자릿수 맞추가
    $str=(string)$str; //스트링으로 바꾸기
    $coupon_cd"U".$str; //앞에 U 붙여주기
?>
cs


Posted by Tyson