백엔드 개발 PHP 튜토리얼 매우 상세합니다! 소스코드를 활용한 LNMP 환경 구축

매우 상세합니다! 소스코드를 활용한 LNMP 환경 구축

Mar 29, 2023 pm 04:56 PM
php lnmp

이 글은 주로 LNMP 환경을 구축하기 위해 소스 코드를 사용하는 방법을 소개합니다. 관심 있는 친구들은 아래를 살펴보시기 바랍니다.

매우 상세합니다! 소스코드를 활용한 LNMP 환경 구축

소스 코드를 사용하여 LNMP 환경을 구축

1. RedHat8

Centos8 등을 설치하세요. 가상 머신은 VMware이고 온라인에 설치 튜토리얼이 있으므로 여기서는 자세히 설명하지 않겠습니다.

2. 로컬 소프트웨어 저장소를 구성합니다

// 把系统镜像挂载到/media/cdrom目录。
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
// mount: /media/cdrom: WARNING: device write-protected, mounted read-only.


// 创建软件仓库的配置文件
 ~]# vi /etc/yum.repos.d/rhel8.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0
로그인 후 복사

vim, wget

dnf install vim wget -y
로그인 후 복사

3을 테스트하고 설치합니다. 4. 필수 소프트웨어 소스 코드 패키지를 다운로드합니다

. /lnmp 디렉토리에 함께 넣으십시오.

dnf -y install apr* autoconf automake numactl bison bzip2-devel cpp curl-devel fontconfig-devel freetype-devel gcc gcc-c++ gd-devel gettext-devel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel  libpng-devel  libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff* make openssl-devel patch pcre-devel perl php-common php-gd telnet zlib-devel libtirpc-devel gtk* ntpstat na* bison* lrzsz cmake ncurses-devel libzip-devel libxslt-devel gdbm-devel readline-devel gmp-devel
로그인 후 복사

5. rpcsvc-proto 설치

rpcsvc-proto는 rcpsvc 프로토콜 파일 지원이 포함된 소프트웨어 패키지의 이름입니다. rcpsvc 프로토콜은 Nginx 및 MySQL 서비스 프로그램의 후속 배포 중에 호출되어야 합니다.

mkdir /lnmp
cd /lnmp

wget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gz

wget https://www.linuxprobe.com/Software/nginx-1.16.0.tar.gz

wget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.xz

wget https://www.linuxprobe.com/Software/php-7.3.5.tar.gz

wget https://www.linuxprobe.com/Software/wordpress.tar.gz
로그인 후 복사

6. Nginx 설치

Nginx 운영을 위한 계정 만들기프로그램은 보안상의 이유로 루트가 될 수 없습니다.

그리고 홈 디렉터리나 로그인이 필요하지 않으며 단지 Nginx를 실행하는 데 사용됩니다.

tar xzvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4/
./configure
make
make install
cd ..
로그인 후 복사

Nginx 설치

useradd nginx -M -s /sbin/nologin // -M 不创建家目录,-s 指定 shell
id nginx // 查询是否创建成功了
uid=1000(nginx) gid=1000(nginx) 组=1000(nginx)
로그인 후 복사

Nginx 구성

prefix 매개변수를 사용하여 설치 경로를 지정하면 Nginx 구성 파일이 /usr/local/nginx에 있습니다.

프로그램을 실행하는 사용자의 소유자와 그룹의 소유자를 제공합니다.

lnmp]# tar zxvf nginx-1.16.0.tar.gz
lnmp]# cd nginx-1.16.0/
nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module  // --prefix指定安装目录, --with-开启http_ssl_module模块
nginx-1.16.0]# make
nginx-1.16.0]# make install
nginx-1.16.0]# cd ..
로그인 후 복사

45번째 줄에 index.php를 인덱스 구성(기본 홈페이지로 사용할 수 있는 파일)에 추가합니다.

vim /usr/local/nginx/conf/nginx.conf
// 打开文件后,我们在英文模式下,按下 shift + 冒号,输入2,回车,定位到第2行。
// 连按两次 ESC,取消当前使用模式
// 再次 shift + 冒号,输入 set nu,回车,我们可以显示行号

1 
2 user  nginx nginx; // 第二行,修改为这样
로그인 후 복사

가상 호스트 기능을 활성화하려면 65~71행 앞의 주석 문자 #을 삭제하고, 69행 이후 해당 웹 사이트 루트 디렉터리를 /usr/local/nginx/html로 변경합니다. 여기서 fastcgi_script_name 매개 변수는 다음과 같습니다. 표시 스크립트 이름은 사용자가 요청한 URL입니다. 정보가 올바르게 입력된 경우에만 Nginx가 사용자 요청을 올바르게 구문 분석할 수 있습니다. 그렇지 않으면 방문한 페이지에 "404 찾을 수 없음" 오류가 표시됩니다.

 43         location / {
 44             root   html;
 45             index  index.php index.html index.htm;
 46         }
로그인 후 복사

소스 코드에서 컴파일되고 설치된 소프트웨어는 기본적으로 systemctl로 관리할 수 없습니다. 자체 /usr/local/nginx/sbin/nginx를 사용하여 직접 관리할 수 있습니다. 경로 추가 없이 nginx를 직접 입력할 수 있도록 PATH 환경 변수에 /usr/local/nginx/sbin 경로를 추가하는 것이 좋습니다.

그런 다음 source 명령을 사용하여 이 수정 사항을 즉시 적용하세요.

63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 64         #
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
 70             include        fastcgi_params;
 71         }
로그인 후 복사

브라우저를 열어 192.168.89.128(내 가상 머신 주소)에 접속했는데 접속에 실패했습니다.

방화벽을 닫으세요

lnmp]# vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin // 这里加上 Nginx 的 sbin 路径

export PATH

lnmp]# source ~/.bash_profile // 让修改立即生效
lnmp]# nginx // 启动 nginx 服务
로그인 후 복사

다시 방문하여 작동하는지 확인하세요.

7. MySQL 설치

MySQL 데이터베이스 실행을 담당하는 mysql 사용자를 만듭니다. 이 사용자는 로그인할 필요도 없습니다.

systemctl status firewalld.service // 查看是否在运行
systemctl stop firewalld.service // 临时停止
systemctl disable firewalld.service // 永久关闭
로그인 후 복사
Installation

lnmp]# useradd mysql -M -s /sbin/nologin
로그인 후 복사

/usr/local/mysql은 MySQL 프로그램 파일이 저장되는 경로이고, /usr/local/mysql/data는 데이터가 저장되는 장소이며, 각 데이터베이스는 그 아래의 디렉터리입니다. 또한 수동으로 생성해야 합니다.

// 解压MySQL安装软件包
lnmp]# tar xvf mysql-8.0.18.tar.xz

// 将解压出的程序目录改名并移动到/usr/local目录下
lnmp]# mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql
lnmp]# mv mysql /usr/local
로그인 후 복사

MySQL을 초기화하고 디렉터리를 인증한 후 mysql 사용자가 데이터에 액세스할 수 있는지 확인하세요. 초기화하기 전에 mysqld 명령을 사용하여 MySQL 서비스 관리를 위한 사용자 이름, 데이터 저장 디렉터리 및 인코딩 정보를 확인하세요. .정보가 정확하면 초기화를 시작하세요. 초기화 후 시스템은 사용자에게 초기 임시 비밀번호를 할당합니다. 저장하는 것을 잊지 마세요.

아래 예시에서 할당된 비밀번호는 qfroRs,Ei4Ls입니다.

lnmp]# cd /usr/local/mysql
mysql]# mkdir data
로그인 후 복사

nginx와 유사하게 MySQL의 일부 바이너리 실행 명령은 자체 프로그램 디렉터리의 /usr/local/mysql/bin에 저장되어 있어 쉽게 액세스할 수 있도록 PATH 환경 변수에 추가할 수도 있습니다.

[root@linuxprobe mysql]# chown -R mysql:mysql /usr/local/mysql
[root@linuxprobe mysql]# cd bin
[root@linuxprobe bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2021-05-06T07:07:06.243270Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 7606
2021-05-06T07:07:08.116268Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qfroRs,Ei4Ls
로그인 후 복사

서버가 다시 시작될 때마다 데이터베이스가 자동으로 시작될 수 있도록 시작 스크립트 mysql.server를 /etc/init.d에 넣으세요. 실행 권한을 부여합니다.

libtinfo.so.5 파일은 MySQL 8.0 이후에 새로 추가된 중요한 함수 라이브러리 파일인데, 기본적으로는 존재하지 않습니다. libtinfo.so.6.1 파일을 복사하거나 링크 파일로 사용해야 정상적으로 시작됩니다. :

[root@linuxprobe bin]# vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin

export PATH
[root@linuxprobe bin]# source ~/.bash_profile
로그인 후 복사

MySQL 데이터베이스 서비스 시작 파일 및 초기화 작업을 실행합니다. 보안상의 이유로 MySQL은 버전 8.0부터 더 이상 사용자가 임시 비밀번호를 사용하여 데이터베이스 콘텐츠를 관리하는 것을 허용하지 않으며 원격으로 제어할 수도 없습니다. 사용자는 MySQL 데이터베이스를 사용하기 전에 초기화 비밀번호를 변경해야 합니다. 시스템의 중요한 구성요소 서비스로서 데이터베이스는 20자 미만의 비밀번호를 사용하지 않는 것이 좋습니다. 예를 들어, 다음은 비밀번호를 "PObejCBeDzTRCncXwgBy"로 변경합니다.

[root@linuxprobe bin]# cd /usr/local/mysql
[root@linuxprobe mysql]# cp -a support-files/mysql.server /etc/init.d/
[root@linuxprobe mysql]# chmod a+x /etc/init.d/mysql.server
[root@linuxprobe mysql]# ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
로그인 후 복사

하지만 여전히 작동하지 않습니다. mysql 데이터베이스로 전환하고 사용자 양식의 비밀번호 값을 수정해야 합니다. 이는 MySQL 데이터베이스 버전 8.0부터 시작되는 새로운 보안 요구 사항이기도 합니다.

[root@linuxprobe mysql]# /etc/init.d/mysql.server start 
Starting MySQL.Logging to '/usr/local/mysql/data/linuxprobe.com.err'.
. SUCCESS! 
[root@linuxprobe mysql]# mysql -u root -p
Enter password: 输入初始化时给的原始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18

Copyright (c) 2000, 2019, 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.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'PObejCBeDzTRCncXwgBy'; 
Query OK, 0 rows affected (0.01 sec)

mysql>
로그인 후 복사

8. PHP 설치

php 소스 코드 패키지의 압축을 풀고 컴파일 및 설치

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
| …………省略部分输出信息…………  |
+---------------------------+
33 rows in set (0.00 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PObejCBeDzTRCncXwgBy';
Query OK, 0 rows affected (0.01 sec)

// 创建一个数据库
create database linuxcool;
로그인 후 복사
생성된 php.ini 구성 파일을 설치 디렉터리(/usr/local/php/)에 복사하고 적용합니다. . 이제 기본 구성 파일을 사용할 수 있으므로 php-fpm 구성 파일이 필요합니다. 다행히도 /usr/local/php/etc/ 디렉토리에도 제공됩니다. 템플릿만 복사하면 됩니다.

[root@linuxprobe mysql]# cd /lnmp
[root@linuxprobe lnmp]# tar xvf php-7.3.5.tar.gz
[root@linuxprobe lnmp]# cd php-7.3.5/
[root@linuxprobe php-7.3.5]# ./configure --prefix=/usr/local/php --enable-fpm --with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd --enable-mbstring --with-gd
[root@linuxprobe php-7.3.5]# make
[root@linuxprobe php-7.3.5]# make install
로그인 후 복사

php 서비스 시작 항목에서 재시작 후에도 적용됩니다

[root@linuxprobe php-7.3.5]# cp php.ini-development /usr/local/php/lib/php.ini
[root@linuxprobe php-7.3.5]# cd /usr/local/php/etc/
[root@linuxprobe etc]# mv php-fpm.conf.default php-fpm.conf

// 复制一个模板文件到php-fpm.d的目录中,用于后续控制网站的连接性能:
[root@linuxprobe etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf
로그인 후 복사

일부 기능 비활성화

[root@linuxprobe etc]# cd /lnmp/php-7.3.5
[root@linuxprobe php-7.3.5]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@linuxprobe php-7.3.5]# chmod 755 /etc/init.d/php-fpm
로그인 후 복사

php-fpm 프로세스 시작

[root@linuxprobe php-7.3.5]# vim /usr/local/php/lib/php.ini
307 ; This directive allows you to disable certain functions for security reasons.
308 ; It receives a comma-delimited list of function names.
309 ; http://php.net/disable-functions
310 disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
로그인 후 복사

/usr/local/nginx/html에 index.php 파일을 생성하여 테스트

<?php
phpinfo();
로그인 후 복사

浏览器访问地址即可。

9、搭建一个 WordPress

把 Nginx 服务程序根目录的内容清空后,将 WordPress 解压后的网站文件复制进去:

[root@linuxprobe php-7.3.5]# cd ..
[root@linuxprobe lnmp]# rm -f /usr/local/nginx/html/*
[root@linuxprobe lnmp]# tar xzvf wordpress.tar.gz 
[root@linuxprobe lnmp]# mv wordpress/* /usr/local/nginx/html/
로그인 후 복사

为了能够让网站文件被 Nginx 服务程序顺利读取,应设置目录所有权的身份及可读写的权限:

[root@linuxprobe lnmp]# chown -Rf nginx:nginx /usr/local/nginx/html 
[root@linuxprobe lnmp]# chmod -Rf 777 /usr/local/nginx/html
로그인 후 복사

输入虚拟机 IP 地址访问 WordPress 网站的首页面。

매우 상세합니다! 소스코드를 활용한 LNMP 환경 구축

后面按说明一步步操作下去即可。

위 내용은 매우 상세합니다! 소스코드를 활용한 LNMP 환경 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

See all articles