PHP - Sizuha/devdog GitHub Wiki

PHP.ini ์„ค์ •

ํŒŒ์ผ ์—…๋กœ๋“œ

File Uploads ์ฃผ์„ ์„น์…˜์„ ์ฐพ์•„์„œ ๋‹ค์Œ ํ•ญ๋ชฉ๋“ค์„ ์„ค์ •ํ•œ๋‹ค.

ํŒŒ์ผ ์—…๋กœ๋“œ ํ™œ์„ฑํ™”

file_uploads = On

์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ์šฉ๋Ÿ‰

upload_max_filesize = 2M

์ปค๋งจ๋“œ ๋ผ์ธ ์‹คํ–‰

์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ์‹คํ–‰

 $ php [-f] xxx.php [[--] ์ธ์ˆ˜๋“ค...]

-f ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, -- ๋‹ค์Œ์— ์ธ์ˆ˜๋“ค์ด ์™€์•ผ ํ•œ๋‹ค.

Console

$ php -a

์‰˜ ์Šคํฌ๋ฆฝํŠธ

์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋งจ ์œ—์ค„์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ๋Š”๋‹ค.

#!/usr/bin/php

๊ทธ๋ฆฌ๊ณ  ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์‹คํ–‰ ์†์„ฑ์„ ๋ถ€์—ฌํ•˜๋ฉด, UNIX ์‰ก ์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ์‹คํ–‰์ด ๊ฐ€๋Šฅ.

์ธ์ˆ˜ ์ฒ˜๋ฆฌ

์ „์—ญ๋ณ€์ˆ˜ $argc, $argv๋ฅผ ์‚ฌ์šฉ.

  • $argc : ์ธ์ˆ˜ ๊ฐฏ์ˆ˜
  • $argv : ์ธ์ˆ˜๋“ค์„ ๋‹ด์€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด.
    • $argv[0] ~ $argv[n]

ํŒŒ์ผ ์ฒ˜๋ฆฌ

ํ™•์žฅ์ž ์ถ”์ถœ

// ๋ฐฉ๋ฒ•1
// return: ์„ฑ๊ณต์ด๋ฉด ํ™•์žฅ์ž ๋ฌธ์ž์—ด, ์‹คํŒจ(ํ™•์žฅ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ)๋ฉด false๋ฅผ ๋ฐ˜ํ™˜.
function file_ext($file) 
{
  return substr(strrchr($file,"."),1);
}


// ๋ฐฉ๋ฒ•2: pathinfo() ์‚ฌ์šฉ
$filename = "/upload/flower.image.jpg";
$path = pathinfo($filename);
$ext = $path['extension'];  

๋ฌธ์ œ ๋ฐ ํ•ด๊ฒฐ

MySQL No such file or directory ์—๋Ÿฌ

mysqli_connect() ๋“ฑ์œผ๋กœ MySQL DB์— ์ ‘์†ํ•˜๋ ค ํ•  ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ.

MySQL์˜ socket ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๊ฐ€ php์™€ mysql ์„ค์ •์ด ์„œ๋กœ ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ PHP์™€ MySQL ์„ค์ •์„ ๋น„๊ตํ•ด ๋ณธ๋‹ค.

$ php --ri mysqli
mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
$ mysqladmin version
mysqladmin  Ver 8.42 Distrib 5.5.29, for osx10.6 on i386
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version    5.5.29-log
Protocol version  10
Connection    Localhost via UNIX socket
UNIX socket   /tmp/mysql.sock
Uptime:     7 min 13 sec

ํ‹€๋ฆฐ ๊ฒฝ์šฐ๋Š”, php.ini์—์„œ xxx.default_socket ๋ถ€๋ถ„์„ ๋‹ค ์ฐพ์•„์„œ ๊ฒฝ๋กœ๋ฅผ ๊ณ ์ณ์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  MySQL์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.

$ sudo /usr/local/mysql/support-files/mysql.server stop
$ sudo /usr/local/mysql/support-files/mysql.server start