灯 stack 是一个流行的开源 Web 开发平台,可用于运行和部署动态网站和基于 Web 的应用程序。 通常,LAMP 堆栈包括 Apache 网络服务器、MariaDB/MySQL 数据库、PHP/Python/Perl 编程语言。 LAMP 是 大号内克斯, 米咏叹调/米YSQL, 磷生命值/磷ython/磷呃。 本教程介绍如何安装 Apache、MySQL、PHP(LAMP 堆栈)在 Ubuntu 18.04 LTS 服务器中。
安装 ApacheMySQL, PHP (LAMP) 堆栈在 Ubuntu 18.04 LTS
出于本教程的目的,我们将使用以下 Ubuntu 测试箱。
- 操作系统 : Ubuntu 18.04.1 LTS 服务器版
- IP地址 : 192.168.225.22/24
1.安装 Apache 网络服务器
首先,使用命令更新 Ubuntu 服务器:
$ sudo apt update
$ sudo apt upgrade
接下来,安装 Apache 网络服务器:
$ sudo apt install apache2
检查是否 Apache Web 服务器是否正在运行:
$ sudo systemctl status apache2
示例输出为:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago Main PID: 2025 (apache2) Tasks: 55 (limit: 2320) CGroup: /system.slice/apache2.service ├─2025 /usr/sbin/apache2 -k start ├─2027 /usr/sbin/apache2 -k start └─2028 /usr/sbin/apache2 -k start Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server... Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
恭喜! Apache 服务已启动并运行!
1.1 调整防火墙允许 Apache 网络服务器
默认情况下,如果您在 Ubuntu 18.04 LTS 中启用了 UFW 防火墙,则无法从远程系统访问 apache Web 浏览器。 您必须按照以下步骤允许 http 和 https 端口。
首先,使用命令列出 Ubuntu 系统上可用的应用程序配置文件:
$ sudo ufw app list
样本输出:
Available applications: Apache Apache Full Apache Secure OpenSSH
如你看到的, Apache 和 OpenSSH 应用程序已安装 UFW 配置文件。 您可以使用“列出有关每个配置文件及其包含的规则的信息”ufw 应用信息“个人资料名称” 命令。
让我们看看 “Apache 满的” 轮廓。 为此,请运行:
$ sudo ufw app info "Apache Full"
样本输出:
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
如你所见, ”Apache 完整”配置文件包含启用到端口的流量的规则 80 和 443:
现在,运行以下命令以允许此配置文件的传入 HTTP 和 HTTPS 流量:
$ sudo ufw allow in "Apache Full" Rules updated Rules updated (v6)
如果您不想允许 https 流量,而只允许 http (80) 流量,请运行:
$ sudo ufw app info "Apache"
1.2 测试 Apache 网络服务器
现在,打开您的网络浏览器并访问 Apache 通过导航到测试页面 https://localhost/ 或者 https://IP 地址/.
Apache 测试页面
如果您看到类似上面的屏幕,那么您就可以开始了。 Apache 服务器正在工作!
2.安装MySQL
要在 Ubuntu 上安装 MySQL,请运行:
$ sudo apt install mysql-server
使用命令验证 MySQL 服务是否正在运行:
$ sudo systemctl status mysql
样本输出:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago Main PID: 3423 (mysqld) Tasks: 27 (limit: 2320) CGroup: /system.slice/mysql.service └─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server... Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.
mysql正在运行!
2.1 设置数据库管理用户(root)密码
默认情况下,MySQL 根 用户密码为空。 您需要通过运行以下脚本来保护您的 MySQL 服务器:
$ sudo mysql_secure_installation
系统会询问您是否要设置 验证密码插件 或不。 此插件允许用户为数据库凭据配置强密码。 如果启用,它将自动检查密码强度并强制用户仅设置足够安全的密码。 禁用此插件是安全的. 但是,您必须为数据库凭据使用强且唯一的密码。 如果不想启用此插件,只需按任意键跳过密码验证部分并继续其余步骤。
如果你的答案是 是的,您将被要求选择密码验证的级别。
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No y
可用的密码验证是 低的, 中等的 和 强的. 只需输入适当的数字(0 表示低密码,1 表示中等密码,2 表示强密码),然后按 ENTER 键。
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
现在,输入 MySQL root 用户的密码。 请注意,您必须使用 mysql root 用户的密码,具体取决于您在上一步中选择的密码策略。 如果您没有启用该插件,只需使用您选择的任何强且唯一的密码。
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 50 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
输入两次密码后,您将看到密码强度(在我们的例子中是 50)。 如果您可以,请按 Y 继续使用提供的密码。 如果对密码长度不满意,请按任何其他键并设置强密码。 我对我当前的密码没问题,所以我选择了 是的.
对于其余的问题,只需键入 是的 并按 ENTER。 这将删除匿名用户,禁止 root 用户远程登录并删除测试数据库。
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
就是这样。 MySQL root 用户的密码已设置。
2.2 更改 MySQL root 用户的认证方式
默认情况下,MySQL root 用户设置为使用 auth_socket MySQL 5.7 和 Ubuntu 上的更新版本中的插件。 尽管它增强了安全性,但当您使用任何外部程序访问数据库服务器时,它也会使事情变得复杂,例如 example phpMyAdmin。 要解决此问题,您需要将身份验证方法从 auth_socket 到 mysql_native_password. 为此,请使用以下命令登录到 MySQL 提示符:
$ sudo mysql
在 mysql 提示符下运行以下命令,查找所有 mysql 用户帐户的当前身份验证方法:
SELECT user,authentication_string,plugin,host FROM mysql.user;
样本输出:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec)
如您所见,mysql root 用户使用 auth_socket
用于身份验证的插件。
将此身份验证更改为 mysql_native_password 方法,在 mysql 提示符下运行以下命令。 不要忘记更换 “密码” 使用您选择的强大且唯一的密码。 如果您启用了验证插件,请确保您使用了基于当前政策要求的强密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
使用命令更新更改:
FLUSH PRIVILEGES;
现在再次使用命令检查身份验证方法是否更改:
SELECT user,authentication_string,plugin,host FROM mysql.user;
样本输出:
好的! 现在 mysql root 用户可以使用密码进行身份验证以访问 mysql shell。
Exit 从 mysql 提示符:
exit
3.安装PHP
要安装 PHP,请运行:
$ sudo apt install php libapache2-mod-php php-mysql
安装PHP后,创建 信息.php 文件中 Apache 根文档文件夹。 通常,apache根文件夹是 /var/www/html/ 或者 /var/www/ 在大多数基于 Debian 的 Linux 发行版中。 在 Ubuntu 18.04 LTS 中,它是 /var/www/html/.
让我们创造 信息.php apache根文件夹中的文件:
$ sudo vi /var/www/html/info.php
添加以下行:
<?php phpinfo(); ?>
按 ESC 键并输入 :wq 保存并退出文件。 重新启动 apache 服务以使更改生效。
$ sudo systemctl restart apache2
3.1 测试PHP
打开您的网络浏览器并导航到 https://IP地址/info.php 网址。
您现在将看到 php 测试页面。
php测试页面
通常,当用户从 Web 服务器请求目录时, Apache 将首先查找一个名为 索引.html. 如果你想改变 Apache 提供 php 文件而不是其他文件,请移动 索引.php 在第一个位置 目录配置文件 文件如下图
$ sudo vi /etc/apache2/mods-enabled/dir.conf
这是上述文件的内容。
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
将“index.php”文件移到第一个。 进行更改后,您的 目录配置文件 文件将如下所示。
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
按 ESC键 键和类型 :wq 保存和 close 文件。 重新开始 Apache 服务以使更改生效。
$ sudo systemctl restart apache2
3.2 安装 PHP 模块
为了改进 PHP 的功能,您可以安装一些额外的 PHP 模块。
要列出可用的 PHP 模块,请运行:
$ sudo apt-cache search php- | less
样本输出:
使用箭头键浏览结果。 要退出,请键入 q 并按 ENTER 键。
要查找任何特定 php 模块的详细信息,对于 example php-gd, 跑:
$ sudo apt-cache show php-gd
要安装 php 模块,请运行:
$ sudo apt install php-gd
要安装所有模块(虽然不是必需的),请运行:
$ sudo apt-get install php*
不要忘记重新启动 Apache 安装任何 php 模块后的服务。 要检查模块是否已加载,请在浏览器中打开 info.php 文件并检查它是否存在。
接下来,您可能想要安装任何数据库管理工具,以便通过 Web 浏览器轻松管理数据库。 如果是这样,请按照以下链接中的说明安装 phpMyAdmin。
- 在 Ubuntu 18.04 LTS 上使用 LAMP 堆栈安装 phpMyAdmin
恭喜! 我们已经在 Ubuntu 18.04 LTS 服务器中成功设置了 LAMP 堆栈。
- 在 Ubuntu 18.04 LTS 中安装 Nginx、MariaDB、PHP (LEMP) 堆栈
- 安装 ApacheMariaDB, Arch Linux 上的 PHP (LAMP) 堆栈
- 在 Arch Linux 上安装 Nginx、MariaDB、PHP (LEMP) 堆栈
而且,这就是现在的全部。 如您所见,在 Ubuntu 中设置 LAMP 堆栈绝对简单直接。
参考:
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!