117.info
人生若只如初见

centos laravel数据库如何连接

在 CentOS 系统上配置 Laravel 以连接到数据库,通常涉及以下几个步骤。以下内容将详细介绍如何在 CentOS 上安装必要的软件、配置数据库以及设置 Laravel 项目以正确连接到数据库。

前提条件

  • CentOS 7 或更高版本
  • 已安装的 PHP(建议版本 ≥ 7.3)
  • Web 服务器(如 Apache 或 Nginx)
  • 数据库服务器(如 MySQL、PostgreSQL 或 MariaDB)

步骤一:安装必要的软件

1. 更新系统包

sudo yum update -y

2. 安装 EPEL 和 Remi 仓库(用于 PHP)

EPEL 提供额外的软件包,Remi 仓库提供最新的 PHP 版本。

sudo yum install epel-release -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

3. 启用 Remi 的 PHP 仓库

根据需要的 PHP 版本启用相应的 Remi 仓库。例如,启用 PHP 8.1:

sudo yum-config-manager --enable remi-php81

4. 安装 PHP 及相关扩展

安装 PHP 及 Laravel 所需的扩展,如 PDO、MBString、OpenSSL、Tokenizer、XML、Ctype 和 JSON。

sudo yum install php php-cli php-fpm php-mysqlnd php-pdo php-mbstring php-xml php-tokenizer php-ctype php-json -y

5. 安装 Composer

Composer 是 PHP 的依赖管理工具,Laravel 项目通常使用它来管理依赖。

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

6. 安装 Web 服务器(以 Nginx 为例)

sudo yum install epel-release -y
sudo yum install nginx -y

启动并启用 Nginx 服务:

sudo systemctl start nginx
sudo systemctl enable nginx

7. 安装数据库服务器(以 MySQL 为例)

sudo yum install mysql-server -y

启动并启用 MySQL 服务:

sudo systemctl start mysqld
sudo systemctl enable mysqld

运行安全脚本以设置 root 密码和其他安全选项:

sudo mysql_secure_installation

步骤二:配置数据库

1. 登录到 MySQL

sudo mysql -u root -p

输入之前设置的 root 密码。

2. 创建数据库和用户

假设我们要为 Laravel 项目创建一个名为 laravel_db 的数据库和一个用户 laravel_user,并授予相应的权限。

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

注意:将 your_password 替换为您选择的强密码。

步骤三:配置 Laravel 项目

1. 部署 Laravel 项目

您可以使用 Git 将 Laravel 项目克隆到服务器上,或者通过其他方式上传项目文件。

cd /var/www/html
git clone https://github.com/your-username/your-laravel-project.git
cd your-laravel-project

2. 安装项目依赖

使用 Composer 安装所有依赖项:

composer install

3. 配置 .env 文件

复制 .env.example 文件并编辑为实际配置:

cp .env.example .env
nano .env

.env 文件中填写数据库连接信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_password

注意:确保 DB_HOST 设置为正确的数据库服务器地址。如果数据库和 Laravel 都在同一服务器上,通常设置为 127.0.0.1localhost

4. 生成应用密钥

如果尚未生成应用密钥,可以使用以下命令生成:

php artisan key:generate

这将自动更新 .env 文件中的 APP_KEY

5. 运行迁移(可选)

如果您的 Laravel 项目包含数据库迁移,可以运行以下命令创建数据库表:

php artisan migrate

步骤四:配置 Web 服务器

以 Nginx 为例,配置服务器块以指向 Laravel 项目的 public 目录。

1. 创建 Nginx 服务器块文件

sudo nano /etc/nginx/conf.d/laravel.conf

添加以下配置:

server {
    listen 80;
    server_name your_domain.com; # 替换为您的域名或服务器 IP

    root /var/www/html/your-laravel-project/public; # 替换为您的项目路径
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 对于 CentOS 7
        # fastcgi_pass 127.0.0.1:9000; # 对于 CentOS 8 或使用 TCP
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

2. 检查 Nginx 配置并重启

sudo nginx -t

如果没有错误,重启 Nginx 以应用更改:

sudo systemctl restart nginx

步骤五:设置文件和目录权限

确保 Laravel 的 storagebootstrap/cache 目录具有适当的权限,以便 Web 服务器可以写入文件。

sudo chown -R nginx:nginx /var/www/html/your-laravel-project
sudo chmod -R 755 /var/www/html/your-laravel-project
sudo chmod -R 775 /var/www/html/your-laravel-project/storage
sudo chmod -R 775 /var/www/html/your-laravel-project/bootstrap/cache

注意:将 nginx:nginx 替换为您的 Web 服务器用户和组。如果使用 Apache,则可能是 apache:apache

步骤六:测试连接

访问您的域名或服务器 IP 地址,应该会看到 Laravel 的欢迎页面。如果遇到问题,请检查以下内容:

  1. Web 服务器错误日志

    • Nginx 错误日志通常位于 /var/log/nginx/error.log
    sudo tail -f /var/log/nginx/error.log
    
  2. Laravel 日志

    Laravel 的日志文件位于 storage/logs/laravel.log

    tail -f /var/www/html/your-laravel-project/storage/logs/laravel.log
    
  3. 数据库连接

    确保数据库服务器正在运行,并且 Laravel 的 .env 文件中的数据库配置正确无误。

额外建议

  • 使用 HTTPS:为了安全起见,建议为您的网站配置 SSL/TLS 证书。可以使用 Let’s Encrypt 提供的免费证书。

  • 防火墙设置:确保防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量。

    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    
  • 优化 PHP 配置:根据服务器的内存和性能,调整 php.ini 中的设置,例如 memory_limitupload_max_filesize 等。

通过以上步骤,您应该能够在 CentOS 上成功配置 Laravel 项目并连接到数据库。如果在过程中遇到任何问题,请参考 Laravel 和 CentOS 的官方文档,或在相关社区寻求帮助。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe44aAzsKBg9TA1w.html

推荐文章

  • CentOS VNC如何管理用户

    在CentOS系统上管理VNC用户涉及多个步骤,包括安装VNC服务器、配置用户权限、设置用户密码、启动和停止VNC服务等。以下是详细的步骤:
    安装VNC服务器
    ...

  • centos防火墙策略修改

    在CentOS系统中,防火墙策略的修改通常涉及到firewalld服务。以下是一些基本的步骤来修改防火墙策略:
    1. 检查防火墙状态
    首先,检查firewalld服务的状...

  • centos sftp如何监控文件传输

    在CentOS系统中,可以使用多种方法来监控SFTP文件传输。以下是一些常用的方法: 使用auditd进行审计:
    auditd是Linux系统中的一个审计服务,可以用来记录系...

  • centos context如何实现自动化管理

    在CentOS系统中,实现自动化管理可以通过多种方式,包括使用脚本、配置管理工具、自动化部署工具等。以下是一些常见的方法:
    1. 使用Shell脚本
    编写Sh...

  • 如何在Ubuntu中安装Swagger工具

    在Ubuntu中安装Swagger工具,可以按照以下步骤进行:
    方法一:使用Snap包管理器 更新Snap包列表:
    sudo snap refresh 安装Swagger UI:
    sudo sna...

  • centos ssh命令行操作指南

    在CentOS系统中,SSH(Secure Shell)是一种用于远程登录和管理服务器的安全协议。以下是SSH命令行操作的基本指南:
    安装SSH服务
    如果你的CentOS系统没...

  • Nginx日志中如何监控流量

    在Nginx中监控流量可以通过多种方式实现,其中使用nginx-module-vts是一个高效且流行的方法。这个模块允许你实时采集Nginx的多种运行数据,包括连接池水位、流量...

  • 如何用dumpcap解决Debian网络问题

    dumpcap是Wireshark的命令行版本,专门用于网络数据包的捕获和保存。它可以用于网络诊断、安全调试以及分析网络流量等问题。以下是使用dumpcap解决Debian网络问题...