[我所不知道的技术细节] PHP Hello World #WebServer #PHP #XAMPP

https://images.pexels.com/photos/34600/pexels-photo.jpg?cs=srgb&dl=html-php-web-wordpress-34600.jpg&fm=jpg

摄影师:Negative Space,连结:Pexels

哈啰,我们又见面了,最近因为工作的关係,需要用到 PHP(其实是因为我最近在各种后端面试 ,有些考试要用到,只好来恶补一下XD),那么今天就来记录一下我的 PHP 之旅,类此够~

1. PHP 是什么?

PHP 是一种程式语言,常被用来 架网站,相信即使不是后端工程师或软体人,也会多多少少听过 PHP 这个名词,因为知名的部落格软体 Wordpress 就是用 PHP 写的,架 Wordpress 时,也需要用到 phpMyAdmin 的资料库管理工具,由此可知,是个曝光度很高的程式语言呢~

http://img2.58codes.com/2024/20124548blLjCCfmis.png

PHP 的 Wiki 页面

PHP 这个程式语言,在我的印象中(是个人立场,不代表任何人的意见),是个比较老派的语言,跟 Java 有得比,事实上,在发展历史中,也是大概 1995 年左右的产物,也就是我刚出生的时候?,然后,就在我开始学习后端之后,才知道有 Laravel 这个近期崛起的后端框架,这个框架就是使用 PHP,才让 PHP 又红起来,但不要问我其他的,我也只是在 Hello World 等级的人而已 QQ

2. 怎么开始用 PHP ?

PHP 官网看,现在更新到 7.2.307.3.177.4.5,而且最后更新还是一个月前的事而已,是个还很活跃的程式语言 ~

http://img2.58codes.com/2024/2012454835Aw9tIT9v.png

PHP 官方网站

2.1 在 macOS 安装 PHP

这相对 Windows 用户来讲,是比较简单的安装方法,可以参考 (2019) macOS 上安装 PHP 语言 | OA Wu's Blog,简单来说只要一行,$ sudo brew install php 就可以安装 homebrew 上的最新版本啰,可以用 $ php -v 来检查有没有安装成功,也可以看到你安装的 php 是哪一个版本哦。

2.2 在 Windows 10 安装 PHP

Windows 可以直接在官网下载你想要的 PHP 版本,但还要额外修改一些设定(像是 php.ini 等等),有点麻烦,我自己也没有很熟,可以参考 (2017) 在 win10 上安装与设定 PHP ( IIS) | 未老人的手扎

3. 所以 PHP Hello World 呢?

别急,这不就来了吗,先用你惯用的文字编辑器打下:

<?phpecho "Hello World, my dear PHP";?>

存档为 helloworld.php,接下来就是要执行了,打开你的 Terminalcmd,切换到你存放 helloworld.php 的资料夹,执行 $ php helloworld.php,就会跑出

Hello World, my dear PHP

在此,你已经成功写下第一支 PHP 程式,但,这应该不是你想要的吧 ?!

4. 可是我想看到 PHP 在网页上执行啊!

没错,相信大家写 PHP 大部分就是为了要架伺服器用的吧,这时候可不只是写个 php 档案就能让其他人能使用,你还需要架设 Web Server(你可能听过 ApacheNginx 之类的名词),来把你的 PHP code 放到网页上执行。

你可以把 Web serverPHP code 的关係,想像成下图,使用者(client) 使用自己的装置(电脑、手机等),透过 httphttps 的协定,将请求(request)传送到我们的 Web server,然后 Web server 判断使用者想要的是哪个路径或页面,再由 Web server 去把直译后的 php code 转成 html 档,再回传(response) 给使用者的浏览器,来渲染(render) 成你在浏览器看到的网页样子。

http://img2.58codes.com/2024/20124548ttNphvypA3.png

在这里,你有几种选择来执行你的 PHP 程式到网页上,第一种是「自己安装 Apache 等等的 Web server」,优点是你可以把 Apache 抽换成 Nginx 或其他的 Web Server,缺点是你要自己设定、维护和管理;第二种是使用 PHP 框架,像是 Laravel 可以直接帮你把 PHP code 跑起来,开发很方便;第三种是「安装懒人包 XAMPP」,就算不使用框架,也可以把纯 PHP code 放到网页上。

针对第一种方法,可以参考 (2016) 在Mac设定Apache、PHP、MySQL | Medium,这样的做法,比较适合对 Apache、PHP、MySQL 都熟的人,才比较不会出错,不然只是想要简单写个 PHP 而已,还要先去了解 ApacheMySQL 的运作跟指令,实在是很烦。

第二种方法,框架总是把细节包的好好的,开发者可以很专注在 开发 这件事情上,相对的坏处就是,被保护的太好了,实际上的运作细节可以完全不知道,长期来看,安捏恩汤,但如果你已经了解整个运作原理,使用框架来加速开发没什么不好的。

4.1 使用 XAMPP 比较纯、简单

我只是想要简单跑个 PHP 而已,还没有想要碰到框架,但要自己维护 apache 的服务实在有点麻烦,所以我在这边选择使用 XAMPP,你可以把 XAMPP 想成一种 PHP 的网页开发懒人包,XAMPP 的每个字母都有意思,其中 X 我猜是 mixed 的意思,而 A 代表 ApacheM 代表 MariaDB,然后两个是 PHPPerl,看到这里应该能想像懒人包的概念了,也就是把网页开发需要的东西都包给你。

http://img2.58codes.com/2024/20124548A7tXTZ5BPx.png

使用 XAMPP 的话,只要简单点个 Start 按钮、再到 Volumesmount 按钮,整个服务就跑起来了,再点 Go to Application 按钮,就有 XAMPPHello World 页面。

使用 XAMPP,我这边的预设是 http://192.168.64.2 这个网址,看这个 IP 也知道这是 local IP,也就是说把这串网址,传给你朋友,他会很傻眼 XD,因为他连不到。

http://img2.58codes.com/2024/201245480KhrA6TAaC.png

4.2 那要怎么在 XAMPP,执行我自己的 PHP code ?

XAMPPVolumes 页面,点 Explore,然后找到 htdocs 资料夹

http://img2.58codes.com/2024/20124548gcVb3tacvl.png

htdocs 就是你的 PHP source code 的专案资料夹了,ht 代表 host(主机) 的意思,docs 代表 documents(文件),点进去!你会发现 index.php,这就是现在你的网页的首页,里面长这样:

<?phpif (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {$uri = 'https://';} else {$uri = 'http://';}$uri .= $_SERVER['HTTP_HOST'];header('Location: '.$uri.'/dashboard/');exit;?>Something is wrong with the XAMPP installation :-(

我们就直接把里面改成这样:

<?phpecho "<h1>Hello World, PHP with XAMPP</h1>";echo "只是想跑个 php 这么麻烦!";?>

ps. 在 php 内,可以写 html 的语法 tag 唷~

所以再回到刚点击 Go to Application 的那个网页,重新整理之后

http://img2.58codes.com/2024/20124548Kma1bzcJzf.png

就可以看到我们自己写的 PHP 程式拉 ~

4.3 那么如果想创一个页面是 http://192.168.64.2/hello_world/ 呢?

在使用 XAMPP 的情况下,routing 这件事是需要自己手动来的 XD,你可以透过在 htdocs/ 这个资料夹下,再创一个叫做 hello_world 的资料夹,然后在 hello_world 的资料夹中,再新增一个叫做 index.php 的档。

所以现在的目录架构是这样的:

`htdocs/`├ `index.php`├ ...└ `hello_world/`    └ `index.php`

如果说 hello_world/index.php 是这样的:

<?phpecho "<h1>这是第二层的 Hello World</h1>";?>

跑起来就是这样

http://img2.58codes.com/2024/20124548og9qEPBo5E.png

总结

相信你看到这里,会跟我有一样的感受,怎么跑个 PHP 这么麻烦啊!但其实麻烦的不在 PHP,而是「透过网页执行 PHP 」,这件事情才是麻烦,相同原理,如果今天我不用 Django 的话,我想要单纯透过网页执行 Python 也是一样的麻烦,重点在于 Web Server 的观念理解,还有 Web Server 的操作,但不得不说,框架真的太方便了。

好的,讲这么多,都还没开始 PHP 语法呢 ~

我是 RS,这是我的 不做怎么知道系列 文章,我们 下次见。


喜欢我的文章吗? 赶快来看看我都发了什么文章吧:我的文章目录欢迎阅读我的上一篇: [原来后端要知道] 怎么实作前后端分离? #Vue.js #Django #WebAPI欢迎阅读我的下一篇: [我所不知道的技术细节] 如何保障你辛苦写的程式码? #opensource #license #github

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章