找回密码
 立即注册
搜索
查看: 64|回复: 0

[linux系统] 如何在 Debian 10 上搭建 LAMP 网站环境

[复制链接]

64

主题

0

回帖

2万

积分

超级版主

积分
20208

突出贡献优秀版主论坛元老

发表于 2024-12-4 15:23:24 | 显示全部楼层 |阅读模式
目前,很多网站都以Linux系统作为服务器,例如企业级Linux系统红帽企业版RHEL,CentOS,OpenSUSE等等。但也有很多人选择Debian系统作为服务器的发行版之一。Debian系统也是目前主流VPS提供商在提供的VPS系统中经常支持的系统之一。

本教程主要讲解如何在Debian 10上搭建LAMP环境,让你轻松部署PHP开发的web程序。

前提条件

拥有自己的域名和服务器。

1、域名

国内,考虑到备案,建议选择阿里云,腾讯云等知名域名和云服务提供商。国外域名可以考虑namesile。

2、服务器

如果你购买VPS服务器,建议购买国内知名的VPS提供商,例如:阿里云,腾讯云。如果要购买国外VPS,可以考虑vultr和搬瓦工都非常不错。

步骤一、安装PHP环境

PHP的安装也很简单,只需要一条命令就可以搞定。由于要使用apache作为web服务运行PHP程序,使用mysql作为数据库,所以我们也需要安装php的apache和mysql模块。

  1. sudo apt update
复制代码
  1. sudo apt install php libapache2-mod-php php-mysql
复制代码

注意:默认的情况下,php安装的是Debian10的软件仓库中最新版本。如果你需要安装指定版本的PHP,你可以通过以下方式:

  1. sudo apt update
复制代码
  1. sudo apt install php7.3
复制代码

当然其对应的模块也需要指定版本,例如php7.3-mysql,一般常用以下模块:

  1. php7.3-cli
复制代码
  1. php7.3-common
复制代码
  1. php7.3-curl
复制代码
  1. php7.3-gd
复制代码
  1. php7.3-json
复制代码
  1. php7.3-mbstring
复制代码
  1. php7.3-mysql
复制代码
  1. php7.3-xml
复制代码

步骤二、安装Apache提供web服务

在 Debian10 发行版中,Apache软件包和服务称为apache2。安装Apache非常简单,命令如下:

  1. sudo apt update
复制代码
  1. sudo apt install apache2
复制代码

安装完成后,apache2服务默认自动运行,可以通过以下命令查看:

  1. sudo systemctl status apache2
复制代码

命令执行后,你会看到类似如下的输出。

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
   Active: active (running) since Sat 2021-04-22 13:55:49 PDT; 21s ago
   ...

如果你的Debian 10上默认ufw开启了防火墙,你需要将HTTP (80) 和 HTTPS (443)端口放开,以便外部能访问apache的web服务。

可以通过以下命令配置防火墙允许Apache服务:

  1. sudo ufw allow 'Apache Full'
复制代码

以上这些完成后,你可以通过浏览器来验证Apache提供的web服务是否可以正常访问。你需要在浏览器中输入你的服务器地址,如果一切正常,你将会看到如下的显示:

debian10-apache-web-ok.jpg

截止现在,我们将PHP和Apache都已经安装到了Debian 10服务器,这是我们可以尝试下PHP文件是否可以正常执行显示。

首先,进入/var/www/html目录,创建info.php文件,使用vim编辑info.php内容如下:

  1. <p>cd /var/www/html</p><p>sudo touch info.php</p><p>sudo vim info.php</p>
复制代码

在info.php文件中输入以下内容:

  1. <p><?php</p><p>phpinfo();</p>
复制代码

在浏览器中输入http://debian10_server_ip/info.php这里的debian10_server_ip是你Debian10服务器的IP地址。

正常情况下,你将会看到如下结果:

debian10_php_apace2_featured.jpg

步骤三、安装MySQL的替代实现 MariaDB

在 Debian 10 的默认软件源中并不包含 MySQL 软件包,它已被 MariaDB 替代。

MariaDB的安装

这里以MariaDB为例进行讲解,如果你需要安装MySQL可以参考如何在 Debian 10 上安装 MySQL。

  1. sudo apt update
复制代码
  1. sudo apt install mariadb-server
复制代码

安装完成后,MariaDB服务将会自动启动,你可以通过systemctl的如下命令查看。

  1. sudo systemctl status mariadb
复制代码

如果运行正常,你将会看到类似如下内容:

● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-04-22 14:36:28 PDT; 19min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
Main PID: 4509 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 2359)
   Memory: 78.6M
   CGroup: /system.slice/mariadb.service
           └─4509 /usr/sbin/mysqld

如果服务没有启动,你可以尝试用使用如下命令进行启动:

  1. sudo systemctl start mariadb
复制代码

MariaDB数据安装完成后,为提升数据库的安全性,建议使用如下命令进行安装加固:

  1. sudo mysql_secure_installation
复制代码

命令执行后,你将会在终端中得到提示,基本上你一路输入Y即可。

  1. <p>...</p><p>Enter current password for root (enter for none):</p><p>...</p><p>Set root password? [Y/n] Y</p><p>New password: </p><p>Re-enter new password: </p><p>...</p><p>Remove anonymous users? [Y/n] Y</p><p>...</p><p>Disallow root login remotely? [Y/n] Y</p><p>...</p><p>Remove test database and access to it? [Y/n] Y</p><p>...</p><p>Reload privilege tables now? [Y/n] Y</p><p>...</p><p>Thanks for using MariaDB!</p>
复制代码

默认情况下,MariaDB根用户使用unix_socket身份验证插件,该插件在调用mysql客户端工具时会检查有效的用户ID。

这意味着仅当您以系统root身份调用mysql命令或通过在命令前添加sudo时,才可以以root用户身份连接到MariaDB服务器。

为了提高安全性,建议保留默认的身份验证插件,并允许root用户仅通过Unix套接字进行身份验证。

如果要将根身份验证更改为经典身份验证,可以在服务器上进行如下操作:

  1. sudo mysql
复制代码

然后执行如下SQL。

  1. ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;
复制代码
  1. ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_root_passwd';
复制代码

这里的your_root_passwd就是你设置的root账号密码。以上设置完成后,你可以通过如下命令在终端中登录mysql。

  1. mysql -u root -p
复制代码

数据库账号创建

如果网站使用,不建议应用直接使用root账号,建议为不同的应用创建对应的数据库以及账号。

创建数据库和对应长号的SQL如下,这里以创建linux265数据库为例:

  1. create database linux265;
复制代码
  1. create user 'newuser'@'localhost' IDENTIFIED BY 'user_password';
复制代码

注意:这其中的newuser是你要创建的数据库账号,user_password是该数据库账号的密码,使用时替换为你自己实际需要的即可。

可以通过以下sql查看已经创建的数据库:

  1. show databases;
复制代码

你会看到类似如下的输出:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| linux265           |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)

当然如果你的应用程序不和数据库在同一个主机双,你可以在数据库主机上执行SQL时这样创建,如下:

  1. CREATE USER 'newuser'@'192.168.0.5' IDENTIFIED BY 'user_password';
复制代码

这里的192.168.0.5就是数据库允许使用newuser账号来访问的主机IP。

如果要允许任何客户端IP访问数据库,可以通过以下SQL创建:

  1. CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';
复制代码

数据库账号权限分配

数据库创建完成后,我们需要给账号赋权限。数据库常用的权限有以下几种:

  • ALL PRIVILEGES –向用户帐户授予所有特权。
  • CREATE -允许用户帐户创建数据库和表。
  • DROP -允许用户帐户删除数据库和表。
  • DELETE -允许用户帐户从特定表中删除行。
  • INSERT -允许用户帐户将行插入到特定表中。
  • SELECT –允许用户帐户读取数据库。
  • UPDATE -允许用户帐户更新表行。


数据库赋权的SQL语法如下:

  1. GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';
复制代码

通过以下SQL语句可以给账号分配linux265数据库的所有权限。

  1. GRANT ALL PRIVILEGES ON linux265.* TO 'linux265'@'localhost';
复制代码

更多关于MySQL/MariaDB数据库创建用户赋权操作可以参考如何从命令行管理MySQL数据库和用户。

原文链接:https://linux265.com/news/7436.html

手机版|Discuz! X

GMT+8, 2024-12-22 09:43 , Processed in 0.108545 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表