新加坡服务器上搭建LAMP环境(Linux + Apache + MySQL/MariaDB + PHP)的步骤如下。本教程以Ubuntu 22.04和CentOS 9为例,其他版本需调整部分命令。
先需要连接服务器,用SSH登录到新加坡服务器:
ssh root@your_server_ip
再更新系统,Ubuntu/Debian:
apt update && apt upgrade -y
CentOS/RHEL:
dnf update -y
安装Apache,在Ubuntu/Debian:
apt install apache2 -y
systemctl enable apache2
systemctl start apache2
CentOS/RHEL:
dnf install httpd -y
systemctl enable httpd
systemctl start httpd
验证Apache的安装,Ubuntu/Debian:
apt install apache2 -y
systemctl enable apache2
systemctl start apache2
CentOS/RHEL:
dnf install httpd -y
systemctl enable httpd
systemctl start httpd
访问 http://your_server_ip,若看到Apache默认页面即成功。
如果还需要设置防火墙,Ubuntu:
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
CentOS:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
安装MySQL/MariaDB,Ubuntu/Debian:
apt install mysql-server -y
systemctl enable mysql
systemctl start mysql
# 运行安全配置脚本
mysql_secure_installation
CentOS/RHEL:
dnf install mariadb-server mariadb -y
systemctl enable mariadb
systemctl start mariadb
# 运行安全配置脚本
mysql_secure_installation
安装PHP,Ubuntu/Debian:
apt install php libapache2-mod-php php-mysql php-curl php-gd php-zip php-mbstring -y
重启Apache:
systemctl restart apache2
CentOS/RHEL启用EPEL和Remi仓库:
dnf install epel-release -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
dnf module enable php:remi-8.1 -y # 根据需求选择版本
安装PHP及扩展:
dnf install php php-mysqlnd php-curl php-gd php-zip php-mbstring -y
重启Apache:
systemctl restart httpd
测试LAMP环境,先创建PHP测试文件:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Ubuntu路径是:
/var/www/html/
CentOS路径:
/var/www/html/
访问测试页面需要先打开浏览器访问http://your_server_ip/info.php,正常显示PHP信息。测试PHP脚本测试数据库连接,要提前创建数据库和用户。
最好是配置防火墙,关闭不需要的端口。常用端口SSH:22\HTTP:80\HTTPS:443。还需要禁用PHP危险函数。编辑 /etc/php/版本号/apache2/php.ini(Ubuntu)或 /etc/php.ini(CentOS),禁用以下函数:
disable_functions = exec,passthru,shell_exec,system
再配置SSL证书,定期更新系统。可能会出现403 Forbidden错误,建议检查文件权限:
chown -R www-data:www-data /var/www/html/ # Ubuntu
chown -R apache:apache /var/www/html/ # CentOS
如果PHP无法连接MySQL,要确保安装php-mysql扩展并重启Apache。也可能出现端口被占用,使用 netstat -tulpn | grep :80 查找占用进程。