我试图建立一个PHP网站,我想测试我的PHP文件,而不是上传到我的主机。基本上是在上传之前先在我自己的机器上测试。我怎么做呢?


当前回答

即使您的机器上有现有的服务器,也可以使用Docker。通过docker Run从任何终端运行一行代码:

docker run --name=php -d -it -p 80:80 --mount type=bind,source='/absolute/path/to/your/php/web/root/folder/',target=/app webdevops/php-nginx-dev

现在,您将有一个名为php的运行容器在本地主机端口80上为请求提供服务。您应该能够在使用url http://127.0.0.1的任何浏览器中看到您的php脚本

注:

If you don't have Docker installed, instructions for Debian/Ubuntu and Windows 10+ are at the end. It can be installed on Windows 7 but it's quite annoying and not worth it. For windows 7, if you must, I'd just install Uniserver or XAMPP or something like that. You can confirm that the container is live by running docker ps in a terminal on the host machine. In order to keep your app/code modifications after the container is terminated/removed, the web root is bound to the folder where you ran the docker run command. To change it, specify the path to your local folder in the --mount source='[/local/path]' parameter. Note: Because the folder is bound to the container, changes you make in the container will also be made in the host folder. Logs can be viewed using the following command (--follow is optional, ctrl+c to exit): docker logs php --follow The web root folder in the container is /app. This may be helpful if you don't need to save anything and don't feel like specifying a bind mount in the docker run command. The port is specified using the -p [host port]:80 parameters. You may have to explicitly specify -p 80:80 in order to be able to connect to the container from a web browser (at least on Windows 10). To access the container's bash terminal run this from the host machine (type exit to return to host): docker exec -it php /bin/bash You can install packages in the container's bash terminal the same way that you would on a native Debian/Ubuntu box (e.g. apt install -y nano). Composer is already installed (run composer -v from container's terminal to inspect) To launch an additional container, specify a different host port and container name using the --name=[new_name] and -p [host port]:80 parameters. If you need a database or other server, do the same thing with a docker image for MySQL or MariaDB or whatever you need. Just remember to bind the data folder to a host folder so you don't lose it if you accidentally delete your docker image(s). How to install Docker: Debian/Ubuntu as root (or add sudo before each of these commands): apt-get update apt install -y ca-certificates curl gnupg lsb-release mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null chmod a+r /etc/apt/keyrings/docker.gpg apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin service docker start systemctl enable docker Windows 10+ (tested on 10, should work on >10): Use Chocolatey, a command-line package manager for Windows. Chocolatey also has a gui if you insist. Once installed, run: choco install -y docker-desktop Mac, Chromebook, etc: You are alone. But we believe in you.

其他回答

安装XAMPP。如果你用的是MS Windows, WAMP也是一种选择。

即使您的机器上有现有的服务器,也可以使用Docker。通过docker Run从任何终端运行一行代码:

docker run --name=php -d -it -p 80:80 --mount type=bind,source='/absolute/path/to/your/php/web/root/folder/',target=/app webdevops/php-nginx-dev

现在,您将有一个名为php的运行容器在本地主机端口80上为请求提供服务。您应该能够在使用url http://127.0.0.1的任何浏览器中看到您的php脚本

注:

If you don't have Docker installed, instructions for Debian/Ubuntu and Windows 10+ are at the end. It can be installed on Windows 7 but it's quite annoying and not worth it. For windows 7, if you must, I'd just install Uniserver or XAMPP or something like that. You can confirm that the container is live by running docker ps in a terminal on the host machine. In order to keep your app/code modifications after the container is terminated/removed, the web root is bound to the folder where you ran the docker run command. To change it, specify the path to your local folder in the --mount source='[/local/path]' parameter. Note: Because the folder is bound to the container, changes you make in the container will also be made in the host folder. Logs can be viewed using the following command (--follow is optional, ctrl+c to exit): docker logs php --follow The web root folder in the container is /app. This may be helpful if you don't need to save anything and don't feel like specifying a bind mount in the docker run command. The port is specified using the -p [host port]:80 parameters. You may have to explicitly specify -p 80:80 in order to be able to connect to the container from a web browser (at least on Windows 10). To access the container's bash terminal run this from the host machine (type exit to return to host): docker exec -it php /bin/bash You can install packages in the container's bash terminal the same way that you would on a native Debian/Ubuntu box (e.g. apt install -y nano). Composer is already installed (run composer -v from container's terminal to inspect) To launch an additional container, specify a different host port and container name using the --name=[new_name] and -p [host port]:80 parameters. If you need a database or other server, do the same thing with a docker image for MySQL or MariaDB or whatever you need. Just remember to bind the data folder to a host folder so you don't lose it if you accidentally delete your docker image(s). How to install Docker: Debian/Ubuntu as root (or add sudo before each of these commands): apt-get update apt install -y ca-certificates curl gnupg lsb-release mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null chmod a+r /etc/apt/keyrings/docker.gpg apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin service docker start systemctl enable docker Windows 10+ (tested on 10, should work on >10): Use Chocolatey, a command-line package manager for Windows. Chocolatey also has a gui if you insist. Once installed, run: choco install -y docker-desktop Mac, Chromebook, etc: You are alone. But we believe in you.

如果你想要一个适用于任何操作系统的通用本地开发堆栈,你可以从不同的PHP、MySQL和Web服务器版本中进行选择,并且不害怕使用Docker,你可以选择devilbox。

devilbox是一个现代的、高度可定制的dockerized PHP堆栈,支持完整的LAMP和MEAN,可以在所有主要平台上运行。主要目标是轻松切换和组合本地开发所需的任何版本。它支持无限数量的项目,自动为其创建vhosts和DNS记录。电子邮件全能和流行的开发工具也将为您服务。配置是不必要的,因为所有的东西都是预先设置的大规模虚拟主机。

让它运行起来非常简单:

# Get the devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox

# Create docker-compose environment file
$ cp env-example .env

# Edit your configuration
$ vim .env

# Start all containers
$ docker-compose up

链接:

Github: https://github.com/cytopia/devilbox 网站:http://devilbox.org

AppServ是一个在Windows中运行的小程序:

Apache PHP MySQL phpMyAdmin

它还将为Apache提供启动和停止按钮。我觉得这很有用。

如果你有一台本地机器,有正确的软件:支持PHP的web服务器,没有理由你不能像你描述的那样做。

目前我正在一台Windows XP机器上使用XAMPP,(在家里)使用Kubuntu和LAMP堆栈。