关于php:标梵互动讲解从头构建PHP原生环境

41次阅读

共计 4380 个字符,预计需要花费 11 分钟才能阅读完成。

PHP 环境,是 HTTP 服务器、PHP 和数据库软件的汇合,个别能够缩写为 LAMP,即 Linux+Apache+MySQL+PHP。
一般来说,对于个别的学习或者小我的项目,能够间接应用如 PHPStudy、XAMPP 等“AllinOne”环境等集成环境。然而如果须要进行大型项目或者对配置文件有很高的 DIY 要求,也能够间接按模块装置配置。本文依据 Windows10 环境,在 PHP 环境中装置了本机模块。
PHP8.0 版公布了,本文写的配置环境是 7.4,只需大量批改就能够应用。
背景。
编辑开始用 PHPStudy 学习 PHP,起初接触了很多集成环境。尽管各有千秋,百家争鸣,但总感觉综合环境有一种“约束力”。他们间接从官网下载最新版本应用,从配置文件开始入手,让人释怀。
测试环境。
Windows1020H2 专业版 x64(19042.572)
英特尔酷睿 i5-7300HQCPU@2.50GHz.
超级终端 (可选)
默认环境装置在 D:\PHPEnv\ 目录下。
装置前的注意事项。
Windows 服务的装置可能须要 VC15 运行时库,能够在微软官网点播下载。
Apache 装置和配置。
Apache 官网只提供 windows 版本的源代码,不提供二进制可执行文件。咱们能够去 ApacheHaus 下载二进制文件进行装置。
将 Apache24 目录解压到 D:\PHPEnv,环境根目录能够任意指定。须要留神的是,目录门路中不容许应用中文。
Apache 配置文件 (Apache24/conf/httpd.conf)
因为 Apache 配置文件太长,具体的具体调优办法请参考其余文章。这里显示了简化的配置文件(这里只显示了次要局部)。
# Apache24.conf file
# General Settings
Define SRVROOT “D:/PHPEnv/Apache24” # 定义 Apache 根目录
ServerRoot “${SRVROOT}”
ServerName localhost # 服务名
Define ENABLE_TLS13 “Yes”
Listen 80 # 监听 80 端口,如果被占用能够应用 8080 端口
# PHP74 Config
# PHP 8.0 批改为 php8apache2_4.dll
LoadModule php_module “D:/PHPEnv/PHP74/php7apache2_4.dll” # 定义 PHP7 模块门路
AddType Application/x-httpd-php .php # 增加 PHP 格局
PHPIniDir “D:/PHPEnv/PHP74” #定义 PHP 根目录
<Directory /> # 具体配置含意参考其余文章

AllowOverride all
Options Indexes FollowSymLinks
Require all granted

</Directory>
<Directory “H:/WWW”> # 定义网站根目录

AllowOverride all
Options Indexes FollowSymLinks
Require all granted

</Directory>
<IfModule dir_module>

DirectoryIndex index.html index.php index.htm

</IfModule>
<Files “.ht*”>

Require all granted

</Files>
# Virtual hosts
Include conf/extra/httpd-vhosts.conf # 启用虚拟主机文件
虚拟主机配置文件(Apache24/extra/httpd-vhosts.conf)
为了不便,将网站根目录映射成虚拟主机,容许一个服务器运行多个网站。
<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot “H:/WWW”
ServerName localhost
<Directory “H:/WWW”>

Options Indexes FollowSymLinks Includes ExecCGI

</Directory>
</VirtualHost>
PHP 装置与配置
下载 PHP
因为 Apache 的 装置须要当时配置好 PHP,返回 windows.php.net 下载最新版。
近期公布了 PHP 8.0,本文撰写时版本还未公布,所以只介绍 7.4 版。
Thread Safe 和 Non Thread Safe 的 区别
参考原文:
TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).
大抵意思是 TS 版以模块 (moudule) 形式加载到网站服务器(Apache),NTS 版通过 FastCGI 协定与网站服务器建立联系。前者大多利用于 Apache,后者搭配 Nginx 应用,本文应用 Thread Safe 版以模块模式应用 PHP(上图 VC15 x64 Thread Safe)。
将压缩包所有文件解压到 D:\PHPEnv\PHP74,门路与 httpd.conf 配置要统一。
配置 php.ini
在 PHP 根目录(PHP74)新建 php.ini,或者复制 php.ini-development 重命名为 php.ini,右键抉择编辑进入配置文件,同样因为篇幅限度只展现一部分次要配置。
[PHP]
engine = On # 启动引擎
short_open_tag = Off # 敞开短标签
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL# 错误报告开启全副提醒
post_max_size = 2048M# POST 最大文件大小
default_mimetype = “text/html”
default_charset = “UTF-8″# 默认文件编码
extension_dir = “./”
extension_dir = “D:/PHPEnv/PHP74/ext” # PHP 插件门路
enable_dl = Off
upload_max_filesize = 2048M# 上传最大文件大小
max_file_uploads = 20
extension=curl
extension=fileinfo
extension=gd2
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=sockets
[Date]
date.timezone = Asia/Shanghai # 默认时区设置(中国上海)
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = Off
[mbstring]
mbstring.language = Chinese # 查看字数语言(中文)
查看配置
管理员身份关上 Hyper Terminal 或 命令提示符(任意一个 Terminal 都能够),cd 命令跳转到 Apache24\bin,Windows 跳转盘符命令 D:(D 是指标盘符,其余形如 C: E:,参考机器配置)。
查看 Apache 配置 httpd -t,显示 Syntax OK 阐明配置无误。
装置 Apache 服务并启动
httpd -k install -n Apache24 进行装置,-n 前面跟服务名(能够本人定义),不填默认为 Apache2.4
net start Apache24 开启服务。
至此 Apache 和 PHP 曾经装置实现,在网站根目录(H:\WWW)新建 phpinfo.php,
输出 <?php phpinfo(); ?> 保留,进入浏览器输出 localhost\phpinfo.php 查看成果。
MySQL 装置
下载 MySQL 最新版
返回 MySQL 官网 下载 MySQL,官网提供两种装置形式:
装置器 MySQL Installer for Windows.msi
归档压缩包 Windows (x86, 64-bit), ZIP Archive
本文抉择压缩包装置,抉择左边 download 按钮下载
新建 My.ini 配置文件
绝对于 Apache 和 PHP 的天花乱坠的配置文件,MySQL 文件绝对简洁许多。
[mysqld]
port=3306 #端口
basedir=D:\PHPEnv\MySQL80 #根目录
datadir=D:\PHPEnv\MySQL80\Data #数据库目录
max_connections=200 #最大链接数
max_connect_errors=10
character-set-server=utf8mb4 #字符编码,mb4 反对 emoji
default-storage-engine=INNODB #数据库引擎
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4 #数据库字符集
[client]
port=3306
default-character-set=utf8mb4
保留至 MySQL 根目录,本文保留至 PHPEnv\MySQL80,新建 Data 空文件夹。
装置 MySQL 服务并启动
在终端或命令提示符(管理员模式)定位到 MySQL80 下的 bin 目录 cd MySQL80\bin
输出 mysqld –initialize –console 初始化装置,失去一个初始密码。
A temporary password is generated for root@localhsot: 除去空格就是初始密码,须要记住。
持续输出 mysqld –install MySQL80 装置服务,提醒 Service successfully installed 示意装置胜利。
输出 net start MySQL80 启动数据库服务。
输出 mysql -u root -p 进入 MySQL CLI,回车提醒输出初始密码,进行明码设定。
输出 ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 明码 ’;
明码本人写,提醒 Query OK, 0 rows affected (0.10 sec) 阐明曾经实现批改。
输出 exit; 退出,再次进入就能够应用新密码了。
至此,所有配置已实现,能够应用了。
一些问题
个别留神 以管理员身份运行 关上终端,当时装置 VC15 就没有问题了。
文章编辑: 标梵互动(https://www.biaofun.com/)

正文完
 0