在CentOS上部署Laravel项目需要完成以下几个步骤:
安装Web服务器(如Nginx或Apache)
安装PHP和必要的PHP扩展
安装MySQL或其他数据库服务器
配置Web服务器以指向Laravel项目的public目录
设置文件和目录权限
配置环境变量
运行Laravel项目的迁移和安装依赖
下面是详细的步骤:
以Nginx为例:
sudo yum install epel-release
sudo yum install nginx
启动Nginx并设置开机启动:
sudo systemctl start nginx
sudo systemctl enable nginx
安装PHP和常用扩展:
sudo yum install php php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
启动PHP-FPM并设置开机启动:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
以MySQL为例:
sudo yum install mysql-server
启动MySQL并设置开机启动:
sudo systemctl start mysqld
sudo systemctl enable mysqld
运行安全设置脚本以配置MySQL:
sudo mysql_secure_installation
编辑Nginx配置文件(通常位于/etc/nginx/conf.d/default.conf
),添加以下内容:
server {
listen 80;
server_name example.com; # 替换为你的域名或公网IP
root /path/to/your/laravel/project/public; # 替换为你的Laravel项目public目录的路径
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
重启Nginx以应用更改:
sudo systemctl restart nginx
设置Laravel项目的存储和缓存目录权限:
sudo chown -R nginx:nginx /path/to/your/laravel/project/storage
sudo chown -R nginx:nginx /path/to/your/laravel/project/bootstrap/cache
在Laravel项目的根目录下创建.env
文件,并根据你的环境配置数据库连接等信息:
APP_NAME=Laravel
APP_ENV=production
APP_KEY=your-app-key
APP_DEBUG=false
APP_URL=http://example.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
进入Laravel项目目录并安装Composer依赖:
cd /path/to/your/laravel/project
composer install
生成应用密钥(如果尚未生成):
php artisan key:generate
运行数据库迁移:
php artisan migrate
完成以上步骤后,你的Laravel项目应该已经成功部署在CentOS上。访问你的域名或公网IP,你应该能看到Laravel项目的欢迎页面。