PHP在Linux环境下的部署流程
部署前需确保系统软件包为最新版本,避免兼容性问题。根据Linux发行版选择对应命令:
sudo apt update && sudo apt upgrade -ysudo yum update -y根据Web服务器类型(Apache/Nginx)选择安装组合,确保包含PHP核心、常用扩展及Web服务器模块:
sudo apt install apache2 php libapache2-mod-php php-mysql php-gd php-mbstring php-curl -ysudo yum install httpd php php-mysqlnd php-gd php-mbstring php-curl -ysudo apt install nginx php-fpm php-mysql php-gd php-mbstring php-curl -ysudo yum install nginx php php-fpm php-mysqlnd php-gd php-mbstring php-curl -ysudo a2enmod php7.x(将7.x替换为实际PHP版本,如php7.4)/etc/apache2/sites-available/000-default.conf),确保DocumentRoot指向应用目录(如/var/www/html),并添加以下指令允许PHP解析:<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
sudo systemctl restart apache2/etc/nginx/sites-available/default),在server块中添加PHP处理规则:location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.x-fpm.sock; # 替换为实际PHP-FPM套接字路径
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
sudo systemctl restart nginx若使用Nginx,需调整PHP-FPM进程用户(默认www-data或nginx),确保与Web服务器用户一致:
/etc/php/7.x/fpm/pool.d/www.conf),修改以下参数:user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
sudo systemctl restart php7.x-fpm将应用文件上传至Web服务器根目录(默认路径):
/var/www/html/usr/share/nginx/html 或 /var/www/htmlscp、FTP或Git等工具传输文件,例如:scp -r /local/app/path user@server_ip:/var/www/html创建测试文件info.php(内容:<?php phpinfo(); ?>),放置在Web根目录。通过浏览器访问http://server_ip/info.php,若显示PHP版本及扩展信息,则说明部署成功。
若应用需要数据库(如MySQL/MariaDB):
sudo apt install mysql-server -ysudo yum install mariadb-server -ysudo mysql_secure_installation(设置root密码、移除匿名用户、禁止远程root登录等)sudo mysql -u root -p),执行以下SQL:CREATE DATABASE your_database;
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
sudo apt install certbot python3-certbot-nginx或certbot python3-certbot-apache)。ufw:sudo ufw allow 'Apache Full'或sudo ufw allow 'Nginx Full'。sudo apt install unattended-upgrades或sudo yum install yum-cron)。