LAMP手动搭建的方法
本教程适用于Debian系(例如Debian、Ubuntu等),本文分四部分:
MariaDB是MySQL的一个分支,兼容MySQL,通常可以直接替代MySQL
请提前开放80和443端口再进行操作。
第一部分:LAMP手动搭建
1. 更新系统
首先,确保你的系统是最新的:
sudo apt update
sudo apt upgrade
2. 安装 Apache
sudo apt install apache2
安装完成后,可以通过访问你的服务器IP地址(例如 http://your_server_ip)来检查 Apache 是否工作。如果看到默认的 Apache 欢迎页面,则说明安装成功。这一步需要服务器开放了80端口。
3. 安装 MariaDB
sudo apt install mariadb-server
安装完成后,运行安全脚本来增强安全性:
sudo mysql_secure_installation
按照提示进行操作,建议启用强密码验证并删除匿名用户和测试数据库。
4. 安装 PHP
sudo apt install php libapache2-mod-php php-mysql
安装完成后,可以创建一个 PHP 测试文件来确保 PHP 正常工作。在 /var/www/html/ 目录下创建一个 info.php 文件:
sudo vi /var/www/html/info.php
在文件中添加以下内容:
<?php
phpinfo();
?>
保存并退出。然后通过访问 http://your_server_ip/info.php 检查 PHP 是否正常工作。你应该会看到 PHP 信息页面。测试完后可删除该文件。
5. 调整 Apache 的默认索引文件顺序
sudo vi /etc/apache2/mods-enabled/dir.conf
将 ‘index.php’ 移动到最前面:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
保存并退出,然后重新启动 Apache:
sudo systemctl restart apache2
6. 安装其他 PHP 扩展(可选)
sudo apt install php-cli php-curl php-gd php-mbstring php-xml
安装完成后,重新启动 Apache:
sudo systemctl restart apache2
7. 安装phpMyAdmin(可选)
如果你需要一个基于Web的MySQL管理工具,可以安装phpMyAdmin。
sudo apt install phpmyadmin
在安装过程中选择apache2(空格选中,tab键到ok),并配置相关设置。
8. 完成
现在,你的服务器已经配置好了LAMP环境,可以开始搭建和部署你的Web应用了。
第二部分:apache2如何绑定域名
1. 创建虚拟主机配置文件
首先,为你的域名创建一个新的虚拟主机配置文件。例如,如果你的域名是 example.com,你可以创建一个配置文件‘/etc/apache2/sites-available/example.com.conf’:
sudo vi /etc/apache2/sites-available/example.com.conf
在文件中添加以下内容:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/example.com
<Directory /var/www/html/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
ServerAdmin 是管理员的电子邮件地址。
ServerName 是你要绑定的主域名。
ServerAlias 是你要绑定的其他域名,例如带有 www 的版本。
DocumentRoot 是网站的根目录。
2. 创建网站根目录
为你的域名创建一个网站根目录。例如:
sudo mkdir -p /var/www/html/example.com
3. 设置文件权限
设置网站根目录的所有权:
sudo chown -R www-data:www-data /var/www/html/example.com
4. 启用新站点
启用你刚创建的虚拟主机配置:
sudo a2ensite example.com.conf
5. 禁用默认站点(可选)
如果你不再需要默认的 Apache 站点,可以禁用它:
sudo a2dissite 000-default.conf
6. 重新加载 Apache
重新加载 Apache 以应用更改:
sudo systemctl reload apache2
第三部分:apache2如何配置https(可选,但是建议)
配置 SSL 证书,确保你的网站通过 HTTPS 安全地传输数据,本文以 Let’s Encrypt 为例,Let’s Encrypt是一个免费的证书颁发机构。
1. 安装 Certbot 和 Apache 插件
Certbot 是一个 Let’s Encrypt 官方建议的帮助自动获取和安装 Let’s Encrypt 证书的工具:
sudo apt install certbot python3-certbot-apache
2. 获取 SSL 证书
使用 Certbot 获取 SSL 证书:
sudo certbot --apache
Certbot 会引导你完成证书的获取和安装。你需要提供你的电子邮件地址,并同意服务条款,共享电子邮件地址可选N(如果你愿意接收来自 EFF 的邮件,可以输入 Y
并按回车;否则,输入 N
并按回车。这不会影响证书的获取和安装)。然后,Certbot 会自动配置 Apache 以使用新的 SSL 证书。你可以通过访问 https://your_domain 来验证 SSL 证书是否正确安装。
3. 自动续订 SSL 证书
Let’s Encrypt 的证书有效期为 90 天。Certbot 会自动配置一个 cron 作业来定期续订证书。你可以通过以下命令手动测试自动续订功能:
sudo certbot renew --dry-run
4. Cerbot获取证书时提供的电子邮件后期需要修改的方法
Certbot 提供了一个命令,可以更新与账户关联的电子邮件地址:
sudo certbot update_account --email new-email@example.com
Certbot 会确认电子邮件地址的更改,你可能会收到确认邮件。
第四部分:MariaDB如何新增数据库
1. 登录到MariaDB
首先,使用以下命令登录到MariaDB:
sudo mysql -u root -p
输入你在安装MariaDB时设置的root密码
2. 创建新数据库
登录到MariaDB后,可以使用以下命令创建一个新数据库:
CREATE DATABASE your_database_name;
将 ‘your_database_name’替换为你希望创建的数据库名称。
3. 创建新用户并授予权限
为了安全性,建议为每个数据库创建一个单独的用户,并为该用户授予相应的权限。使用以下命令创建新用户并设置密码:
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
将 ‘your_username’ 替换为你希望创建的用户名,将 ‘your_password’ 替换为你希望设置的密码。
然后,使用以下命令将新用户的权限授予到新创建的数据库:
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
最后,刷新权限使更改生效:
FLUSH PRIVILEGES;
4. 退出MariaDB
完成后,可以使用以下命令退出MariaDB:
EXIT;
通过这些步骤,你就可以成功创建一个新数据库,并为新用户授予访问和管理该数据库的权限。
附加1:其他数据库常用命令
- 查看数据库列表,登录到MariaDB输入:
SHOW DATABASES;
- 执行这条命令后,MariaDB 会列出所有可用的数据库。例如:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| database_name |
+--------------------+
- 删除数据库:
DROP DATABASE database_name;
- 查看用户列表:
SELECT User, Host FROM mysql.user;
- 执行这条命令后,MariaDB 会显示所有用户及其关联的主机名。例如:
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| user1 | % |
| another_user | 127.0.0.1 |
+------------------+-----------+
- 更改已有用户密码,例如更改root用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
- 删除已有用户,例如删除一个名为
user1
的用户,且该用户只能从localhost
访问:
DROP USER 'user1'@'localhost';
- 如果user1可以从任何主机访问,则使用
%
:
DROP USER 'user1'@'%';
- 数据库目录:默认在
/var/lib/mysql
,但实际位置可能会有所不同,查看数据目录位置:
SHOW VARIABLES LIKE 'datadir';
- 执行后,你将看到类似以下的输出:
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
这里的 Value
列显示的路径即为 MariaDB 存储数据库文件的目录。
附加2:如果没有安装phpmyadmin,如何导入和导出数据库
导入数据库(将之前备份的sql导入数据库):
mysql -uyour_username -p your_database_namebackup < your_database_name.sql
导出数据库(将数据库导出为.sql):
mysqldump -uyour_username -p your_database_name > your_database_nameout.sql