购买并配置阿里云ecs,选择靠近用户的地域和centos/ubuntu系统,配置安全组开放80、443、22及3306端口;2. 通过ssh连接服务器,安装nginx或apache、php及扩展、composer和mysql/mariadb;3. 使用ftp或scp上传laravel项目至/var/www/html目录,或通过git clone拉取代码;4. 配置nginx或apache的虚拟主机,指向项目public目录并设置伪静态规则;5. 进入项目目录执行composer install、复制.env文件、生成app_key、配置数据库信息并运行php artisan migrate;6. 设置storage和bootstrap/cache目录权限为www-data:www-data(ubuntu)或apache:apache(centos);7. 重启web服务使配置生效,浏览器访问域名或ip验证部署结果;8. 若nginx伪静态不生效,检查配置语法、root路径、try_files指令、php-fpm socket及文件权限;9. 使用supervisor管理队列,安装后创建配置文件指定artisan queue:work命令、运行用户、进程数和日志路径,再通过supervisorctl加载并启动进程;10. 配置https需申请ssl证书,修改nginx或apache配置启用ssl,设置证书路径并重定向http到https;11. 安全加固包括及时更新系统、使用强密码、禁用非必要服务、配置防火墙、启用fail2ban、使用ssh密钥登录并限制登录ip、安装ids及定期备份数据;所有步骤完成后即可成功部署laravel项目并保障基本安全与功能稳定。

阿里云 ECS 上部署 Laravel 项目,核心在于服务器环境配置、项目上传和伪静态设置。简单来说,就是搭好房子、搬进去、再把门牌号弄对。
解决方案
购买并配置阿里云 ECS
选择合适的地域和可用区,靠近你的用户可以降低延迟。操作系统推荐选择 CentOS 或 Ubuntu,这两个系统社区支持完善,遇到问题容易找到解决方案。配置安全组规则,开放 80 和 443 端口(HTTP 和 HTTPS),以及 22 端口(SSH)。如果需要连接数据库,还需要开放 3306 端口(MySQL)。注意安全,不要开放不必要的端口。通过 SSH 连接到你的 ECS 服务器。推荐使用工具如 Xshell、SecureCRT 或者直接使用阿里云提供的 Web Terminal。
安装必要的软件
安装 Web 服务器 (Nginx 或 Apache)
Nginx (推荐):
sudo yum update # CentOSsudo apt update # Ubuntusudo yum install nginx # CentOSsudo apt install nginx # Ubuntusudo systemctl start nginxsudo systemctl enable nginx
Apache:
sudo yum update # CentOSsudo apt update # Ubuntusudo yum install httpd # CentOSsudo apt install apache2 # Ubuntusudo systemctl start httpdsudo systemctl enable httpd
安装 PHP 和必要的扩展
sudo yum install php php-fpm php-mysqlnd php-gd php-xml php-mbstring # CentOS 7sudo apt install php php-fpm php-mysql php-gd php-xml php-mbstring # Ubuntu
根据 Laravel 的要求,可能还需要安装其他的 PHP 扩展,例如
php-zip
、
php-curl
等。
安装 Composer
curl -sS https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composer
安装 MySQL 或 MariaDB
MySQL:
sudo yum install mysql-server # CentOS 7sudo apt install mysql-server # Ubuntusudo systemctl start mysqldsudo systemctl enable mysqldsudo mysql_secure_installation # 安全配置
MariaDB:
sudo yum install mariadb-server # CentOS 7sudo apt install mariadb-server # Ubuntusudo systemctl start mariadbsudo systemctl enable mariadbsudo mysql_secure_installation # 安全配置
上传 Laravel 项目
使用 FTP 工具 (例如 FileZilla) 或 SCP 命令将你的 Laravel 项目上传到服务器。通常上传到
/var/www/html
目录下。如果项目使用了 Git 进行版本控制,也可以直接在服务器上
git clone
项目。
配置 Web 服务器
Nginx 配置 (推荐):
创建 Nginx 配置文件
/etc/nginx/conf.d/laravel.conf
(文件名可以自定义)。
server { listen 80; server_name your_domain.com; # 替换为你的域名或服务器 IP root /var/www/html/your_project/public; # 替换为你的项目 public 目录 index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本修改 } location ~ /.ht { deny all; }}
重启 Nginx 服务:
sudo systemctl restart nginx
Apache 配置:
修改 Apache 配置文件
/etc/httpd/conf/httpd.conf
(CentOS) 或
/etc/apache2/apache2.conf
(Ubuntu)。
确保
AllowOverride All
指令在
或
块中启用。
在项目根目录下创建或修改
.htaccess
文件,内容如下:
Options -MultiViews -Indexes RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] # Handle Authorization Header RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
重启 Apache 服务:
sudo systemctl restart httpd
(CentOS) 或
sudo systemctl restart apache2
(Ubuntu)
配置 Laravel 项目
进入项目目录:
cd /var/www/html/your_project
安装依赖:
composer install
复制
.env.example
文件并重命名为
.env
:
cp .env.example .env
生成 APP_KEY:
php artisan key:generate
配置数据库连接信息,修改
.env
文件中的
DB_HOST
、
DB_DATABASE
、
DB_USERNAME
和
DB_PASSWORD
。运行数据库迁移:
php artisan migrate
设置文件存储权限:
sudo chown -R www-data:www-data storage bootstrap/cache
(Ubuntu) 或
sudo chown -R apache:apache storage bootstrap/cache
(CentOS)
配置伪静态
Lessie AI
一款定位为「People Search AI Agent」的AI搜索智能体
297 查看详情
伪静态的配置已经在 Web 服务器配置中完成,Nginx 和 Apache 的配置文件都包含了伪静态规则。
访问你的网站
在浏览器中输入你的域名或服务器 IP 地址,如果一切配置正确,你应该能看到你的 Laravel 项目。
Nginx 伪静态配置不生效怎么办?
首先,确认 Nginx 配置文件中的
root
指令指向的是 Laravel 项目的
public
目录。其次,检查
try_files
指令是否正确配置。如果仍然有问题,可以尝试以下方法:
检查 Nginx 配置文件语法错误: 使用
sudo nginx -t
命令检查配置文件是否存在语法错误。检查 PHP-FPM 配置: 确保
fastcgi_pass
指令指向正确的 PHP-FPM socket 文件。检查文件权限: 确保 Nginx 用户 (通常是
www-data
或
nginx
) 对 Laravel 项目的
storage
和
bootstrap/cache
目录具有读写权限。清理浏览器缓存: 有时候浏览器缓存会导致页面显示不正确。
如何使用 Supervisor 管理 Laravel 的队列?
Supervisor 是一个进程管理工具,可以用来监控和管理 Laravel 的队列进程。
安装 Supervisor:
sudo yum install supervisor # CentOSsudo apt install supervisor # Ubuntu
创建 Supervisor 配置文件:
在
/etc/supervisor/conf.d/
目录下创建一个配置文件,例如
laravel-queue.conf
。
[program:laravel-queue]process_name=%(program_name)s_%(process_num)02dcommand=php /var/www/html/your_project/artisan queue:work --sleep=3 --tries=3autostart=trueautorestart=trueuser=www-data ; Ubuntu;user=apache ; CentOSnumprocs=8redirect_stderr=truestdout_logfile=/var/www/html/your_project/storage/logs/queue.logstopwaitsecs=3600
command
指令指定了 Laravel 队列的启动命令。
user
指令指定了运行队列进程的用户。
numprocs
指令指定了启动的队列进程数量。
stdout_logfile
指令指定了队列进程的日志文件。
更新 Supervisor 配置并启动队列进程:
sudo supervisorctl rereadsudo supervisorctl updatesudo supervisorctl start laravel-queue:*
检查队列进程状态:
sudo supervisorctl status
如何配置 HTTPS?
配置 HTTPS 需要申请 SSL 证书,并配置 Web 服务器使用该证书。
申请 SSL 证书:
可以从阿里云、腾讯云等云服务商购买 SSL 证书。也可以使用 Let’s Encrypt 申请免费的 SSL 证书。
配置 Nginx 或 Apache 使用 SSL 证书:
Nginx:
修改 Nginx 配置文件,添加 HTTPS 的配置。
server { listen 80; server_name your_domain.com; return 301 https://$server_name$request_uri; # 将 HTTP 请求重定向到 HTTPS}server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/your/ssl_certificate.pem; # 替换为你的 SSL 证书路径 ssl_certificate_key /path/to/your/ssl_certificate_key.key; # 替换为你的 SSL 证书密钥路径 root /var/www/html/your_project/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } location ~ /.ht { deny all; }}
Apache:
修改 Apache 配置文件,启用 SSL 模块并配置 SSL 证书。
ServerName your_domain.com DocumentRoot /var/www/html/your_project/public SSLEngine on SSLCertificateFile /path/to/your/ssl_certificate.crt # 替换为你的 SSL 证书路径 SSLCertificateKeyFile /path/to/your/ssl_certificate_key.key # 替换为你的 SSL 证书密钥路径 AllowOverride All
重启 Web 服务器:
重启 Nginx 或 Apache 服务,使配置生效。
如何进行服务器安全加固?
服务器安全加固是一个持续的过程,需要不断地更新和调整。以下是一些常见的安全加固措施:
更新系统和软件: 及时更新操作系统和软件,修复安全漏洞。使用强密码: 使用强密码,并定期更换密码。禁用不必要的服务: 禁用不必要的服务,减少攻击面。配置防火墙: 使用防火墙限制网络访问,只允许必要的端口开放。安装入侵检测系统 (IDS): 安装入侵检测系统,监控服务器的安全事件。定期备份数据: 定期备份数据,防止数据丢失。使用 SSH 密钥登录: 使用 SSH 密钥登录,禁用密码登录。限制 SSH 登录 IP: 限制 SSH 登录 IP,只允许特定的 IP 地址登录。配置 Fail2ban: 使用 Fail2ban 防止暴力破解。
部署 Laravel 项目到阿里云 ECS 上可能遇到的问题很多,但只要耐心排查,总能找到解决方案。 记住,遇到问题多查资料,多尝试,不要轻易放弃。
以上就是阿里云 ECS 上部署 Laravel 项目教程(含伪静态配置)的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/809368.html
微信扫一扫
支付宝扫一扫