凌峰创科服务平台

Linux PHP服务器搭建如何快速上手?

在Linux环境下搭建PHP服务器是Web开发中的常见需求,通常以LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP)架构为基础,以下以Ubuntu系统为例,详细介绍使用Apache和MySQL搭建PHP服务器的完整步骤,包括环境准备、安装配置、测试验证及常见问题处理。

Linux PHP服务器搭建如何快速上手?-图1
(图片来源网络,侵删)

环境准备

在开始搭建前,确保系统已更新至最新状态,并具备基本的命令行操作能力,以Ubuntu 22.04为例,执行以下命令更新系统软件包列表:

sudo apt update && sudo apt upgrade -y

根据需求安装必要工具,如curlwget等:

sudo apt install -y curl wget unzip

安装Apache服务器

Apache是最流行的Web服务器之一,支持PHP模块的动态加载。

安装Apache

sudo apt install -y apache2

安装完成后,系统会自动启动Apache服务,可通过以下命令检查服务状态:

Linux PHP服务器搭建如何快速上手?-图2
(图片来源网络,侵删)
sudo systemctl status apache2

若显示active (running),则表示服务正常运行。

配置防火墙(可选)

若开启了UFW防火墙,需允许HTTP(80端口)和HTTPS(443端口)流量:

sudo ufw allow 'Apache Full'
sudo ufw reload

测试Apache访问

在浏览器中输入服务器IP地址(如http://192.168.1.100),若显示Apache默认欢迎页面,则安装成功。

安装MySQL数据库

PHP应用程序通常需要数据库支持,MySQL是常用的关系型数据库。

安装MySQL服务器

sudo apt install -y mysql-server

安装完成后,启动MySQL服务并设置开机自启:

sudo systemctl start mysql
sudo systemctl enable mysql

安全配置MySQL

执行安全脚本,设置root密码、移除匿名用户、禁止远程root登录等:

sudo mysql_secure_installation

根据提示操作,建议设置强密码并开启密码验证。

创建PHP数据库及用户

登录MySQL控制台:

sudo mysql -u root -p

输入root密码后,执行以下SQL命令创建数据库(如php_db)和用户(如php_user),并授予相应权限:

CREATE DATABASE php_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'php_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON php_db.* TO 'php_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

安装PHP及扩展

PHP是服务器端脚本语言,需安装PHP本身及与MySQL、Apache集成的扩展。

安装PHP及常用扩展

sudo apt install -y php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-zip
  • libapache2-mod-php:使Apache支持PHP模块;
  • php-mysql:PHP与MySQL交互的扩展;
  • 其他扩展(如php-gdphp-xml)为常用功能依赖。

配置PHP版本(可选)

若系统安装了多个PHP版本,可通过以下命令切换默认版本:

sudo update-alternatives --config php

测试PHP安装

创建PHP测试文件:

sudo nano /var/www/html/info.php
```  并保存:  
```php
<?php
phpinfo();
?>

在浏览器中访问http://服务器IP/info.php,若显示PHP配置信息页面,则安装成功,测试完成后建议删除该文件(安全风险):

sudo rm /var/www/html/info.php

配置虚拟主机(可选)

若需部署多个网站,可配置虚拟主机,以域名example.com为例:

创建网站目录

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com

创建虚拟主机配置文件

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用虚拟主机并重启Apache

sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf  # 可选:禁用默认站点
sudo systemctl reload apache2

测试虚拟主机

/var/www/example.com目录下创建index.php文件,输入内容<?php echo "Hello, example.com!"; ?>,通过浏览器访问域名即可。

常见问题处理

  1. Apache无法解析PHP文件
    检查PHP模块是否启用:sudo a2enmod phpX.X(X.X为PHP版本);
    确认Apache配置文件中PHP处理顺序(如DirectoryIndex index.php index.html)。

  2. MySQL连接失败
    检查MySQL服务状态:sudo systemctl status mysql
    确认数据库用户权限及密码是否正确;
    检查PHP配置文件php.ini中的mysqli.default_socket是否指向MySQL socket路径(默认为/var/run/mysqld/mysqld.sock)。

相关问答FAQs

问题1:如何更改PHP的默认上传文件大小限制?
解答:修改PHP配置文件php.ini(通常位于/etc/php/X.X/apache2/php.ini),调整以下参数后重启Apache:

upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 300

可通过phpinfo()查看修改是否生效。

问题2:如何启用HTTPS(SSL证书)?
解答:可使用Let's Encrypt免费证书,安装Certbot:

sudo apt install -y certbot python3-certbot-apache

执行命令获取证书并配置Apache:

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

根据提示选择自动重定向HTTP到HTTPS,证书到期前Certbot会自动续期。

分享:
扫描分享到社交APP
上一篇
下一篇