插件窝 干货文章 怎么使用PHP和Linux搭建一个服务器

怎么使用PHP和Linux搭建一个服务器

sudo PHP example Nginx    来源:    2025-04-26

使用PHP和Linux搭建Web服务器指南

基本环境搭建

1. 安装Linux操作系统

  • 选择Ubuntu Server、CentOS或Debian等主流Linux发行版
  • 通过ISO镜像安装到服务器或虚拟机

2. 安装LAMP/LEMP栈

选项A: LAMP (Linux + Apache + MySQL + PHP)

# Ubuntu/Debian
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql

# CentOS/RHEL
sudo yum install httpd mariadb-server php php-mysqlnd
sudo systemctl start httpd mariadb
sudo systemctl enable httpd mariadb

选项B: LEMP (Linux + Nginx + MySQL + PHP)

# Ubuntu/Debian
sudo apt install nginx mysql-server php-fpm php-mysql

# CentOS/RHEL
sudo yum install nginx mariadb-server php-fpm php-mysqlnd
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpm

3. 配置防火墙

# Ubuntu/Debian (UFW)
sudo ufw allow 'Apache Full'  # 或 'Nginx Full'
sudo ufw enable

# CentOS/RHEL (Firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

PHP环境配置

1. 检查PHP安装

php -v

2. 常用PHP模块安装

sudo apt install php-curl php-gd php-mbstring php-xml php-zip  # Ubuntu/Debian
sudo yum install php-curl php-gd php-mbstring php-xml php-zip  # CentOS/RHEL

3. 配置php.ini

sudo nano /etc/php/7.x/apache2/php.ini  # 或 /etc/php/7.x/fpm/php.ini

常见修改项:

upload_max_filesize = 16M
post_max_size = 16M
memory_limit = 128M
date.timezone = Asia/Shanghai

Web服务器配置

Apache配置

sudo nano /etc/apache2/sites-available/example.com.conf

示例配置:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用站点:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

Nginx配置

sudo nano /etc/nginx/sites-available/example.com

示例配置:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public_html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

数据库配置

1. 安全设置MySQL

sudo mysql_secure_installation

2. 创建数据库和用户

mysql -u root -p
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

部署PHP应用

1. 创建网站目录

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

2. 测试PHP文件

nano /var/www/example.com/public_html/info.php

内容:

<?php phpinfo(); ?>

访问 http://your_server_ip/info.php 测试

3. 部署实际应用

  • 上传代码到 /var/www/example.com/public_html
  • 配置应用数据库连接

进阶配置

1. 启用HTTPS (Let's Encrypt)

sudo apt install certbot python3-certbot-apache  # 对于Apache
sudo apt install certbot python3-certbot-nginx  # 对于Nginx

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

# Nginx
sudo certbot --nginx -d example.com -d www.example.com

2. PHP-FPM池配置 (Nginx)

sudo nano /etc/php/7.x/fpm/pool.d/www.conf

调整参数如:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

3. 性能优化

  • 启用OPcache: sudo apt install php-opcache
  • 配置缓存头
  • 启用Gzip压缩

维护与监控

1. 查看日志

# Apache
sudo tail -f /var/log/apache2/error.log

# Nginx
sudo tail -f /var/log/nginx/error.log

# PHP-FPM
sudo tail -f /var/log/php7.x-fpm.log

2. 自动更新

# Ubuntu/Debian
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron

通过以上步骤,您已经成功在Linux上搭建了一个支持PHP的Web服务器环境。根据您的具体需求,可能需要进一步配置安全设置、性能优化或部署特定的PHP应用程序。