-
使用Nginx(LEMP堆栈)在Ubuntu20.04上安装ProjectSend
本教程将向您展示如何使用Nginx web服务器在Ubuntu 20.04 LTS上安装ProjectSend。 ProjectSend是什么? ProjectSend是一个免费的开源自托管文件共享解决方案。ProjectSend功能: 实时统计 创建客户端组 自我注册和社交登录 自定义电子邮件模板 先决条件 ProjectSend是用PHP编程语言编写的。要学习本教程,首先需要在Ubuntu 20.04上安装LEMP stack。如果您还没有这样做,请查看以下教程。 如何在Ubuntu 20.04上安装LEMP堆栈(Nginx、MariaDB、PHP7.4-FPM) 您可以在家庭服务器或VPS(虚拟专用服务器)上安装ProjectSend。您还需要一个域名,以便以后能够启用HTTPS来加密HTTP流量。我从namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。ProjectSend可以在没有域名的情况下安装,但如果不加密HTTP连接以防止窥探,那么它真的没有意义。如果你真的想修补服务器软件并充分利用它们,我建议你买一个域名。 现在让我们安装ProjectSend。 第一步:在Ubuntu 20.04上下载ProjectSend 登录你的Ubuntu 20.04服务器。然后将ProjectSend zip存档下载到服务器上。撰写本文时,最新的稳定版本是r1295。您可能需要更改版本号。去https://www.projectsend.org/#download查看最新版本。 可以运行以下命令将其下载到服务器上。 wget-O projectsend。拉链https://www.projectsend.org/download/387/ 下载后,使用解压功能提取归档文件。 sudo apt安装解压sudo mkdir-p/usr/share/nginx/projectsend/sudo解压projectsend。zip-d/usr/share/nginx/projectsend/ -d选项指定目标目录。ProjectSend web文件将被提取到/usr/share/nginx/ProjectSend/。然后,我们需要将该目录的所有者更改为www数据,以便web服务器(Nginx)可以写入该目录。 sudo chown www-data:www-data/usr/share/nginx/projectsend/-R 第2步:在MariaDB数据库服务器中为ProjectSend创建数据库和用户 使用以下命令登录MariaDB数据库服务器。由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB根密码。我们只需要在mysql命令前面加上sudo。 sudo mysql 然后为ProjectSend创建一个数据库。本教程将数据库命名为projectsend。你可以用任何你喜欢的名字。 创建数据库projectsend; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户projectsenduser@localhost由“您的密码”标识; 授予此用户在projectsend数据库上的所有权限。 授予projectsend的所有权限。*到projectsenduser@localhost; 刷新权限并退出。 同花顺特权;出口 第3步:配置ProjectSend 转到includes目录。 cd/usr/share/nginx/projectsend/includes/ 复制示例配置文件并将其重命名为sys。配置。php。 sudo cp系统。配置。样品php系统。配置。php 现在使用命令行文本编辑器(如Nano)编辑新的配置文件。 sudo nano sys。配置。php 找到以下几行,将红色文本替换为您在步骤2中创建的数据库名称、用户名和密码。 /**数据库名称*/define('DB_name','Database');/**数据库主机(大多数情况下是localhost)*/define('DB_host','localhost');/**数据库用户名(必须分配给数据库)*/define('DB_USER','username');/**数据库密码*/define('DB_password','password'); 保存并关闭文件。要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。接下来,按Ctrl+X退出。 步骤4:为ProjectSend创建Nginx配置文件 创建一个projectsend。conf文件位于/etc/nginx/conf.d/目录中,带有命令行文本编辑器,如Nano。 sudo nano/etc/nginx/conf.d/projectsend。形态 将以下文本复制并粘贴到文件中。替换projectsend。实例com与您自己的首选子域。不要忘记在DNS区域编辑器中为此子域创建DNS记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;server_name projectsend.example.com;#添加头以服务安全相关头添加_头X-Content-Type-Options nosniff;添加_头X-XSS-Protection“1;mode=block”; 添加标题X-Robots-Tag none;添加标题X-Download-Options noopen;添加_头X-允许-跨域-无策略;添加标题推荐人策略无推荐人;#安装根目录的路径/usr/share/nginx/projectsend/;索引。php索引。html;访问u log/var/log/nginx/projectsend。通道错误u log/var/log/nginx/projectsend。错误位置=/机器人。txt{allow all;log_not_found off;access_log off;}地点~/。著名/极致挑战{allow all;}#设置最大上传大小客户端u最大u正文u大小512M;fastcgi_缓冲区64 4K;#禁用gzip以避免删除ETag头gzip off;#如果您的服务器是使用ngx_pagespeed模块构建的,请取消注释。该模块目前不受支持#页面速度关闭;错误_第403页/core/templates/403。php;错误_第404页/core/templates/404。php;位置/{try_files$uri$uri//index.php;}地点~/。php${include fastcgi_params;fastcgi_split_path_info^(.+/.php)(/.*)$; 试试_files$fastcgi_script_name=404;fastcgi_参数SCRIPT_FILENAME$document_root$fastcgi_SCRIPT_name;fastcgi_参数路径信息$fastcgi_路径信息#避免发送两次安全头fastcgi_param modHeadersAvailable true;fastcgi_参数前控制器_激活真;fastcgi_pass unix:/run/php/php7。4-fpm。短袜fastcgi_截获_错误开启;fastcgi_请求_缓冲关闭;}地点~*/。(?:svg | gif | png | html | ttf | woff | ico | jpg | jpeg)${try_files$uri/index.php$uri$is_args$args;#可选:不登录其他资产访问_注销;} 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要退出,请按Ctrl+X。) 然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 第5步:安装并启用PHP模块 运行以下命令安装ProjectSend所需或推荐的PHP模块。 sudo apt安装imagemagick php Imageick php7。4-常见php7。4-mysql php7。4-fpm php7。4-gd php7。4-json php7。4-卷曲php7。4-zip php7。4-XMLPHP7。4-Mb字符串php7。4-bz2 php7。4-intl php7。4-bcmath php7。4-gmp 第6步:启用HTTPS 现在,通过输入ProjectSend安装的域名,您可以在web浏览器中访问ProjectSend web安装向导。 projectsend。实例com/install/index。php 如果网页无法加载,您可能需要在防火墙中打开端口80。 sudo iptables-I输入-p tcp-dport 80-j接受 还有443端口。 sudo iptables-I输入-p tcp-dport 443-j接受 在输入任何敏感信息之前,我们应该在ProjectSend上启用安全的HTTPS连接。我们可以从Let's Encrypt获得免费的TLS证书。从Ubuntu20.04存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot python3 certbot nginx Python3 certbot nginx是nginx插件。接下来,运行以下命令,使用Nginx插件获取免费的TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;projectsend]受保护。实例通用域名格式 哪里: –nginx:使用nginx验证器和安装程序 –同意:同意让我们加密服务条款 –重定向:通过添加301重定向来强制HTTPS。 –hsts:启用HTTP严格的传输安全性。这可以抵御SSL/TLS剥离攻击。 –装订ocsp:启用ocsp装订。 –电子邮件:用于注册和恢复联系的电子邮件。 -d标志后面是域名列表,以逗号分隔。你最多可以添加100个域名。 你会被问到是否想收到来自EFF(电子前沿基金会)的电子邮件。选择Y或N后,将自动获取并为您配置TLS证书,如下消息所示。 第7步:在Web浏览器中完成安装 现在,您可以使用HTTPS连接访问ProjectSend web安装向导。 要完成安装,您需要给它一个站点名并创建一个管理员帐户。 单击安装按钮,您将能够登录到ProjectSend Web界面。 如何设置项目发送电子邮件通知 如果您的ProjectSend实例将由多人使用,则ProjectSend服务器可以发送事务性电子邮件,例如密码重置电子邮件,这一点很重要。转到选项->;电子邮件通知。您将找到电子邮件服务器设置。有四种发送模式: PHP邮件(基础) SMTP Gmail 发送邮件 如果ProjectSend主机运行SMTP服务器,则可以选择sendmail模式。其他字段留空。 如果要使用在另一台主机上运行的SMTP服务器,请选择SMTP模式并输入SMTP服务器地址和登录凭据,如下所示。选择STARTTLS进行加密。 有关如何设置电子邮件服务器,请查看以下教程。请注意,我强烈建议在全新干净的操作系统上运行iRedMail邮件服务器。在具有其他web应用程序的操作系统上安装iRedMail可能会失败,并可能破坏现有的应用程序。 如何使用iRedMail在Ubuntu20.04上轻松设置功能齐全的邮件服务器 第8步:增加PHP内存限制 默认的PHP内存限制是128MB。ProjectSend建议512MB以获得更好的性能。要更改PHP内存限制,请编辑PHP。ini文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 找到下面这行。(第409行) 内存限制=128M 更改值。 内存限制=512M 保存并关闭文件。或者,您可以运行以下命令来更改值,而无需手动打开文件。 sudo sed-i's/memory_limit=128M/memory_limit=512M/g'/etc/php/7.4/fpm/php。伊尼 然后重新加载PHP-FPM服务,使更改生效。 sudo systemctl重新加载php7。4-fpm 第9步:增加上传文件大小限制 Nginx设置的默认最大上传文件大小限制为1MB。要允许将大型文件上载到ProjectSend服务器,请编辑ProjectSend的Nginx配置文件。 sudo nano/etc/nginx/conf.d/projectsend。形态 我们已经在此文件中设置了最大文件大小,如所示 客户_max_body_尺寸512M; 如果你愿意,你可以改变它,比如1G。 客户最大尺寸为1024M; 保存并关闭文件。然后重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx PHP还设置了上传文件大小的限制。上传的默认最大文件大小为2MB。要增加上传大小限制,请编辑PHP配置文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 找到下面一行(第846行)。 上传最大文件大小=2M 更改值,如下所示: 上传最大文件大小=1024M 保存并关闭文件。或者,您可以运行以下命令来更改值,而无需手动打开文件。 sudo sed-i's/upload_max_filesize=2M/upload_max_filesize=1024M/g'/etc/php/7.4/fpm/php。伊尼 然后重启PHP-FPM。 sudo systemctl重启php7。4-fpm 添加本地DNS条目 建议在ProjectSend服务器上编辑/etc/hosts文件并添加以下条目,这样ProjectSend本身就不必查询公共DNS,这可以提高整体稳定性。如果您的ProjectSend服务器无法解析ProjectSend。实例com主机名,则可能会遇到504网关超时错误。 127.0.0.1 localhost projectsend。实例通用域名格式 /etc/hosts文件中的IP地址可以有多个主机名,因此如果在同一个框中安装了其他应用程序,也可以在同一行中添加其他主机名或子域,如下所示: 127.0.0.1 localhost focus ubuntu projectsend。实例com nextcloud。实例通用域名格式 故障排除提示 如果遇到错误,可以检查以下日志文件之一,以找出问题所在。 Nginx错误日志:/var/log/Nginx/error。日志 ProjectSend虚拟主机的Nginx错误日志:/var/log/Nginx/ProjectSend。错误 收尾 我希望本教程能帮助您在带有Nginx的Ubuntu 20.04服务器上安装ProjectSend。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?