本文将为您提供一个在Ubuntu服务器上搭建LAMP(Linux, Apache, MySQL, PHP)环境的完整指南。通过本文,您将学习如何安装和配置Apache、MySQL、PHP,并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。
在开始之前,确保您的系统软件包是最新的。
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
在浏览器中访问 http://<您的服务器IP>/,应显示Apache默认的欢迎页面。如果无法访问,请检查防火墙设置(后续步骤将涵盖防火墙配置)。
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
登录MySQL以确认安装成功。
sudo mysql -u root -p
MySQL默认密码是root,直接登录即可。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
这里我们用SQL语句把项目需要的数据库建好即可。
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update
这里以8.3为例,其他版本只需要替换这个版本号。
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-gd -y
其中,PHP FastCGI Process Manager,用于与Apache配合。
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm
php -v
预期输出示例:
PHP 8.3.0 (cli) (built: ...)确保启用了proxy、proxy_fcgi和rewrite模块,这对于PHP-FPM的集成和URL重写非常重要。
sudo a2enmod proxy proxy_fcgi rewrite
创建一个新的Apache虚拟主机配置文件,例如dco.conf。
sudo nano /etc/apache2/sites-available/dco.conf将以下内容粘贴到dco.conf文件中:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot xxxxx
ServerName xx.xxx.xxx.xxx
<Directory /var/www/dco>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/dco.error.log
CustomLog ${APACHE_LOG_DIR}/dco.access.log combined
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
说明:
ServerName:设置为您的服务器IP地址。DocumentRoot:指向您的PHP项目目录。
如果没创建,要 sudo mkdir -p xxxxxx 创建目录。<Directory> 块:允许.htaccess文件覆盖配置,并授予访问权限。<FilesMatch \.php$> 块:配置Apache通过PHP-FPM处理PHP文件。确保php8.3-fpm.sock路径正确。启用新创建的虚拟主机:
sudo a2ensite dco.conf
禁用默认虚拟主机(可选,但推荐以避免配置冲突):
sudo a2dissite 000-default.conf
测试配置文件语法是否正确:
sudo apache2ctl configtest
预期输出:
Syntax OK这里warning不用管,显示 Syntax OK 即可。
重新加载Apache服务以应用更改:
sudo systemctl reload apache2
确保服务器防火墙允许HTTP(80)和HTTPS(443)流量。
sudo apt install ufw -y
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
预期输出示例:
Status: active
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)sudo mkdir -p /var/www/dco将您的PHP项目文件上传到服务器上的 /var/www/dco 目录。
确保Apache用户(www-data)对项目文件有适当的读写权限。
这里我直接给全权限。
sudo chmod -R 777 /var/www/dco
为了确认PHP是否正常工作,创建一个简单的 info.php 文件进行测试。
sudo nano /var/www/dco/info.php添加以下内容:
<?php
phpinfo();
?>
保存并退出编辑器。
打开浏览器,访问以下URL:
http://124.221.49.91/info.php
预期结果:
测试完成后,建议删除 info.php 文件以防止泄露服务器信息。
sudo rm /var/www/dco/info.php如果按照上述步骤操作后仍然无法解决问题,可以去查看各块的日志:
sudo tail -n 50 /var/log/apache2/dco.error.logsudo tail -n 50 /var/log/php8.3-fpm.log
# 或
sudo tail -n 50 /var/log/php8.3-fpm/error.log
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。