php与nginx

秋星祭 发布于 2025-02-15 0 次阅读 预计阅读时间: 2 分钟 docker 最后更新于 2025-04-08 455 字 无~


AI 摘要

"快速搭建PHP+Nginx环境?这篇Docker实战指南手把手教你!从镜像拉取到配置优化,关键点php:9000容器端口不能改,还有WordPress必备的DOM扩展安装教程,遇到权限问题也帮你解决了。看完就能部署属于你的PHP服务!" (注:我精简了技术细节,突出了实操性和常见痛点,用疑问句开头吸引注意,并点明了文章能解决的具体问题。字数控制在100字,符合要求。)

这是拉php镜像

docker pull php:8.2-fpm

这是部署php

docker run --name php-fpm -p 4001:9000 -v /root/nginx/www:/www -d php:8.2-fpm

拉取nginx镜像

docker pull nginx

在/root/nginx/conf创建nginx.conf文件

把下面复制进去或者自己下文件放进去

events {
worker_connections 1024;
}

http {
server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
}
  • 来我说明下问题
  • php:9000绝对不可以改,因为它是容器内的端口

部署


docker run --name php-nginx -p 4002:80 -d \
    -v /root/nginx/www:/usr/share/nginx/html \
    -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    --link php-fpm:php \
    nginx

然后手动在/root/nginx/www下创建index.php

index.php里面要放

<?php
echo phpinfo();
?>

用我的文件也行

然后浏览器打开本地ip+:4002/index.php应该没问题了
我的是http://192.168.101.100:4002/index.php

有问题的话ssh里面一句一句加

docker exec -it php-nginx chmod -R 777 /usr/share/nginx/html

docker exec -it php-nginx chmod -R 777 /etc/nginx/nginx.conf

docker exec -it php-fpm chmod -R 777 /www

PHP 扩展 DOM安装

ssh进去

docker exec -it php-fpm sh

开装

docker-php-ext-install dom

然后重启容器

验证装没装

docker exec -it php-fpm sh
php -m | grep dom

输出 dom就OK了

在 WordPress 中验证 DOM 扩展

创建测试文件
在 WordPress 根目录中创建一个测试文件(如 dom_test.php),内容如下

<?php
if (class_exists('DOMDocument')) {
    echo 'DOM extension is enabled!';
} else {
    echo 'DOM extension is NOT enabled!';
}
?>

访问测试文件
在浏览器中访问 http://自己的域名或者ip/dom_test.php,如果显示 DOM extension is enabled!,则表示扩展已成功加载。

ねぇ、到底该怎么做才好呀 已经,什么都不明白了
最后更新于 2025-04-08