linux php环境搭建_搭建LAMP环境,并用PHP实现简单的图片上传功能

eddaaf43d0278be14dd0c51b2e90ccc2.png
前言:
Linux 操作系统在服务器领域具有广泛的应用。Web 服务是服务器领域中应 用最广泛的服务,常见 Web 服务有 WAMP(Windows+Apache+MySQL+PHP)和 LAMP(Linux+Apache+MySQL+PHP)架构,其中 Apache 是全世界最流行的 Web 服务软 件,此外,Web 服务软件 nginx,因其具有优秀的性能也受到越来越多的用户欢 迎。本文中,演示在 Linux 环境下搭建支持 PHP 等网页的 Web 服务平台,即 LAMP。 Linux 环境下搭建 Web 服务器有三种方式,一是在安装操作系统时勾选相应 服务组件;二是从网上下载或从 ISO 系统镜像包中拷贝安装包手动安装;三是在 在连接网络的的情况下在线安装。 本文以阿里云 Ubuntu 18.04 64 位操作系统为例安装LAMP,并用PHP实现简单的图片上传功能。

1.安装 Apache 服务器

apt update && apt install apache2

dd558b852f49a634380786ceae08f765.png

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

674ce5ca7b2970c284d85287600709c4.png

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

664943a1fc47dff4fd8bf06acd6077c6.png
以上页面详细介绍了 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生效 bash /etc/init.d/apache2 restart

d0b0d884f743b00ac4f534012892a599.png

阿里云安全组配置

07acf74ee119ec222ace15583003dc6d.png

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

ebf75d66d61745e8e9f1d957f13866e5.png

6f10c6a06b1f8d45542ff823271f4d09.png

配置 Mariadb 的安全选项:

sudo mysql_secure_installation

59428f464640b2e3cd5abbd958efbada.png
此时系统会提示输入数据库 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

686d0e2cdff930e7b3a3afabdbbc3a20.png

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

bffaa196160c34ec495ae7f7e8db8a88.png

PHP 安装完毕后需重启 Apache

/etc/init.d/apache2 restart

4.测试 PHP 页面

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

<?php echo phpinfo();?>

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

http://127.0.0.1/test.php

d13e6b75d907d09433ae068a889b4ce5.png

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”目录,用于保存上传的图片。

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

bddaf8ccbfc36aa86017bfe7b1df4a4a.png

上传成功的提示:

19208b6db2be399b73e3e994a0999a3f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值