主页/PHP笔记/PHP问答/与WEB前端/如何将PHP网站部署到Ubuntu服务器

如何将PHP网站部署到Ubuntu服务器

Bug编译狮

Bug编译狮

将PHP网站部署到Ubuntu服务器是一个相对简单的过程,但需要一些基本的技能和步骤。以下是一个详细的指南,帮助你完成这个任务:

1. 准备工作

硬件要求

  • Ubuntu服务器(推荐使用LAMP stack)
  • PHP环境
  • MySQL数据库
  • Web浏览器

软件要求

  • SSH客户端(如PuTTY)
  • FTP客户端(如FileZilla)

2. 安装Ubuntu服务器

如果你还没有Ubuntu服务器,可以按照Ubuntu官方文档进行安装。

3. 更新系统

打开终端并运行以下命令来更新系统:

sudo apt update
sudo apt upgrade -y

4. 安装LAMP Stack

LAMP(Linux, Apache, MySQL, PHP)是常用的Web开发环境。你可以使用apt包管理器来安装它。

sudo apt install apache2 mysql-server php php-mysql -y

5. 配置MySQL

启动MySQL服务并设置 root密码:

sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation

6. 创建数据库和用户

登录到MySQL并创建一个新的数据库和用户:

mysql -u root -p

输入root密码后,执行以下SQL命令:

CREATE DATABASE mywebsite;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mywebsite.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

7. 下载和解压PHP项目

假设你的PHP项目位于本地文件系统上的/home/user/myproject目录。你可以使用FTP工具将项目上传到Ubuntu服务器上,或者直接通过SSH上传。

使用FTP上传

  1. 打开FileZilla并连接到Ubuntu服务器。
  2. 导航到 /var/www/html 目录。
  3. /home/user/myproject目录中的所有文件复制到/var/www/html目录。

使用SSH上传

  1. 连接到Ubuntu服务器。
  2. 使用以下命令将项目压缩并传输到服务器:
    tar -czvf myproject.tar.gz /home/user/myproject
    scp myproject.tar.gz user@yourserver:/var/www/html/

8. 解压项目

进入/var/www/html目录并解压项目:

cd /var/www/html
tar -xzvf myproject.tar.gz

9. 设置权限

确保Apache有权限访问项目文件:

sudo chown -R www-data:www-data /var/www/html/myproject
sudo chmod -R 755 /var/www/html/myproject

10. 测试网站

打开浏览器并访问http://yourserver_ip_or_domain,你应该能看到你的PHP项目。

示例代码

以下是一个简单的PHP脚本示例,用于测试是否成功配置了PHP和MySQL:

<?php
// 获取数据库连接信息
$servername = "localhost";
$username = "myuser";
$password = "mypassword";
$dbname = "mywebsite";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";

// 关闭连接
$conn->close();
?>

保存这个脚本为index.php,然后上传到/var/www/html目录,并确保其权限正确。

通过以上步骤,你应该能够成功将PHP网站部署到Ubuntu服务器上。如果有任何问题,请随时提问!

黑板Bug讲师

黑板Bug讲师

介绍

部署一个PHP网站到Ubuntu服务器需要进行多步骤的过程,包括设置Web服务器和PHP、配置数据库以及将网站文件传输到服务器。本指南将指导您如何在Ubuntu服务器上运行您的PHP站点。

在我们开始之前,让我们确保您已经具备以下必要条件:

域名指向您的服务器的公共IP地址(对于本地/测试环境可选)。

一个有sudo权限的非root用户

运行一个Ubuntu服务器(我们将使用Ubuntu 20.04)

步骤指南

步骤1:确保服务器安全

更新包列表:

sudo apt update
sudo apt upgrade

使用UFW(Uncomplicated Firewall)设置防火墙,确保只允许特定的服务访问:

sudo ufw enable
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https

步骤 2:安装 Nginx、PHP 和扩展。

安装 Nginx:

sudo apt install nginx

安装PHP及其常用扩展:

sudo apt install php-fpm php-mysql php-xml php-xmlrpc php-gd php-curl php-cli php-zip php-mbstring

步骤3:配置Nginx以运行PHP

创建您的站点服务器块文件:

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

请插入以下块并修改“root”指向您的站点目录:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain;
    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.4-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

创建一个符号链接到 ‘sites-enabled’,以启用您的站点:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/

测试配置并重启Nginx:

sudo nginx -t
sudo systemctl restart nginx

步骤 4:设置数据库

安装MySQL:

sudo apt install mysql-server

请确保您的安装:

sudo mysql_secure_installation

登录到数据库并创建一个数据库和用户:

mysql -u root -p
CREATE DATABASE your_db_name;
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
exit;

步骤 5:上传您的 PHP 网站

上传文件使用SFTP或您喜欢的任何安全方法。请将您的网站文件放置在Nginx配置中指定的目录内(例如,“/var/www/yourdomain”)。

第6步:在您的Web服务器上测试PHP处理。

在您的网站根目录下创建一个名为 ‘info.php’ 的文件:

echo "" | sudo tee /var/www/yourdomain/info.php

访问您的网站,通过浏览器访问http://yourdomain.com/info.php。你应该能看到PHP信息页面。测试后,请记得移除该文件&#65306;

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

第7步:使用Let’s Encrypt配置SSL(可选)

安装 ‘certbot’ 包和 Nginx 插件:

sudo apt install certbot python3-certbot-nginx

运行 certbot 并按照提示操作:

sudo certbot --nginx

设置自动续订:

sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

结论。

祝贺!您已经成功在Ubuntu服务器上设置了PHP站点。记得定期备份并监控服务器的安全性。

长工码奴1523

长工码奴1523

要将 PHP 网站部署到 Ubuntu 服务器上,你可以使用一些流行的工具和方法。这里我将介绍一种简单的方法:使用 Git 和 Apache HTTP Server。

步骤:

  1. 安装必要的软件包

    • 安装 apt 包管理器(如果尚未安装)。
      sudo apt update
      sudo apt install software-properties-common
      sudo add-apt-repository ppa:ondrej/php
      sudo apt update
      sudo apt install php7.4-fpm

      这里我们安装了最新版本的 PHP 7.4,确保你的 PHP 版本与 Ubuntu 的版本兼容。

  2. 创建虚拟主机文件: 创建一个名为 .htaccess 的文件,并添加以下内容:

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule>

    这个规则告诉浏览器访问任何 URL 都会重定向到 /index.php 文件。

  3. 配置Apache服务器: 在你的 Ubuntu 主机上,执行以下命令来启动 Apache HTTP Server 并使它监听特定端口:

    sudo systemctl start apache2
    sudo systemctl enable apache2

    然后,编辑 /etc/apache2/sites-available/000-default.conf 文件并更改如下内容:

    <VirtualHost *:80>
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html
    
       <Directory /var/www/html>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Order allow,deny
           allow from all
       </Directory>
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

    这部分设置允许所有用户访问指定目录下的内容,并记录错误日志。

  4. 配置SSH密钥认证: 使用 SSH 密钥身份验证登录 Ubuntu 服务器,这可以提高安全性。首先,你需要生成一个 SSH 密钥对,然后将其添加到你的 Ubuntu 用户账户中。打开终端并输入以下命令:

    ssh-keygen -t rsa

    然后,将生成的公钥添加到 Ubuntu 用户的主密码中。在终端中运行以下命令:

    echo $HOME/.ssh/id_rsa.pub | ssh root@$ubuntu_ip "cat > ~/.ssh/authorized_keys"
  5. 测试站点功能: 启动 Apache 服务,并尝试访问你的 PHP 网站。你应该看到一个简单的欢迎页面。

  6. 部署PHP应用: 如果你想在本地环境中部署你的 PHP 应用程序,可以使用本地 Web 服务器(如 XAMPP 或 WAMP)。首先,安装这些软件:

    sudo apt install xampp
    sudo apt install mariadb-server

    接下来,按照安装向导的指示进行操作。完成安装后,启动 XAMPP 或 WAMP,并连接到 MySQL 数据库。现在,你可以使用 FTP 工具(如 FileZilla)上传你的 PHP 文件到 /var/www/html 目录下。

    示例代码(假设你的 PHP 文件位于 /var/www/html/index.php):

    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    
    // 这里是你的应用程序逻辑...
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>我的网站标题</title>
        </head>
        <body>
            <h1>Welcome to my website!</h1>
            <!-- 添加更多 HTML 内容 -->
        </body>
    </html>

以上步骤应能帮助你将 PHP 网站部署到 Ubuntu 服务器上。如果你遇到问题,请随时提问!