您的位置 首页 php

如何搭建一个属于自己的PHP服务器


1.安装 Apache 服务器
  apt update && apt install apache2  
ac5857cf1ebb412ab15d9193b3a5cc33

安装完成后需要手动启动 apache 服务

fec9f343423245379cf4aaecb192eae8

测试 Apache,在浏览器输入服务器IP 地址,如下图所示,说明 Apache 安装成功。(阿里云等需要在云控制面板打开80端口才能访问)

5247c776f66f48a7a9c206f10fbfddba

以上页面详细介绍了 debian 发行版 Linux 中 Apache 基本信息,其中: Apache 根目录: /var/www/html Apache 配置目录和文件: /etc/apache2:Apache 主配置目录, Apache 所有配置文件均在此目录下; /etc/apache2/apache2.conf:主配置文件,可配置 Apache 全局配置; /etc/apache2/ports.conf:端口配置文件。默认情况下,当启用提供 SSL 功能的模块时,Apache 监听端口 80,并在端口 443 上进行监听。 其它文件略。 Apache 日志文件: /var/log/apache2/access.log:服务请求日志; /var/log/apache2/error.log:服务错误日志。 Apache 基本操作: 服务启动:/etc/init.d/apache2 start 服务停止:/etc/init.d/apache2 stop 服务重启:/etc/init.d/apache2 restart 部分 Linux 安装 Apache 后可能出现服务正常运行,相应端口正常打开,但 其它主机无法访问情况,此现象一般是因为系统防火墙未开放相应服务端口。

以修改端口为例修改配置文件

首先打开/etc/apache2/ports.conf文件,然后修改Listen的内容,最后需要重启apache生效

/etc/init.d/apache2 restart

阿里云安全组配置

5c0d39e3ad8f4be3a87e1442cabb145c

2.安装 MySQL/MariaDB

本示例采用 MariaDB 代替 MySQL。MariaDB 是 MySQL 的一个分支,现由开源 社区维护,采用 GPL 授权许可,其大部分语法与 MySQL 都相同。因 MySQL 被 Oracle 收购后有闭源的风险,大部分 Linux 组织均从其套件清单删除了 MySQL,并以 MariaDB 代替 MySQL,若一定要使用 MySQL,可通过下载安装包的方式手动安装 MySQL。

安装 MariaDB 服务

  sudo apt install mariadb-server sudo apt install mariadb-client  
4ddc1605b4e44339a098da254ebaed13

9a6a83fd0cc94a0f87598d79934c1dde

配置 Mariadb 的安全选项:

  sudo mysql_secure_installation  
ef2962a426b74a319afa4a88c1d8b206

此时系统会提示输入数据库 root 用户密码,因系统并未设置相应密码,此 时直接按提示回车即可。若提示错误,则 sudo /etc/init.d/mysql restart 命 令重启 mysql 服务并重新执行安全选项命令。 随后数据库会提示以下安全设置信息,一般设置数据库 root 用户密码即可, 其它选项按回车选择默认: 1、Enter current password for root (enter for none): 输入当前 root 的密码(因新数据库无密码,回车即可); 2、Set root password? [Y/n] 回车,默认为输入 Y; 3、New password: 输入新密码; 4、Re-enter new password 确认密码; 5、Remove anonymous users? [Y/n] 移除匿名用户; 6、Disallow root login remotely? [Y/n] 禁止 root 远程登录; 7、Remove test database and access to it? [Y/n] 移除测试数据库; 8、Reload privilege tables now? [Y/n] 重新加载权限表。

测试数据库,如图所示,若进入数据库则表示数据库安装成功。

  sudo  mysql -u root -p  
02ef6860ef9c4c2cb607404f4c4c33c4

3.安装PHP

安装 PHP 除了 PHP 应用程序外,还需安装 PHP 与 Apache、MySQL/MariaDB 相关扩展包,扩展包需与软件对应,本例中安装 php7.3 版本,对应扩展包可通 过以下命令模糊查询。

sudo apt-cache search php7

从 查 询 结 果 可 知 , php7.2 对 应 Apache 、 MySQL 扩 展 包 分 别 为 : libapahe2-mod-php7.2,php7.2-mysql。如下图所示为安装 PHP 相关软件包。

   sudo apt-get install php7.2 libapache2-mod-php7.2 php7.2-mysql  
d5912e0bee5a4dba883e0e2d1c07d782

PHP 安装完毕后需重启 Apache

   /etc/init.d/apache2 restart  
4.测试 PHP 页面

编辑测试文件,如下图所示,在“/var/www/html”目录下新建“test.php”文件,并输入如下图所示的测试代码

  <?php echo phpinfo();?>  

在浏览器中输入测试页面地址,并确认已安装组件,例如:

    
55fa97528ac0450c893f72917b085330

5.创建文件上传页面

文件上传功能由上传文件的 HTML 表单和文件上传脚本构成。 在“/var/www/html”目录下创建“upload.html”文件,编辑表单

  <!-- upload.html --> <html> <body> ​ <form action="upload.php" method="post" enctype="multipart/form-data"> <label for=" file ">Filename:</label> <input type="file" name="file" id="file" />  <br /> <input type="submit" name="submit" value="Submit" /> </form> ​ </body> </html>  

在“/var/www/html”目录下创建 “upload.php” 脚本文件,编写文件上传功能代码

  <!-- upload.php --> <?php // 允许上传的图片后缀 $allowedExts = array("gif", " jpeg ", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp);     // 获取文件后缀名 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800)   // 小于 200 kb && in_array($extension, $allowedExts)) {     if ($_FILES["file"]["error"] > 0)     {         echo "错误:: " . $_FILES["file"]["error"] . "<br>";     }     else     {         echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";         echo "文件类型: " . $_FILES["file"]["type"] . "<br>";         echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";         echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";                  // 判断当前目录下的 upload 目录是否存在该文件         if (file_exists("upload/" . $_FILES["file"]["name"]))         {             echo $_FILES["file"]["name"] . " 文件已经存在。 ";         }         else         {             // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下             move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);             echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];         }     } } else {     echo "非法的文件格式"; } ?> ​  

在目录下创建“upload”目录,用于保存上传的图片。

如下图所示,为上传文件页面。

d9191d659096463bb39af062d2e47938

上传成功的提示:

3831821faf6345c289f56fe1da6f26d6

文章来源:智云一二三科技

文章标题:如何搭建一个属于自己的PHP服务器

文章地址:https://www.zhihuclub.com/30499.shtml

关于作者: 智云科技

热门文章

网站地图