在 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.1
或localhost
。
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 的 storage
和 bootstrap/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 的欢迎页面。如果遇到问题,请检查以下内容:
-
Web 服务器错误日志:
- Nginx 错误日志通常位于
/var/log/nginx/error.log
sudo tail -f /var/log/nginx/error.log
- Nginx 错误日志通常位于
-
Laravel 日志:
Laravel 的日志文件位于
storage/logs/laravel.log
tail -f /var/www/html/your-laravel-project/storage/logs/laravel.log
-
数据库连接:
确保数据库服务器正在运行,并且 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_limit
、upload_max_filesize
等。
通过以上步骤,您应该能够在 CentOS 上成功配置 Laravel 项目并连接到数据库。如果在过程中遇到任何问题,请参考 Laravel 和 CentOS 的官方文档,或在相关社区寻求帮助。