一、php安装及启动
从php官方网站下载php源码到本地,解压后,进入源码根目录,通过以下命令可以启动php-fpm
# 这里采用默认的9000端口,可以改为其他端口
php-cgi.exe -b 127.0.0.1:9000 -c %PHP_HOME%\php.ini
二、扩展安装
1 php源码自带扩展安装
php源码本身包含了大量已经编译好的扩展dll,这类扩展只需要直接编辑php.ini,删除相应扩展配置前的注释符";"即可,下面是一些带注释符的扩展示例
- ;extension=php_sockets.dll sockets扩展
- ;extension=php_openssl.dll openssl 扩展
下面总结了部分扩展安装时遇到的问题及相应解决办法。
1.1 openssl扩展安装:找不到指定模块
php7.3.25,将php.ini 中 openssl 扩展注释去掉后,发现报如下错误:
PHP Warning: PHP Startup: Unable to load dynamic library 'openssl' (tried: C:\php\ext\openssl (找不到指定的模块。), C:\php\ext\php_ope
nssl.dll (找不到指定的模块。)) in Unknown on line 0
也就是php从C:\php\ext 这个目录而不是php二进制文件目录的ext子目录查找扩展,
查看相关文档可知,可以通过 extension_dir 这个配置项控制php扩展加载目录,
打开php.ini 文件,找到 extension_dir 配置位置,里面对Windows下如何设置作了单独说明,
将对应的注释去掉即可,最终配置如下
; On windows:
extension_dir = "ext"
2 pecl扩展安装
pecl php官网 里面收录了大量php扩展,很多扩展可以直接在在网站搜索、下载
进入网站后,点击左侧的 Search Packages,可以进入扩展搜索页面
扩展主页主要内容是下面三张表格,
Package Information : 扩展包的描述、作者等信息
Available Releases: 可供下载的版本列表
Dependencies:依赖信息说明
需要先阅读 最后的 ‘Dependencies’ 依赖说明信息,根据其中的提示,结合自身所使用php版本,确定要下载的扩展版本,然后到 Available Releases 进入相应的dll下载页面。
下载页面主要内容是两个表格
Package Information:更加详细的包说明信息
DLL List: DLL下载列表,对扩展支持的每个php版本,按照架构(X86 or X64)、是否线程安全,提供相应的扩展下载链接
根据实际情况,下载部署好扩展dll文件后,修改php.ini 文件即可完成扩展安装,下面是具体的例子。
【注意】 windows环境下 php.ini 文件中扩展信息不需要带so后缀,linux 环境下才需要带.so 后缀
2.1 redis扩展安装
打开 https://pecl.php.net/package/redis,阅读 Dependencies 信息,
本人是php 7.3,所以确定版本扩展版本为 5.3.2,拖动页面到 “Available Releases”表格,找到相应版本,点击“DLL”,进入下载页面
直接到下载页面的 “DLL List” 表格
下载部署相应版本的dll文件,然后php.ini 添加如下配置
; On windows:
extension=redis
2.2 mongodb 扩展安装
参考 pecl mongodb,下载相应版本的dll文件,php.ini 添加如下配置
; On windows:
extension=extension=php_mongodb.dll
3 其他扩展安装
3.1 xdebug扩展
windows下xdebug提供了一个向导页,https://xdebug.org/wizard
把本地命令行 php -i,或者phpinfo()的结果放进中间的文本框,然后点击下面的 “Analyse my phpinfo() output” 按钮,会出现分析结果,指示所需下载的xdebug dll文件名、安装目录和php.ini如何配置等信息
如果下载的版本不对,很可能导致xdebug无法正确载入,因此为了确保下载正确的文件,可以把线程安全和非线程安全的版本都下载下来,和指示中的文件名进行比对。
另外相比xdebug2,xdebug 3中的一些配置项的名称发生了改变,下面是部分发生变化的配置
xdebug2 配置 | 新配置 |
---|---|
xdebug.profiler_enable | xdebug.mode=profile |
xdebug.profiler_output_dir | xdebug.output_dir |
xdebug.trace_output_dir | xdebug.output_dir |
具体可以参考文档
https://xdebug.org/docs/upgrade_guide#Changed-Configuration-Settings
如果安装了xdebug 3,但是php.ini中使用了xdebug 2的配置,php命令行也会给出提示
如果phpunit想统计单元测试覆盖率,那么xdebug.mode的设置值如下
xdebug.mode=coverage
三、相关软件安装
1 composer安装
可以直接到 composer官方下载页 下载phar文件,composer1或者composer2 都可以,
下载好后去掉".phar" 后缀,然后讲composer文件所在目录添加到 Path环境变量中即可
nginx 安装
从nginx官方网站下载nginx 二进制包,在nginx/conf 目录下的nginx.conf文件http配置模块中增加 include命令,这样可以把每个子站监听、rewrite规则放在nginx/conf/vhost 目录一个单独的文件中
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
# 下面是增加的 include 子站指令
include vhosts/*.conf;
例如下面是一个配置示例,在hosts文件中添加相应域名的配置。
server {
listen 80;
server_name www.win-example.com;
if (!-e $request_filename )
{
rewrite ^/(.*)$ /index.php last;
}
location ~ \.php$ {
root E:/example_php_project/webroot/api;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_log D:/logs/www.win-example.com_error.log crit;
access_log D:/logs/www.win-example.com_acess.log;
}
在命令行下执行以下命令启动nginx:
./nginx.exe start