标梵互动讲解从头构建PHP原生环境

码农天地 -
标梵互动讲解从头构建PHP原生环境

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/)

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

php

扩展阅读

加个好友,技术交流

1628738909466805.jpg