Ubuntu PHP如何配置服务器
Ubuntu下配置PHP服务器(以Apache/Nginx为例)
1. 准备工作:更新系统
在开始配置前,确保系统包列表和已安装包为最新版本,避免依赖冲突:
sudo apt update &
&
sudo apt upgrade -y
2. 安装Web服务器(Apache/Nginx)
根据需求选择Web服务器,以下分别介绍Apache和Nginx的安装步骤:
2.1 安装Apache
Apache是Ubuntu默认Web服务器,安装命令如下:
sudo apt install apache2 -y
安装完成后,启动Apache并设置开机自启:
sudo systemctl start apache2
sudo systemctl enable apache2
验证Apache是否运行:在浏览器访问http://your_server_ip
,若看到Apache默认页面则说明成功。
2.2 安装Nginx
Nginx是轻量级高性能Web服务器,适合高并发场景,安装命令如下:
sudo apt install nginx -y
启动Nginx并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
验证Nginx是否运行:在浏览器访问http://your_server_ip
,若看到Nginx欢迎页面则说明成功。
3. 安装PHP及常用扩展
PHP是服务器端脚本语言,需安装PHP核心包及常用扩展(如MySQL数据库支持、GD图像处理、MB字符串处理等):
# Apache环境下(自动安装libapache2-mod-php模块,用于Apache解析PHP)
sudo apt install php libapache2-mod-php php-mysql php-gd php-mbstring php-curl php-xml -y
# Nginx环境下(需安装PHP-FPM,用于FastCGI进程管理)
sudo apt install php-fpm php-mysql php-gd php-mbstring php-curl php-xml -y
安装完成后,可通过以下命令验证PHP是否安装成功:
php -v
4. 配置PHP(可选但推荐)
4.1 修改PHP.ini文件
PHP.ini是PHP的全局配置文件,可根据需求调整参数(如内存限制、上传文件大小、时区等)。
- Apache环境下,php.ini路径通常为:
/etc/php/{ version} /apache2/php.ini
(如/etc/php/8.3/apache2/php.ini
) - Nginx环境下,php.ini路径通常为:
/etc/php/{ version} /fpm/php.ini
(如/etc/php/8.3/fpm/php.ini
)
常用修改项:
;
设置时区(根据实际情况调整)
date.timezone = Asia/Shanghai
;
增加内存限制(单位:MB)
memory_limit = 256M
;
增加上传文件大小限制(单位:MB)
upload_max_filesize = 100M
post_max_size = 100M
修改完成后,保存文件并重启Web服务器(见步骤5)。
4.2 配置PHP-FPM(仅Nginx需要)
PHP-FPM(FastCGI Process Manager)用于管理PHP进程,提高性能。安装PHP-FPM后,需修改其进程池配置:
sudo nano /etc/php/{
version}
/fpm/pool.d/www.conf
关键配置项说明:
;
监听方式(Unix socket性能优于TCP端口)
listen = /run/php/php{
version}
-fpm.sock
;
运行用户/组(建议使用www-data,与Web服务器一致)
user = www-data
group = www-data
;
进程管理方式(dynamic动态调整进程数)
pm = dynamic
pm.max_children = 15 ;
最大子进程数(根据服务器内存调整)
pm.start_servers = 5 ;
启动时的进程数
pm.min_spare_servers = 5 ;
最小空闲进程数
pm.max_spare_servers = 10 ;
最大空闲进程数
pm.max_requests = 500 ;
每个子进程处理的最大请求数(避免内存泄漏)
修改完成后,重启PHP-FPM服务:
sudo systemctl restart php{
version}
-fpm
5. 配置Web服务器支持PHP
5.1 Apache配置
Apache需启用PHP模块并配置解析规则:
# 启用PHP模块(根据PHP版本调整,如php7.4、php8.3)
sudo a2enmod php{
version}
# 配置Apache虚拟主机(编辑默认站点配置文件)
sudo nano /etc/apache2/sites-available/000-default.conf
在<
VirtualHost *:80>
块中添加以下内容,确保Apache能解析PHP文件:
<
FilesMatch \.php$>
SetHandler application/x-httpd-php
<
/FilesMatch>
<
Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<
/Directory>
保存后,重启Apache:
sudo systemctl restart apache2
5.2 Nginx配置
Nginx需配置FastCGI转发到PHP-FPM:
sudo nano /etc/nginx/sites-available/default
在server
块中添加以下location
规则,处理.php
文件:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 包含FastCGI配置
fastcgi_pass unix:/run/php/php{
version}
-fpm.sock;
# 与PHP-FPM监听地址一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 传递脚本路径
include fastcgi_params;
# 包含通用FastCGI参数
}
保存后,测试Nginx配置语法是否正确:
sudo nginx -t
若输出syntax is ok
,则重启Nginx:
sudo systemctl restart nginx
6. 验证PHP配置
创建PHP测试文件,验证Web服务器是否能正确解析PHP:
sudo nano /var/www/html/info.php
在文件中添加以下内容:
<
?php
phpinfo();
?>
保存后,在浏览器访问http://your_server_ip/info.php
,若看到PHP信息页面(包含PHP版本、配置信息等),则说明配置成功。
7. 安全加固(可选但重要)
7.1 隐藏PHP版本信息
修改Apache或Nginx配置,隐藏PHP版本,减少信息泄露风险:
- Apache:在
/etc/apache2/conf-enabled/security.conf
中添加:ServerTokens Prod ServerSignature Off
- Nginx:在
/etc/nginx/nginx.conf
的http
块中添加:server_tokens off;
重启Web服务器使配置生效。
7.2 限制PHP执行目录
防止恶意脚本在非Web目录执行,可在Apache或Nginx配置中限制open_basedir
:
;
在php.ini中添加
open_basedir = /var/www/html/:/tmp/
重启Web服务器使配置生效。
7.3 防火墙设置
允许HTTP(80端口)和HTTPS(443端口)流量通过防火墙:
sudo ufw allow 'Apache Full' # Apache
# 或
sudo ufw allow 'Nginx Full' # Nginx
sudo ufw enable # 启用防火墙
通过以上步骤,你已在Ubuntu上成功配置PHP服务器(支持Apache或Nginx),可根据实际需求进一步优化(如调整PHP-FPM进程数、启用OPcache加速等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu PHP如何配置服务器
本文地址: https://pptw.com/jishu/733474.html