리눅스 간단한 서버 구축하기 - PHP

범수·2024년 7월 4일

LinuxServer

목록 보기
2/7
post-thumbnail

>> Apache2와 PHP 설치 <<

콘솔 창 입력

php -v	//버전 확인 후 7.4이상 버전일 경우
---------------------7.4버전 이상일 경우 실행---------------------- 
sudo apt remove php* --purge	
sudo apt autoremove	// 기존 php 제거

sudo apt update	
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update	// PPA 저장소 추가

sudo apt install php7.4-cli php7.4-fpm php7.4-mysql php7.4-xml php7.4-mbstring php7.4-curl
// php7.4 버전으로 설치
-----------------------이상 없다면 생략 가능------------------------

sudo apt install libapache2-mod-php7.4	// Apache2 모듈 설치

sudo a2dismod php8.x  # 기존 PHP 8.x 모듈 비활성화 (설치된 경우)
sudo a2enmod php7.4
sudo systemctl restart apache2

> Apache2와 PHP 연결에 이상이 있다면 버전 문제일 수 있으므로 7.4로 재설치(권장)
> php설치 후 libapache2-mod-php* 자신 PHP 버전에 맞는 Apache2설치 요망

PHP와 Nginx 연동

콘솔 창 입력

sudo nano /etc/nginx/sites-available/default

> Nginx 설정 파일 열고 PHP-FPM 소켓을 사용하도록 설정

	**	/etc/nginx/sites-available/default 파일 내용	**

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # PHP 7.4 FPM 소켓 경로
}

> /etc/nginx/sites-available/default에 위 코드 추가(PHP, Nginx연결)
    -> 자신의 PHP 버전에 맞는 소켓으로 추가!

sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx

> 설정 후 Nginx와 PHP-FPM 재시작

연결 확인

sudo nano /var/www/html/info.php 파일 생성

<?php phpinfo(); ?>

> /var/www/html/info.php 파일에 입력 후 접속

연결 확인

>> PHP 파일 생성 <<

index.php 파일 생성

<!DOCTYPE html>
<html>
<head>
    <title>PHP Example</title>
</head>
<body>
    <h1><?php echo "Hello, this is a PHP file."; ?></h1>
</body>
</html>

> /var/www/html/index.php파일 생성 후 코드 입력

index.php 파일 index.php 동작화면

> 만약 정상작동이 하지 않는다면 꼭 버전을 확인해보기

더 해보기

list.php 파일 제작해보기

<!DOCTYPE html>
<html>
<head>
    <title>User Information Table</title>
</head>
<body>
	<h2>User Information</h2>
<?php
// 사용자 정보를 담은 배열
$users = [
    ["name" => "Beom Su", "phone" => "010-1111-1111", "address" => "Seoul"],
    ["name" => "Gil Dong", "phone" => "010-2222-2222", "address" => "Busan"],
    ["name" => "Su Jin", "phone" => "010-3333-3333", "address" => "Gangwon"]
];
?>
<table>
    <tr>
        <th>Name</th>
        <th>Phone</th>
        <th>Address</th>
    </tr>
    <?php foreach ($users as $user) { ?>
    <tr>
        <td><?php echo htmlspecialchars($user["name"]); ?></td>
        <td><?php echo htmlspecialchars($user["phone"]); ?></td>
        <td><?php echo htmlspecialchars($user["address"]); ?></td>
    </tr>
    <?php }; ?>
</table>
</body>
</html>

list.php 화면

> list.php의 테이블이 정상적으로 출력되는 것을 확인할 수 있다.

마무리

  • 정상적으로 작동을 안한다면 PHP, Apache2버전, /etc/nginx/sites-available/default파일 안에 PHP-FPM버전이 자기 PHP버전과 일치한 지 확인해보기
  • Apache2, Nginx의 포트가 중첩된 오류가 있을 수 있으니 포트도 확인해보기
  • 다음엔 MySQL을 이용해 테이블 제작해보기
profile
범수의 개발 놀이터😋

0개의 댓글