felayman-----PHP环境搭建
PHP是一种服务器端的嵌入式脚本语言,是一种服务器端、跨平台、面向对象、HTML嵌入式的脚本语言。本章将向读者介绍PHP开发环境搭建,常用的配置问题和解决方案。通过本章的学习,读者能够学到以下内容。
更换验证码
: Windows——AppserV集成安装包搭建PHP环境
: Linux——XAMPP集成安装包搭建PHP环境
: PHP开发环境的关键配置信息
: 解决PHP的常见配置问题
1.1 PHP环境搭建
1.1.1 AppServ—Windows版PHP集成化安装包
AppServ将Apache、PHP、MySQL和phpMyAdmin等服务器软件和工具安装配置完成后打包处理。开发人员只要到网站上下载该软件,然后安装,即可完成PHP开发环境的快速搭建。非常适合初学者使用。
注意:在使用AppServ搭建PHP开发环境时,必须确保在系统中没有安装Apache、PHP和MySQL。否则,要先将这些软件卸载,然后应用AppServ。
下面讲解AppServ集成化安装包搭建PHP开发环境的具体操作步骤:
(1)双击AppServ-win32-2.5.10.exe文件,打开如图1.1所示的AppServ启动页面。
(2)单击图1.1中的Next按钮,打开如图1.2所示的AppServ安装协议页面。
(3)单击图1.2中的I Agree按钮打开如图1.3所示的页面。设置AppServ的安装路径(默认安装路径一般为:E:\AppServ),AppServ安装完成后Apache、MySQL、PHP都将以子目录的形式存储到该目录下。

(4)单击图1.3中的Next按钮打开如图1.4所示的页面。选择要安装的程序和组件(默认为全选)。
注意:在图1.4的操作步骤中,如果本机中已经安装MySQL数据库,那么在这里可以不勾选MySQL Database选项,仍使用本机已经存在的MySQL数据库。
(5)在图1.4中单击Next按钮,打开如图1.5所示的页面。填写计算机名称,添加邮箱地址,设置Apache的端口号,默认为80端口。
技巧:Apache服务器端口号的设置,直接关系到Apache服务器是否能够正常启动。如果本机中的80端口被IIS或者迅雷占用,那么这里就需要修改Apache的端口号,或者将IIS、迅雷的端口号修改,才能完成Apache服务器的配置。如果出现端口冲突,那么将导致安装失败,Apache服务不能启动。
(6)单击图1.5中的Next按钮,打开如图1.6所示的页面。设置MySQL数据库root用户的登录密码及字符集。
技巧:MySQL数据库字符集的设置,可以选择UTF-8、GBK或者GB2312。这里将字符集设置为“UTF-8 Unicode”,表示MySQL数据库的字符集将采用UTF8编码。

注意:对于在图1.6中设置的MySQL数据库root用户的密码必须牢记,因为程序在连接数据库时必须使用这个密码。
的程序时,要修改连接数据库的密码。如果忘记安装时设置密码,最直接有效的解决方式是重新安装AppServ。
(7)单击图1.6中的Install按钮开始安装,如图1.7所示。

(8)安装完成后可以在开始菜单的AppServ相关操作列表中启动Apache及MySQL服务,如图1.8所示。

1.2 PHP开发环境的关键配置信息
前面介绍了PHP开发环境的配置方法,除了安装步骤本身之外,PHP与服务器的配置也是十分重要的。下面将主要介绍PHP及Apache服务器的配置。
1.2.1 Apache服务器的基本配置
Apache服务器的设置文件在Linux操作系统中位于/usr/local/apache/conf/(在Windows操作系统中位于“/etc/httpd/conf”)目录下,基本上使用以下3个配置文件来配置Apache服务器的行为。
? access.conf:用于配置服务器的访问权限,控制不同用户和计算机的访问限制。
? httpd.conf:用于设置服务器启动的基本环境。
? srm.conf:主要用于作文件资源上的设定。
技巧:http.conf是Apache服务器的配置文件,其常用的配置包括:Apache服务器的端口号、服务器的访问路径和伪静态的设置。
ServerName localhost:80
DocumentRoot "/xampp/htdocs"
LoadModule rewrite_module modules/mod_rewrite.so
1.2.2 PHP.INI文件的基本配置
php.ini文件是PHP在启动时自动读取的配置文件。php.ini是一个ASCLL文本文件,分为多个部分,每一部分包括相关的参数。每一部分的名称位于最前面的方括号内,接着是名称对数字,每一名称都独占一行。使用规则PHP代码,对参数名称非常敏感,不能包含有空格,但是参数可以是数字,字符串或者布尔逻辑数。分号位于每一行的开始,其作为指定标记,这就使选择使用或者不使用PHP的这些特性变得很方便,而无需通过删除该行来实现。对某特性进行注释(即,添加分号),则该行将不会被编译执行。每次修改完php.ini文件,必须重新启动Apache服务器,以使新的设置生效。
技巧:php.ini是PHP的配置文件,用于加载各种函数库、设置错误级别和设置服务器的时间等等。在Linux操作系统中,php.ini存储于/opt/lampp/etc/php.ini 文件夹下,而在Windwos操作系统中php.ini存储于系统盘的windows文件下。php.ini文件的基本配置如表1.1所示。
表1.1 php.ini文件的基本配置
参数 |
说明 |
默认值 |
error_reporting |
设置错误处理的级别。推荐值为E_ALL & ~E_NOTICE & ~E_STRICT,显示所有错误信息,除了提醒和编码标准化警告。 |
E_ALL & ~E_NOTICE & ~E_STRICT |
register_globals |
通常情况下可以将此变量设置为Off,这样可以对通过表单进行的脚本攻击提供更为安全的防范措施 |
register_globals = On |
include_path |
设置PHP的搜索路径,这一参数可以接收系列的目录。当PHP遇到没有路径的文件提示时,它将会自动检测这些目录,需要注意的是,当某些选项允许多个值,应使用系统列表分隔符,在Windows下使用分号“;”,在Linux下使用冒号“:” |
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" |
extension_dir |
指定PHP的动态连接扩展库的目录 |
“\ext”目录下 |
extension |
指定PHP启动时所加载的动态连接扩展库。PHP的常用扩展库及其说明请参见表1.2 |
PHP的常用扩展库在初次安装配置后均被注释,需读者手动更改 |
file_uploads |
设置是否允许通过HTTP上传文件 |
file_uploads=On |
upload_tmp_dir |
设置通过HTTP上传文件时的临时目录,如果为空,则使用系统的临时目录 |
upload_tmp_dir =空 |
upload_max_filesize |
设置允许上传文件的大小,如“50M”,必须填写单位 |
upload_max_filesize=2M |
post_max_size |
控制在采用POST方法进行一次表单提交中PHP所能够接收的最大容量。要上传更大的文件,则该值必须大于upload_max_filesize的值。 如upload_max_filesize=10M,那么upload_max_filesize的值必须要大于10M |
post_max_size = 8M |
max_input_time |
以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制 |
max_input_time = 60 |
表1.2 PHP常用扩展库及其说明
扩张库 |
说明 |
php_ftp.dll |
支持FTP函数库,可以实现客户机与服务器之间标准传送协议(FTP) |
php_gd2.dll |
支持图像处理函数库,支持对.gif、.jpg、.png等多种图像格式 |
php_imap.dll |
支持imap电子邮件处理函数库 |
php_mssql.dll |
支持MsSQL数据库 |
php_msql.dll |
支持mSQL数据库 |
php_MySQL.dll |
支持MySQL数据库 |
php_oracle.dll |
支持Oracle数据库 |
php_pdf.dll |
支持PDF文件处理函数库 |
php_sockets.dll |
支持Sockets处理函数库 |
php_zlib.dll |
支持zlib文件压缩函数库 |
php_pdo.dll |
支持PDO数据库抽象层 |
php_pdo_mysql.dll |
支持MySQL数据库 |
php_pdo_mssql.dll |
支持MS SQL Server数据库 |
php_pdo_oci8.dll |
支持Oracle数据库 |
php_pdo_odbc.dll |
支持ODBC数据库 |
php_pdo_pgsql.dll |
支持PGSQL数据库 |
1.3 解决PHP的常见配置问题
程序运行出错是许多程序员最为头疼的问题,下面介绍PHP常见的配置问题。通过本节的学习,可以分清哪些错误是由于PHP环境配置不当产生的,从而避免不必要的时间资源浪费,高效的完成Web应用程序的开发。
1.3.1 解决Apache服务器端口冲突
IIS的默认端口号为80,同Apache服务器默认端口号相同。由于采用了相同的端口号80,因此,在运行网页时就会发生冲突。
如果用户机器上安装了IIS,就需要修改IIS的默认端口,否则将导致Apache服务器无法正常工作。更改IIS的默认侦听端口80,可以在IIS的管理器中进行设置,或者停止IIS的服务也可以。
用户也可以在安装Apache服务器时将默认的端口号进行更改,从而解决两个服务器共用一个端口号而产生冲突的问题。
技巧:如果在搭建PHP环境时,将Apache的端口号设置为82,那麽在通过浏览器访问项目时,则应该输入http://127.0.0.1:82/或者http://localhost:82/。
1.3.2 设置PHP的系统当前时间
由于php 5.0对date()函数进行了重写,因此,目前的日期时间函数比系统时间少8个小时。在PHP语言中默认设置的是标准的格林威治时间(即采用的是零时区),所以要获取本地当前的时间必须更改PHP语言中的时区设置。方法如下:
在php.ini文件中,找到[date]下的“;date.timezone =”选项,将该项修改为“date.timezone =Asia/Hong_Kong”,然后重新启动Apache服务器。
设置完成后,在输出系统当前的时间就不会出现时差问题。
1.3.3 增加PHP扩展模块
增加PHP扩展模块也称为动态扩展,用来动态加载某个模块,它包含一个指令:extension。
在Windows操作系统下,加载模块的方法如下。打开php.ini文件,定位到如下位置,去掉;tension=php_java.dll前面的分号,保存后重新启动Apache服务器,即完成扩展模块的加载操作。
;tension=php_java.dll
在Linux操作系统下,加载模块的方法如下。
extension=php_java.so
需要说明的是,只加载这一行代码并不一定能启用相关的扩展包,有时还需要确保在操作系统中安装相关的软件。例如:为启用java支持,需要安装JDK。

절대 세션 시간 초과는 세션 생성시 시작되며, 유휴 세션 시간 초과는 사용자가 작동하지 않아 시작합니다. 절대 세션 타임 아웃은 금융 응용 프로그램과 같은 세션 수명주기의 엄격한 제어가 필요한 시나리오에 적합합니다. 유휴 세션 타임 아웃은 사용자가 소셜 미디어와 같이 오랫동안 세션을 활성화하려는 응용 프로그램에 적합합니다.

서버 세션 고장은 다음 단계를 따라 해결할 수 있습니다. 1. 서버 구성을 확인하여 세션이 올바르게 설정되었는지 확인하십시오. 2. 클라이언트 쿠키를 확인하고 브라우저가 지원하는지 확인하고 올바르게 보내십시오. 3. Redis와 같은 세션 스토리지 서비스가 정상적으로 작동하는지 확인하십시오. 4. 올바른 세션 로직을 보장하기 위해 응용 프로그램 코드를 검토하십시오. 이러한 단계를 통해 대화 문제를 효과적으로 진단하고 수리 할 수 있으며 사용자 경험을 향상시킬 수 있습니다.

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

XSS 공격을 효과적으로 방지하고 사용자 세션 정보를 보호 할 수 있기 때문에 httponly 플래그를 설정하는 것은 세션 쿠키에 중요합니다. 구체적으로, 1) httponly 플래그는 JavaScript가 쿠키에 액세스하는 것을 방지합니다. 2) PHP 및 Flask에서 SetCookies 및 Make_response를 통해 깃발을 설정할 수 있습니다. 3) 모든 공격으로부터 방지 할 수는 없지만 전체 보안 정책의 일부가되어야합니다.

phpssessionssolvetheproblemofmainingstateacrossmultiplehtttprequestsbystoringdataontheserversociatingititwithauniquessessionid.1) theStoredAserver-side, 일반적으로, 일반적으로 and insessionsecietoretoretrievedata.2) sessionsenhances

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

드림위버 CS6
시각적 웹 개발 도구
