注意:该篇文章的内容仅适用于 LAMP 环境

系统环境

标题 版本 备注
系统版本 ubuntu 22.04.3 LTS (Jammy Jellyfish) -
内核版本 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux -
PHP v8.1.8 -

PHP 简介

概述

PHP(Hypertext Preprocessor,超文本预处理器)是一种通用开源脚本语言,尤其适用于 Web 开发并可嵌入 HTML 中使用。PHP 的语法借鉴吸收 C 语言、Java 和 Perl 等流行计算机语言的特点,易于一般程序员学习。

特点

  • 易学易用:PHP 语法简洁,与 HTML 代码可以很好地混合在一起,学习曲线平缓。
  • 跨平台:PHP 可以运行在 Windows、Linux、Mac 等多种操作系统上。
  • 开源免费:PHP 是开源软件,可以免费使用和分发。
  • 强大的功能:PHP 支持多种数据库、文件操作、网络编程等功能,可以满足各种 Web 开发需求。

应用场景

PHP 广泛应用于 Web 开发领域,可以用于开发各种类型的网站,例如:

  • 动态网站:PHP 可以动态生成页面内容,根据用户输入提供不同的响应。
  • 内容管理系统:PHP 可以用于开发内容管理系统 (CMS),例如 WordPress、Joomla 等。
  • 电子商务平台:PHP 可以用于开发电子商务平台,例如 Magento、PrestaShop 等。
  • 社交网络:PHP 可以用于开发社交网络,例如 Facebook、Twitter 等。

学习资源

总结:PHP 是一种功能强大、应用广泛的 Web 开发语言,是初学者学习 Web 开发的不错选择。

PHP 安装

注意:以下操作都在 root 用户下执行

1.安装必要的依赖包:

1
apt install -y sqlite3  libsqlite3-dev libbz2-dev libonig-dev systemtap-sdt-dev libcurl4-openssl-dev g++ libedit-dev libtidy-dev

2.从 php 官方站点下载 php8.1 的源码包到 /usr/local/src/ 目录下:

1
wget -O /usr/local/src/php-8.1.8.tar.gz https://www.php.net/distributions/php-8.1.8.tar.gz

3.将下载好的文件解压在下载目录

1
tar -zxf /usr/local/src/php-8.1.8.tar.gz -C /usr/local/src/

4.进入解压目录:

1
cd /usr/local/src/php-8.1.8/

5.配置 php 的 configure 参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
./configure \
--disable-option-checking \
--prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--bindir=/usr/local/php/bin \
--sbindir=/usr/local/php/sbin \
--libexecdir=/usr/local/php/libexec \
--sysconfdir=/usr/local/php/etc \
--sharedstatedir=/usr/local/php/com \
--localstatedir=/usr/local/php/var \
--libdir=/usr/local/php/lib \
--includedir=/usr/local/php/include \
--datadir=/usr/local/php/share \
--infodir=/usr/local/php/info \
--mandir=/usr/local/php/man \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-fpm-system \
--enable-phpdbg \
--enable-gcov \
--with-layout=GNU \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--enable-libgcc \
--enable-dtrace \
--with-openssl=/usr \
--with-openssl-dir=/usr \
--with-pcre-dir=/usr \
--with-pcre-jit=/usr \
--with-zlib=/usr \
--enable-bcmath \
--with-bz2=/usr \
--enable-calendar \
--with-curl=/usr \
--enable-dba \
--enable-exif \
--enable-ftp \
--with-gd \
--with-jpeg \
--with-freetype \
--enable-gd-jis-conv \
--with-gettext=/usr \
--enable-intl \
--enable-mbstring \
--enable-pcntl \
--with-libedit=/usr \
--with-readline=/usr \
--with-recode=/usr \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-tidy=/usr \
--enable-wddx \
--enable-zend-test \
--enable-zip \
--enable-mysqlnd \
--enable-maintainer-zts \
--with-mysqli \
--with-pdo-mysql

6.执行 make 进行编译:

1
make

7.执行 make install 进行安装:

1
make install

LAMP 配置

apache 配置

1.编辑 apache 主配置文件 /usr/local/apache2/conf/httpd.conf ,确保该配置文件有下面这一行 php 模块的配置(自动添加的,没有的话就手动添加下):

1
LoadModule php_module         modules/libphp.so

2.依旧是 apache 主配置文件 /usr/local/apache2/conf/httpd.conf,找到 DirectoryIndex index.html 将其修改成 DirectoryIndex index.html index.php

1
sed -i 's@DirectoryIndex index.html@DirectoryIndex index.html index.php@' /usr/local/apache2/conf/httpd.conf

3.依然是 apache 主配置文件 /usr/local/apache2/conf/httpd.conf ,找到 AddType application/x-gzip .gz .tgz 这一行,在下面添加以下 2 行配置:

1
2
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

以上配置好后,保存修改并退出!

4.编辑 apache 虚拟主机配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf, 在最顶部创建虚拟主机,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## lamp 虚拟主机
<VirtualHost *:80>
# 指定了该虚拟主机的根目录为 /data/websites/apache/site06 ,即网站文件的存放路径。
DocumentRoot "/data/websites/apache/site06"
# 设置了虚拟主机的域名为 localhost ,表示通过该域名可以访问该虚拟主机配置的网站。
ServerName localhost

#ServerAlias apache03.abc.com apache06.abc.com apache05.abc.com
# 这个指令 AddDefaultCharset utf-8 用于向Apache的配置中添加默认字符集为UTF-8。
# 当浏览器没有指定字符集时,服务器会使用UTF-8作为默认字符集来发送内容给客户端。
# 这有助于确保网站内容能够正确地显示在各种浏览器中,并且支持Unicode字符。
AddDefaultCharset utf-8
# 指定了错误日志文件的路径为 logs/site06_error_log ,用于记录该虚拟主机的错误日志信息。
ErrorLog "logs/site06_error_log"
# 指定了访问日志文件的路径为 logs/site06_access_log ,使用 common 格式记录访问日志信息。
CustomLog "logs/site06_access_log" common
# 针对 /data/websites/apache 目录的访问权限设置。 不配置会出现 403
<Directory "/data/websites/apache/site06">
# 设置了对 /data/websites/apache 目录下的所有请求都允许访问。
# Require all granted 表示允许所有请求访问该目录,是Apache 2.4版本中的访问控制设置方式。
Require all granted
</Directory>
</VirtualHost>

5.执行命令 apachectl -t 检测 php 配置,如果无误则重启下 apache 服务:

1
apachectl -t && apachectl restart

创建 web 资源

1.创建 php web 目录:

1
mkdir -p /data/websites/apache/site06

2.在上面创建的目录中创建 index.php 文件,内容为:

1
2
3
<?php
echo phpinfo();
?>

3.打开浏览器,输入服务器IP,如下图: