如何在 Arch Linux 中安装 LAMP(Linux、Apache、MySQL 和 PHP/PhpMyAdmin)

如何在 Arch Linux 中安装 LAMP(Linux、Apache、MySQL 和 PHP/PhpMyAdmin)

Arch Linux 提供了一个灵活且前沿的系统环境,是在小型非关键系统上开发 web 应用程序的理想解决方案,因为它完全开源,并提供了最新的内核和 Web 服务器、数据库软件的版本。

本教程的主要目的是通过一步步的完整指导,最终帮助你在 Arch Linux 上安装 Web 开发中最常用的软件组合之一:LAMP(Linux、Apache、MySQL/MariaDB 和 PHP/PhpMyAdmin)。

系统要求

一个全新的 Arch Linux 安装。

在 Arch Linux 上安装 LEMP 环境——只需配置静态 IP 地址部分。

步骤 1:在 Arch Linux 上安装 LAMP 栈

在完成系统的最小安装并配置了静态 IP 地址及通过 SSH 远程访问后,使用 pacman 工具升级你的 Arch Linux 系统。

sudo pacman -Syu

升级过程完成后,分步安装 LAMP,首先安装 Apache Web 服务器,并启动/验证每个服务器进程的守护进程。

sudo pacman -S apache
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

安装 PHP 动态服务器端脚本语言及其 Apache 模块。

sudo pacman -S php php-apache

最后安装 MySQL 数据库,选择 MariaDB 作为社区数据库分支,然后启动并检查守护进程状态。

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

到目前为止,你已经安装并启动了基本的 LAMP 软件,并且使用了默认配置。

步骤 2:在 Arch Linux 上加固 MySQL

接下来加固 MySQL 数据库,为 root 账户设置密码,删除匿名用户账户,删除测试数据库,并禁止 root 用户远程登录(按 [Enter] 键使用 root 账户的当前密码,安全问题回答“是”)。

sudo mysql_secure_installation

通过运行以下命令验证 MySQL 数据库的连接性,然后使用 quit 或 exit 语句退出数据库 shell。

mysql -u root -p

步骤 3:修改 Apache 主配置文件

以下配置主要与 Apache Web 服务器相关,旨在为虚拟主机提供动态接口,包括 PHP 脚本语言、SSL 或非 SSL 虚拟主机,可以通过修改 httpd 服务文件配置来完成。
首先,使用你喜欢的文本编辑器打开 Apache 的主配置文件。

sudo nano /etc/httpd/conf/httpd.conf

在文件底部,添加以下两行:

IncludeOptional conf/sites-enabled/*.conf
IncludeOptional conf/mods-enabled/*.conf

这些 Include 语句的作用是告诉 Apache,从现在开始,它应该读取位于 /etc/httpd/conf/sites-enabled/(虚拟主机配置)和 /etc/httpd/conf/mods-enabled/(已启用的服务器模块)路径下的所有 .conf 配置文件。

在 Apache 配置文件中添加这两条指令后,使用以下命令创建必要的系统目录。

sudo mkdir /etc/httpd/conf/sites-available
sudo mkdir /etc/httpd/conf/sites-enabled
sudo mkdir /etc/httpd/conf/mods-enabled

sites-available 路径保存着所有未激活的虚拟主机配置文件,接下来会通过脚本链接并启用这些文件。

步骤 4:创建 a2ensite 和 a2dissite Apache 命令

现在,创建 a2ensite 和 a2dissite 脚本,它们将作为启用或禁用虚拟主机配置文件的命令。

返回到 $HOME 用户路径并使用你喜欢的编辑器创建 a2ensite 和 a2dissite 脚本。

sudo nano a2ensite

添加以下内容:

#!/bin/
if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled ; then
echo "-------------------------------"
else
mkdir /etc/httpd/conf/sites-available
mkdir /etc/httpd/conf/sites-enabled
fi

avail=/etc/httpd/conf/sites-available/\.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-available/`

if [ "$#" != "1" ]; then
echo "Use script: n2ensite virtual_site"
echo -e "\nAvailable virtual hosts:\n$site"
exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/\.conf; then
echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site"
exit 0
fi
fi

 

创建 a2dissite 脚本:

sudo nano a2dissite

附加以下内容:

#!/bin/
avail=/etc/httpd/conf/sites-enabled/\.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-enabled`

if [ "$#" != "1" ]; then
echo "Use script: n2dissite virtual_site"
echo -e "\nAvailable virtual hosts: \n$site"
exit 0
else
if test -e $avail; then
sudo rm $avail
else
echo -e "$avail virtual host does not exist! Exiting"
exit 0
fi
if test -e $enabled/\.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo -e "Success! $avail has been removed!\nsudo systemctl restart httpd"
exit 0
fi
fi

 

创建文件后,为其分配执行权限并将它们复制到 $PATH 可执行目录中,使其全局可用。

sudo chmod +x a2ensite a2dissite
sudo cp a2ensite a2dissite /usr/local/bin/
sudo a2ensite

步骤 5:在 Apache 中创建虚拟主机

Apache Web 服务器的默认虚拟主机配置文件位于 /etc/httpd/conf/extra/httpd-vhosts.conf,但是如果你的系统使用了很多虚拟主机,跟踪哪些网站已启用或未启用可能会非常困难。

如果要禁用一个网站,你必须注释或删除它的所有指令,这在配置很多网站的情况下可能会非常麻烦。

使用 sites-available 和 sites-enabled 路径可以大大简化启用或禁用网站的工作,并且可以保存所有网站的配置文件,无论它们是否被启用。

接下来的步骤,我们将创建 www.a5idc.com 的虚拟主机配置文件并放在 sites-available 目录下,该文件指向默认的 DocumentRoot 路径,用于提供网站文件。

sudo nano /etc/httpd/conf/sites-available/www.a5idc.com.conf

添加以下内容来配置 www.a5idc.com 的虚拟主机:

<VirtualHost *:80>
ServerName www.a5idc.com
ServerAlias www.www.a5idc.com
DocumentRoot /srv/http/www.a5idc.com
ServerAdmin admin@www.a5idc.com

ErrorLog "/var/log/httpd/www.a5idc.com-error_log"
CustomLog "/var/log/httpd/www.a5idc.com-access_log" combined

<Directory "/srv/http/www.a5idc.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

最重要的指令是 Port 和 ServerName,它们指示 Apache 在端口 80 上打开网络连接,并将所有查询与域名重定向,以提供位于 /srv/http/www.a5idc.com 路径下的文件。

接下来,创建 www.a5idc.com 的文档根目录并设置适当的权限。

sudo mkdir -p /srv/http/www.a5idc.com
sudo chown -R $USER:$USER /srv/http/www.a5idc.com
sudo chmod -R 755 /srv/http/www.a5idc.com

通过在 sites-enabled 目录中创建符号链接来启用 www.a5idc.com 的虚拟主机。

sudo ln -s /etc/httpd/conf/sites-available/www.a5idc.com.conf /etc/httpd/conf/sites-enabled/

在创建虚拟主机配置文件后,激活它并重启 Apache 守护进程以查看更改。

sudo a2ensite www.a5idc.com
sudo systemctl restart httpd

要验证虚拟主机,创建一个简单的 index.html 文件进行测试。

echo '<h1>Welcome to www.a5idc!</h1>' | sudo tee /srv/http/www.a5idc.com/index.html

然后,使用浏览器访问 https://www.a5idc.com(如果是本地系统)或 http://Arch_IP(如果是远程系统)。

步骤 6:在 LAMP 上启用 SSL 虚拟主机

SSL(安全套接字层)是一种用于加密 HTTP 连接的协议,可以通过网络或互联网传输数据流,并使用对称/非对称加密密钥通过安全通道传输数据,Arch Linux 通过 mod_ssl 和 Certbot 包提供 SSL。

sudo pacman -S certbot python3-certbot-apache mod_ssl

接下来,使用 Certbot 自动获取并安装 SSL 证书。

sudo certbot --apache -d www.a5idc.com -d www.www.a5idc.com

Certbot 将自动配置 Apache 使用已获取的 SSL 证书,并设置自动 HTTP 到 HTTPS 的重定向。

再次使用浏览器访问你的域名,但这次使用 HTTPS 协议——https://www.a5idc.com,你现在可以看到 Apache 虚拟主机通过 HTTPS 安全连接提供相同的内容。

步骤 7:在 Arch Linux 上启用 PHP

默认情况下,Apache 仅在 Arch Linux 上提供 HTML 静态文件内容,并不支持动态脚本语言。

要启用 PHP,首先打开 Apache 主配置文件,查找并取消注释以下 LoadModule 语句(php-apache 不与 mod_mpm_event 一起在 Arch Linux 上工作)。

sudo nano /etc/httpd/conf/httpd.conf

使用 [Ctrl]+[w] 查找并注释掉以下行,使其看起来像这样:

#LoadModule mpm_event_module modules/mod_mpm_event.so

然后,在 mods-enabled 路径中创建一个新的 PHP 模块文件,并添加以下内容。

sudo nano /etc/httpd/conf/mods-enabled/php.conf

添加以下内容(你必须使用 mod_mpm_prefork):

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php_module modules/libphp.so
AddHandler php-script .php
Include conf/extra/php_module.conf

为了验证设置,在你的文档根目录(/srv/http/www.a5idc.com)中创建一个名为 info.php 的 PHP 文件,然后重启 Apache 并在浏览器中访问 info.php 文件:

echo "<?php phpinfo(); ?>" | sudo tee /srv/http/www.a5idc.com/info.php
sudo systemctl restart httpd

步骤 8:在 Arch Linux 上安装 PhpMyAdmin

如果你不熟悉 MySQL 命令行,并且希望通过 Web 界面远程访问 MySQL 数据库,那么需要在 Arch 上安装 PhpMyAdmin。

sudo pacman -S phpmyadmin

安装完这些包后,你需要启用一些 PHP 扩展(例如 mysqli.so 用于内部认证),并且你还可以启用其他未来 CMS 平台所需的模块,如 openssl.so、imap.so 或 iconv.so 等。

sudo nano /etc/php/php.ini

找到并取消注释上述扩展:

extension=mysqli.so
extension=mysqli
mysqli.allow_local_infile = On

最后,为了使 PhpMyAdmin Web 界面可访问,需要在虚拟主机中添加 PhpMyAdmin 的 Apache 配置。

sudo nano /etc/httpd/conf/sites-available/www.a5idc.com.conf

在文件底部添加以下配置:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"

<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.html index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>

然后重启 Apache 守护进程,并在 /srv/http/www.a5idc.com 路径中创建 /usr/share/webapps/phpMyAdmin/ 的符号链接。

sudo systemctl restart httpd
sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/www.a5idc.com/

最后,在浏览器中访问以下地址,你应该能够访问 PhpMyAdmin Web 界面:

https://www.a5idc.com/phpmyadmin
或者
https://system_IP/phpmyadmin

这些配置是将 Arch Linux 系统转变为一个简单、强大、快速和稳健的 web 平台所需的主要 LAMP 配置,适用于小型非关键环境。如果你仍然想在大规模生产环境中使用它,建议备份系统并关注包的更新。

未经允许不得转载:A5数据 » 如何在 Arch Linux 中安装 LAMP(Linux、Apache、MySQL 和 PHP/PhpMyAdmin)

相关文章

contact