LAMP是web服务堆栈的传统模型。LAMP构建的组件都是开源的,包括:Linux操作系统、ApacheHTTP服务器、MySQL关系数据库管理系统和PHP编程语言。
我们可以使用“APT”命令安装Lamp服务器堆栈:
$ sudo apt install php-mysql libapache2-mod-php mysql-server
或者使用tasksel
命令:
$ sudo tasksel install lamp-server
启用重新启动后,自动启动Mysql/MariaDB和Apache:
$ sudo systemctl enable --now mysql $ sudo systemctl enable --now apache2
配置mysql / mariadb数据库。
首先,执行安全安装:
$ sudo mysql_secure_installation
从命令行连接到MySQL:
root@onitroad:~# mysql -u root -p
我们将创建一个示例数据库和用户。
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | LOW | | validate_password.special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.01 sec) mysql> CREATE DATABASE onitroad; mysql> CREATE USER `admin`@`localhost` IDENTIFIED WITH mysql_native_password BY 'yourpass'; mysql> GRANT ALL ON onitroad.* TO `admin`@`localhost`; mysql> FLUSH PRIVILEGES;
创建一个php脚本/var/www/html/php-mysql-connect.php
,用于连接到本地MySQL数据库:
<?php $conn = new mysqli("localhost", "admin", "yourpass", "onitroad"); if ($conn->connect_error) { die("ERROR: Unable to connect: " . $conn->connect_error); } echo 'Connected to the database. '; $conn->close(); ?>
为脚本添加可执行权限
$ sudo chmod +x /var/www/html/php-mysql-connect.php
使用浏览器打开http://localhost/php-mysql-connect.php
查看PHP脚本是否已连接到Ubuntu 20.04上的MySQL数据库
启用HTTPS,我们将使用默认的Apache2设置,其中包含默认的自签名SSL证书:
请注意,我们使用的是默认SSL证书。建议您上载SSL证书或者使用Let's Encrypt为您的域生成新证书。
$ sudo a2ensite default-ssl $ sudo a2enmod ssl $ sudo systemctl restart apache2
最后,打开防火墙端口80和443允许远程传入流量:
$ sudo ufw allow in "Apache Full"
创建一个php脚本,查看 LAMP 配置设置和启用的模块:
/var/www/html/phpinfo.php
<?php phpinfo(); ?>
赋予可执行权限:
chmod +x /var/www/html/phpinfo.php
浏览器打开http://YOURSERVER-OR-IP/phpinfo.php
常见问题
The server requested authentication method unknown to the client
服务器请求客户端未知的身份验证方法,
此错误意味着我们无法使用密码对用户进行身份验证。
使用下面命令为用户设置密码
mysql> ALTER user 'username'@'localhost' identified with mysql_native_password by 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
错误1819(HY000):密码不满足当前的策略要求
查看密码策略并确保给定的密码符合要求:
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+
或者,切换到另一个密码策略。
例如,下面的命令将切换到low
密码策略:
mysql> SET GLOBAL validate_password.policy = LOW;