php mysql 연동
1 설치 전 확인
명령어
rpm -qa | egrep "^(httpd|php|mysql)"
실행 예시
[root@zetawiki ~]# rpm -qa | egrep "^(httpd|php|mysql)"
mysql-libs-5.1.61-4.el6.x86_64
2 설치
yum install httpd mysql mysql-server php php-mysql
3 설치 후 확인
[root@ztawiki ~]# rpm -qa | egrep "^(httpd|php|mysql)" | sort -n
httpd-2.2.15-26.el6.centos.x86_64
httpd-tools-2.2.15-26.el6.centos.x86_64
mysql-5.1.66-2.el6_3.x86_64
mysql-libs-5.1.66-2.el6_3.x86_64
mysql-server-5.1.66-2.el6_3.x86_64
php-5.3.3-22.el6.x86_64
php-cli-5.3.3-22.el6.x86_64
php-common-5.3.3-22.el6.x86_64
php-mysql-5.3.3-22.el6.x86_64
php-pdo-5.3.3-22.el6.x86_64
4 서비스 등록 확인
명령어
service httpd status service mysqld status php -v
[root@zetawiki ~]# service httpd status
httpd is stopped
[root@zetawiki ~]# service mysqld status
mysqld is stopped
[root@zetawiki ~]# php -v
PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
→ 아파치와 MySQL이 서비스에 등록되어 있다. PHP를 쉘에서 사용할 수 있다.
5 httpd 시작 및 설정
[root@zetawiki ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 111.222.33.44 for ServerName [ OK ]
6 mysqld 시작 테스트
[root@zetawiki ~]# service mysqld start
7 MySQL 패스워드 지정, 테스트
/usr/bin/mysqladmin -u root password '1234' mysql -u root -p
→ 1234 대신 원하는 패스워드를 기입한다.실행예시
[root@zetawiki ~]# /usr/bin/mysqladmin -u root password '1234'
[root@zetawiki ~]# mysql -u root -p Enter password:
8 iptables 80포트 열기
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
9 PHP 동작 확인
php -r 'echo "Hello World\n";'
[root@zetawiki ~]# php -r 'echo "Hello World\n";'
Hello World
10 브라우저 확인 (1)
echo "<?php echo 'Hello';?>" >
/var/www/html/hello.php
cat /var/www/html/hello.php
[root@jmntote ~]# echo "<?php echo 'Hello';?>" > /var/www/html/hello.php
[root@jmntote ~]# cat /var/www/html/hello.php
<?php echo 'Hello';?>
- PC 웹브라우저에서 http://서버IP/hello.php 에 접속하여 Hello가 보이면 성공.
11 PHP-MySQL연동 확인
echo '<?php $db = new mysqli("localhost", "root", "1234", "test");
if ($db->connect_errno) die("Connect failed: ".$db->connect_error); $result = $db->query("SHOW DATABASES;");
echo "<xmp>"; while ($row = $result->fetch_object()) print_r($row); echo "</xmp>"; $result->close(); $db->close(); ?>'
>
/var/www/html/hello_db.php
cat /var/www/html/hello_db.php
→ 1234 대신 앞서 지정한 MySQL 패스워드를 기입한다.실행예시
[root@zetawiki ~]# echo '<?php > $db = new mysqli("localhost", "root", "P@ssw0rd", "test"); > if ($db->connect_errno) die("Connect failed: ".$db->connect_error); > $result = $db->query("SHOW DATABASES;"); > echo "<xmp>"; > while ($row = $result->fetch_object()) print_r($row); > echo "</xmp>"; > $result->close(); > $db->close(); > ?>' > /var/www/html/hello_db.php
[root@zetawiki ~]# cat /var/www/html/hello_db.php <?php $db = new mysqli("localhost", "root", "P@ssw0rd", "test"); if ($db->connect_errno) die("Connect failed: ".$db->connect_error); $result = $db->query("SHOW DATABASES;"); echo "<xmp>"; while ($row = $result->fetch_object()) print_r($row); echo "</xmp>"; $result->close(); $db->close(); ?>
브라우저 결과
브라우저에서 http://서버IP/hello_db.php 에 접속해보자.
stdClass Object ( [Database] => information_schema )
stdClass Object ( [Database] => mysql )
stdClass Object ( [Database] => test )
mysql 설치시 기본으로 생성되는 DB 3개가 보인다.