데이터 베이스 MySQL 튜토리얼 在CentOS上源码安装MySQL+安装问题解决+安全优化_MySQL

在CentOS上源码安装MySQL+安装问题解决+安全优化_MySQL

May 27, 2016 pm 01:45 PM
소스 코드 질문

0.说明

当然,MySQL的安装方法多种多样,在CentOS上,你可以采用YUM的方式安装,这样的好处是:快速方便。基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要YUM执行完成,那么MySQL也就可以使用了。

但我更倾向于使用源码的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助!

但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家,直到完成下面的4个任务:

下载MySQL 5.6

安装准备:安装MySQL依赖函数库

安装与运行MySQL

优化MySQL

(1)账户安全优化

(2)数据库安全优化

我是安装完CentOS 6.5后就进行MySQL 5.6的安装,因此非常有参考价值!

1.下载MySQL 5.6

下载地址:http://dev.mysql.com/downloads/mysql/5.6.html

进入该下载地址后,选择:

Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive

Linux - Generic (glibc 2.5) (x86, 32-bit), Compressed TAR Archive

这取决于你用的是32位的还是64位的,这里,我下载的是64位的,下载完成后的包如下:

[root@leaf~]#ls
mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz
로그인 후 복사

2.安装准备:安装MySQL依赖函数库

MySQL依赖一个名为libaio的函数库,需要先安装它,否则后面安装MySQL会出现问题。

如下:

[root@leaf~]#yumsearchlibaio#查找libaio的相关信息
[root@leaf~]#yuminstalllibaio#安装libaio
Loadedplugins:security
SettingupInstallProcess
Packagelibaio-0.3.107-10.el6.x86_64alreadyinstalledandlatestversion
Nothingtodo
로그인 후 복사

当然,有可能在你安装完CentOS后,你就已经安装了libaio,这取决你你当时安装CentOS时所选择的安装包,如上面我的安装提示,就说明我的系统上已经安装了libaio了。


3.安装与运行MySQL

(1)分别创建一个名为mysql的用户和用户组

如下:

[root@leaf~]#groupaddmysql
[root@leaf~]#useradd-r-gmysql-s/bin/falsemysql
로그인 후 복사

-r和-s参数的可以使得mysql这个用户没有登陆你系统的权限,这可以保证系统的安全性。

(2)解包与建立软链接

如下:

[root@leaf~]#cd/usr/local
[root@leaflocal]#tarzxvf/root/mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz
[root@leaflocal]#ln-s/usr/local/mysql-5.6.29-linux-glibc2.5-x86_64/mysql
로그인 후 복사

需要知道的是,正常情况下,我们习惯将编译安装的软件放在/usr/local目录下,当然你也可以自行选择,不过还是建议放在这里。

建立软链接的好处是,如果你需要使用mysql的安装目录,就不用去输入一长串的目录名称了,因为我们解压缩后的mysql包的目录,名字很长。

(3)初始化Data目录

解包完MySQL后,MySQL目录中会有一个data目录:

[root@leaflocal]#cdmysql
[root@leafmysql]#ls-ddata/
data/
로그인 후 복사

里面包含的是MySQL运行所必需的系统信息,因此我们需要将这些数据初始化,如下:

[root@leafmysql]#chown-Rmysql.#修改mysql目录下的所有文件的属主为mysql
[root@leafmysql]#chgrp-Rmysql.#修改mysql目录下的所有文件的属组为mysql
[root@leafmysql]#scripts/mysql_install_db--user=mysql#以mysql用户的身份初始化数据
[root@leafmysql]#chown-Rroot.#修改mysql目录下的所有文件的属主为root
[root@leafmysql]#chown-Rmysqldata#修改mysql目录下的data目录的属主为mysql
로그인 후 복사

请务必按照上面的操作进行,至于详细的是什么意思,为什么要这样做,可以参考官方文档,有非常详细的解释:http://dev.mysql.com/doc/refman/5.6/en/data-directory-initialization.html

(4)启动MySQL

如下:

[root@leafmysql]#bin/mysqld_safe--user=mysql&
[1]30877
[root@leafmysql]#16030611:58:50mysqld_safeLoggingto'/var/log/mysqld.log'.
16030611:58:50mysqld_safeStartingmysqlddaemonwithdatabasesfrom/var/lib/mysql
16030611:58:51mysqld_safemysqldfrompidfile/var/run/mysqld/mysqld.pidended
로그인 후 복사

理论上应该是可以的,但是看我上面的操作,出现了ended的提示,也就是mysql启动不了,这时我们去看一下日志信息:

[root@leaf~]#tail-f/var/log/mysqld.log
......
2016-03-0612:00:3631231[ERROR]/usr/local/mysql/bin/mysqld:Can'tcreate/writetofile'/var/run/mysqld/mysqld.pid'(Errcode:2-Nosuchfileordirectory)
2016-03-0612:00:3631231[ERROR]Can'tstartserver:can'tcreatePIDfile:Nosuchfileordirectory
16030612:00:36mysqld_safemysqldfrompidfile/var/run/mysqld/mysqld.pidended
로그인 후 복사

问题:can't create PID file: No such file or directory,即找不到mysql启动的pid文件

解决方案:mysqld目录不存在,我们创建它就可以了

[root@leafmysql]#mkdir/var/run/mysqld
[root@leafmysql]#cd/var/run/mysqld/
[root@leafmysqld]#touchmysqld.pid#创建mysqld.pid文件
[root@leafmysqld]#cd..
[root@leafrun]#chown-Rmysqlmysqld#将mysqld目录的属主设置为mysql
로그인 후 복사

回到mysql目录,我们再启动一次mysql,如下:

[root@leafrun]#cd/usr/local/mysql
[root@leafmysql]#bin/mysqld_safe--user=mysql
16030612:12:45mysqld_safeLoggingto'/var/log/mysqld.log'.
16030612:12:45mysqld_safeStartingmysqlddaemonwithdatabasesfrom/var/lib/mysql
로그인 후 복사

可以看到并没有终止运行的提示信息,我们再确认一下mysql服务是不是已经启动了:

[root@leaf~]#netstat-antup
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname
tcp000.0.0.0:33060.0.0.0:*LISTEN31484/mysqld
로그인 후 복사

mysql服务确实已经成功启动了!

(5)测试mysql服务

为了使mysql可以更好地在你的系统上运行,建议进行一定的mysql服务测试,如下:

[root@leafmysql]#bin/mysqladminversion
bin/mysqladmin:connecttoserverat'localhost'failed
error:'Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)'
Checkthatmysqldisrunningandthatthesocket:'/tmp/mysql.sock'exists!
로그인 후 복사

按照官方文档的操作去测试,但却出现了上面的问题(需要注意的是,我的mysql服务已经开启了!)。

问题:/tmp/mysql.sock不存在

解决方案:其实mysql.sock是存在的,只是它不在/tmp目录下而已,默认情况下,mysql.sock在/var/lib/mysql/目录下,我们只需要创建一个软链接到/tmp目录下即可

[root@leafmysql]#ln-s/var/lib/mysql/mysql.sock/tmp/mysql.sock
로그인 후 복사

这时再重复上面的操作:

[root@leafmysql]#bin/mysqladminversion
bin/mysqladminVer8.42Distrib5.6.29,forlinux-glibc2.5onx86_64
Copyright(c)2000,2016,Oracleand/oritsaffiliates.Allrightsreserved.

OracleisaregisteredtrademarkofOracleCorporationand/orits
affiliates.Othernamesmaybetrademarksoftheirrespective
owners.

Serverversion5.6.29
Protocolversion10
ConnectionLocalhostviaUNIXsocket
UNIXsocket/tmp/mysql.sock
Uptime:6min36sec

Threads:1Questions:2Slowqueries:0Opens:67Flushtables:1Opentables:60Queriespersecondavg:0.005
로그인 후 복사

成功了!然后我们再进行下面的操作热热身吧:

[root@leafmysql]#bin/mysqladmin-urootshutdown#通过mysqladmin关闭mysql服务
[root@leafmysql]#bin/mysqld_safe--user=mysql&#启动mysql服务

#查看mysql数据库中默认存在的数据库
[root@leafmysql]#bin/mysqlshow
+--------------------+
|Databases|
+--------------------+
|information_schema|
|mysql|
|performance_schema|
|test|
+--------------------+

#查看mysql数据库(注意此mysql数据库是一个实体,与上面的统称不同)中的数据表
[root@leafmysql]#bin/mysqlshowmysql
Database:mysql
+---------------------------+
|Tables|
+---------------------------+
|columns_priv|
|db|
|event|
|func|
|general_log|
|help_category|
|help_keyword|
|help_relation|
|help_topic|
|innodb_index_stats|
|innodb_table_stats|
|ndb_binlog_index|
|plugin|
|proc|
|procs_priv|
|proxies_priv|
|servers|
|slave_master_info|
|slave_relay_log_info|
|slave_worker_info|
|slow_log|
|tables_priv|
|time_zone|
|time_zone_leap_second|
|time_zone_name|
|time_zone_transition|
|time_zone_transition_type|
|user|
+---------------------------+

#查看mysql数据库中的所有user表
[root@leafmysql]#bin/mysql-e"SELECTUser,Host,pluginFROMmysql.user"mysql
+------+-----------+-----------------------+
|User|Host|plugin|
+------+-----------+-----------------------+
|root|localhost|mysql_native_password|
|root|leaf|mysql_native_password|
|root|127.0.0.1|mysql_native_password|
|root|::1|mysql_native_password|
||localhost|mysql_native_password|
||leaf|mysql_native_password|
+------+-----------+-----------------------+
로그인 후 복사

需要注意的是,上面的这些测试必须要在你已经启动了mysql服务的情况下才去进行操作。同时,如果想知道每一步的详细解释,可以参考官方文档:http://dev.mysql.com/doc/refman/5.6/en/testing-server.html

准确来讲,MySQL是已经成功安装完成了!下面我们再做一些基础的优化,主要是从安全的角度去考虑。

4.优化MySQL

(1)MySQL数据库用户账户安全优化

--默认情况下用户账户很不安全

前面我们在对data目录进行初始化的过程中,其实MySQL就为我们创建了一些mysql账户,这些账户以及它们的权限就在mysql.user这张表中(下面会有操作查看),这里我们要对这些初始化的账户进行说明和必要的管理。

首先,我们以命令行方式进行mysql数据库中:

[root@leaf~]#mysql
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis7
Serverversion:5.6.29MySQLCommunityServer(GPL)

Copyright(c)2000,2013,Oracleand/oritsaffiliates.Allrightsreserved.

OracleisaregisteredtrademarkofOracleCorporationand/orits
affiliates.Othernamesmaybetrademarksoftheirrespective
owners.

Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.

mysql>
로그인 후 복사

可以看到不用任何密码就可以进入到数据库中,实际上,我们是以root用户的身份登陆到mysql数据库中的。

查看默认的用户名:

mysql>selectUser,Host,Passwordfrommysql.user;
+------+-----------+----------+
|User|Host|Password|
+------+-----------+----------+
|root|localhost||
|root|leaf||
|root|127.0.0.1||
|root|::1||
||localhost||
||leaf||
+------+-----------+----------+
6rowsinset(0.00sec)
로그인 후 복사

从这张表中,我们可以看到有两种用户:

a.root用户:拥有最高权限

b.匿名用户:拥有有限的权限

而至于Host参数,则是说明通过该用户,能够以哪种方式进入mysql数据库中,比如对于root用户,现在的方法都是可以进入mysql数据库中的:

mysql -u root -h localhost

mysql -u root -h leaf

mysql -u root -h 127.0.0.1

mysql -u root -h ::1

匿名用户也是如此,但不管哪一种,其实都是指从本地登陆的意思。

但我们会发现一个问题,就是两种用户中Password一栏都为空,这也就是为什么刚刚我们直接输入一个mysql就可以进入的原因了,默认情况下,root用户和匿名用户都没有密码!

这也就是我们为什么要做基本优化的原因了,因为你不对这些用户做管理,那么谁都可以进行你的数据库,数据库完全将无从谈起!

--账户安全优化1:为root用户创建密码

接下来我们要做的是:

为每一个root用户创建密码

有三种方式可以进行这些操作:

  1. 使用set password语句

    使用update语句

    使用mysqladmin命令

    方式1:使用set password语句

    [root@leaf~]#mysql-uroot
    mysql>setpasswordfor'root'@'localhost'=password('123456');
    mysql>setpasswordfor'root'@'127.0.0.1'=password('123456');
    mysql>setpasswordfor'root'@'::1'=password('123456');
    mysql>setpasswordfor'root'@'leaf'=password('123456');
    mysql>flushprivileges;
    로그인 후 복사

    方式2:使用update语句

    [root@leaf~]#mysql-uroot
    mysql>updatemysql.usersetpassword=password('123456')
    ->whereUser='root';
    mysql>flushprivileges;
    로그인 후 복사

    方式3:使用mysqladmin命令

    [root@leaf~]#mysqladmin-urootpassword'123456'
    로그인 후 복사

    当然,上面三种方式选一种就可以了。这样的话,我们就为root用户创建了密码,以后在使用root用户登陆到数据库时都需要输入密码,如下:

    [root@leaf~]#mysql-uroot
    ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:NO)
    [root@leaf~]#mysql-uroot-p
    Enterpassword:
    로그인 후 복사

    这时再重新看一下mysql.user表:

    mysql>selectUser,Host,Passwordfrommysql.user;+------+-----------+-------------------------------------------+
    |User|Host|Password|
    +------+-----------+-------------------------------------------+
    |root|localhost|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|
    |root|leaf|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|
    |root|127.0.0.1|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|
    |root|::1|*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9|
    ||localhost||
    ||leaf||
    +------+-----------+-------------------------------------------+
    6rowsinset(0.00sec)
    로그인 후 복사

    可以看到已经为root用户创建为密码,只是这里显示的是密码被哈希加密后的值。

    --账户安全优化2:为匿名用户创建密码或删除匿名用户

    接下来我们要做的是:

    为匿名用户创建密码或删除匿名用户

    a.为匿名用户创建密码

    与上面的方法相同:

    [root@leaf~]#mysql-uroot-p
    Enterpassword:
    mysql>updatemysql.usersetpassword=password('123456')whereUser='';
    mysql>flushprivileges;
    로그인 후 복사

    这里我们使用update语句的方法。

    另外注意这里的`flush privileges`语句,这个语句的作用是使我们刚刚修改密码的操作马上生效,而无需重启mysql服务,如果没有使用该语句,同时也没有重启mysql服务,使用新密码重新登陆mysql时会一直提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)错误。

    b.删除匿名用户

    如果你觉得匿名用户留着实在没有什么必要的话,也可以直接将其删除:

    shell>mysql-uroot-p
    Enterpassword:(enterrootpasswordhere)
    mysql>DROPUSER''@'localhost';
    mysql>DROPUSER''@'host_name';
    로그인 후 복사

    (2)MySQL测试数据库安全优化

    --默认情况下的数据库本身存在安全隐患

    官方文档的说明:

    the mysql.db table contains rows that permit all accounts to access the testdatabase and other databases with names that start with test_

    也就是说mysql.db表中有些行允许所有的用户访问test数据库或以名字test_开头的数据库,虽然这对于测试数据库很方便,但其还是带来了一定的安全隐患,所以我们也要对其进行优化。

    --数据库安全优化:删除test数据库或名字以test开头的数据库

    如下:

    [root@leaf~]#mysql-uroot-p
    mysql>deletefrommysql.dbwheredblike'test%';
    mysql>dropdatabasetest;
    mysql>flushprivileges;
    로그인 후 복사

    关于基本的安全优化,可以参考官方文档:http://dev.mysql.com/doc/refman/5.6/en/default-privileges.html

    到这里的话本文就结束了,如果你是在CentOS上初次编译安装MySQL,只要你按照上面的方法去做,正常情况下是不会出现什么问题的,博主已进行多次测试。

    当然,当你已经完全熟悉这样的一个过程之后,以后编译安装时就不需要再一步步这样去做了,只需要写个一键安装部署的脚本就可以了。

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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를 무료로 생성하십시오.

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

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

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

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

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

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

    jQuery가 양식 요소 값을 얻을 수 없는 문제를 해결하는 방법 jQuery가 양식 요소 값을 얻을 수 없는 문제를 해결하는 방법 Feb 19, 2024 pm 02:01 PM

    jQuery.val()을 사용할 수 없는 문제를 해결하려면 구체적인 코드 예제가 필요합니다. 프론트 엔드 개발자에게는 jQuery를 사용하는 것이 일반적인 작업 중 하나입니다. 그중에서도 .val() 메서드를 사용하여 양식 요소의 값을 가져오거나 설정하는 것은 매우 일반적인 작업입니다. 그러나 특정한 경우에는 .val() 메서드를 사용하지 못하는 문제가 발생할 수 있습니다. 이 문서에서는 몇 가지 일반적인 상황과 해결 방법을 소개하고 구체적인 코드 예제를 제공합니다. 문제 설명 jQuery를 사용하여 프런트 엔드 페이지를 개발할 때 때때로 다음과 같은 문제가 발생할 수 있습니다.

    클러스터링 알고리즘의 클러스터링 효과 평가 문제 클러스터링 알고리즘의 클러스터링 효과 평가 문제 Oct 10, 2023 pm 01:12 PM

    클러스터링 알고리즘에서 클러스터링 효과 평가 문제에는 특정 코드 예제가 필요합니다. 클러스터링은 데이터를 클러스터링하여 유사한 샘플을 하나의 범주로 그룹화하는 비지도 학습 방법입니다. 클러스터링 알고리즘에서는 클러스터링의 효과를 어떻게 평가하는가가 중요한 문제입니다. 이 기사에서는 일반적으로 사용되는 몇 가지 클러스터링 효과 평가 지표를 소개하고 해당 코드 예제를 제공합니다. 1. 클러스터링 효과 평가 지수 실루엣 계수 실루엣 계수는 표본의 근접성 및 다른 클러스터와의 분리 정도를 계산하여 클러스터링 효과를 평가합니다.

    일반적인 iPhone 문제를 진단하는 방법을 가르쳐주세요. 일반적인 iPhone 문제를 진단하는 방법을 가르쳐주세요. Dec 03, 2023 am 08:15 AM

    강력한 성능과 다재다능한 기능으로 잘 알려진 iPhone은 복잡한 전자 장치에서 흔히 발생하는 문제인 가끔씩 발생하는 문제나 기술적인 어려움으로부터 자유롭지 않습니다. iPhone 문제를 경험하면 실망스러울 수 있지만 일반적으로 알람은 필요하지 않습니다. 이 종합 가이드에서는 iPhone 사용과 관련하여 가장 일반적으로 직면하는 문제 중 일부를 쉽게 설명하는 것을 목표로 합니다. 당사의 단계별 접근 방식은 이러한 일반적인 문제를 해결하는 데 도움을 주고 장비를 최상의 작동 순서로 되돌릴 수 있는 실용적인 솔루션과 문제 해결 팁을 제공하도록 설계되었습니다. 결함이 있거나 더 복잡한 문제에 직면하더라도 이 문서는 문제를 효과적으로 해결하는 데 도움이 될 수 있습니다. 일반적인 문제 해결 팁 특정 문제 해결 단계를 진행하기 전에 다음은 몇 가지 유용한 정보입니다.

    머신러닝 모델의 일반화 능력 문제 머신러닝 모델의 일반화 능력 문제 Oct 08, 2023 am 10:46 AM

    기계 학습 모델의 일반화 기능에는 특정 코드 예제가 필요합니다. 기계 학습의 개발 및 적용이 점점 더 널리 보급됨에 따라 사람들은 기계 학습 모델의 일반화 기능에 점점 더 많은 관심을 기울이고 있습니다. 일반화 능력은 레이블이 지정되지 않은 데이터에 대한 기계 학습 모델의 예측 능력을 의미하며, 현실 세계에서 모델의 적응성으로도 이해될 수 있습니다. 좋은 머신러닝 모델은 높은 일반화 능력을 갖추고 새로운 데이터에 대해 정확한 예측을 할 수 있어야 합니다. 그러나 실제 응용에서는 훈련 세트에서는 잘 수행되지만 테스트 세트에서는 실패하거나 실제 모델에서 실패하는 모델을 자주 접하게 됩니다.

    약한 지도 학습의 라벨 획득 문제 약한 지도 학습의 라벨 획득 문제 Oct 08, 2023 am 09:18 AM

    약한 지도 학습의 라벨 획득 문제에는 특정 코드 예제가 필요합니다. 소개: 약한 지도 학습은 훈련에 약한 라벨을 사용하는 기계 학습 방법입니다. 기존 지도 학습과 달리 약한 지도 학습은 각 샘플에 정확한 라벨이 필요한 것이 아니라 모델을 훈련하는 데 더 적은 수의 라벨만 사용하면 됩니다. 그러나 약한 지도 학습에서는 약한 레이블로부터 유용한 정보를 정확하게 얻는 방법이 핵심 문제입니다. 이 기사에서는 약한 지도 학습의 레이블 획득 문제를 소개하고 구체적인 코드 예제를 제공합니다. 약한 지도 학습의 라벨 획득 문제 소개:

    아이디어에서 Tomcat의 소스 코드를 보는 방법 아이디어에서 Tomcat의 소스 코드를 보는 방법 Jan 25, 2024 pm 02:01 PM

    IDEA에서 Tomcat 소스 코드를 보는 단계: 1. Tomcat 소스 코드를 다운로드합니다. 3. Tomcat 소스 코드를 봅니다. 4. Tomcat의 작동 원리를 이해합니다. 7. 도구 및 플러그인 사용 8. 커뮤니티에 참여하고 기여합니다. 자세한 소개: 1. Tomcat 소스 코드 다운로드 Apache Tomcat 공식 웹사이트에서 소스 코드 패키지를 다운로드할 수 있습니다. 일반적으로 이러한 소스 코드 패키지는 ZIP 또는 TAR 형식 등입니다.

    소스 코드를 온라인으로 볼 수 있는 웹사이트 소스 코드를 온라인으로 볼 수 있는 웹사이트 Jan 10, 2024 pm 03:31 PM

    브라우저의 개발자 도구를 사용하여 웹사이트의 소스 코드를 볼 수 있습니다. Google Chrome 브라우저에서: 1. Chrome 브라우저를 열고 소스 코드를 보려는 웹사이트를 방문합니다. 2. 웹의 아무 곳이나 마우스 오른쪽 버튼으로 클릭합니다. 페이지에서 "검사"를 선택하거나 단축키 Ctrl + Shift + I를 눌러 개발자 도구를 엽니다. 3. 개발자 도구의 상단 메뉴 표시줄에서 "요소" 탭을 선택합니다. 4. HTML 및 CSS 코드를 확인합니다. 웹사이트의.

    PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? Mar 11, 2024 am 10:54 AM

    PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? PHP는 동적 웹 페이지를 개발하는 데 일반적으로 사용되는 서버 측 스크립팅 언어입니다. 서버에서 PHP 파일이 요청되면 서버는 그 안에 있는 PHP 코드를 해석하고 실행한 후 최종 HTML 콘텐츠를 브라우저에 보내 표시합니다. 그러나 때때로 PHP 파일의 소스 코드를 실행하는 대신 브라우저에 직접 표시하고 싶을 때가 있습니다. 이 기사에서는 PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법을 소개합니다. PHP에서는 다음을 사용할 수 있습니다.

    See all articles