- categories
- >
- WEB
Composer 安装与使用
Flarum 使用 Composer 来管理其依赖包和扩展程序
安装,参考:https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
安装程序脚本将简单地检查一些 php.ini 设置,如果设置不正确,则会发出警告,然后在当前目录中下载最新的 composer.phar。上面的 4 行将按顺序说明:
- 下载安装程序到当前目录
- 验证安装程序 SHA-384,也可以在此处交叉检查
- 运行安装程序
- 删除安装程序
安装成功后将在当前目录下生成composer.phar
使用--version
验证安装是否成功:
$ php composer.phar --version
Composer version 2.7.9 2024-09-04 14:43:28
PHP version 8.3.10 (/usr/lib64/php8.3/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.
安装 flarum
php 需要以下扩展:curl、dom、fileinfo、gd、json、mbstring、openssl、pdo_mysql、tokenizer、zip
Gentoo 系统下编辑package.use
:dev-lang/php fpm curl gd pdo mysql zip
使用 Composer 工具从 Flarum 的 GitHub 仓库下载并安装 Flarum 的最新版本,并将其放在目录 flarum 中:
php composer.phar create-project flarum/flarum flarum/
配置 nginx
如果 conf.d
目录不存在,则创建,并在/etc/nginx/nginx.conf
中添加:
http {
include /etc/nginx/conf.d/*.conf;
}
编辑:/etc/nginx/conf.d/flarum.conf
server {
listen 90;
server_name localhost;
root /home/vv/project/CyberSpirit/forum/flarum/public;
index index.php index.html index.htm;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
include /home/vv/project/CyberSpirit/forum/flarum/.nginx.conf;
}
这段 Nginx 配置用于设置一个 Web 服务器,以支持运行在 localhost
的 Flarum 应用。以下是各部分的详细解释:
server { ... }
:
一个 server 块,表示 Nginx 的一个虚拟主机配置。listen 90;
:
指定服务器监听的端口,这里是90
。浏览器访问时需要在 URL 中指定端口,例如http://localhost:90
。server_name localhost;
:
指定服务器的名称,这里是localhost
。表示此配置处理针对localhost
的请求。root /home/vv/project/CyberSpirit/forum/flarum/public;
:
指定网站的根目录。在这个配置中,所有请求都会从这个路径查找文件。index index.php index.html index.htm;
:
指定默认的索引文件。当访问一个目录时,Nginx 会尝试按照此顺序查找这些文件。location ~ \.php$ { ... }
:
定义一个 location 块,处理以.php
结尾的请求。正则表达式~
表示该匹配为正则匹配。include fastcgi_params;
:
包含 FastCGI 参数配置文件,定义与 FastCGI 通信所需的参数。fastcgi_pass unix:/run/php-fpm.socket;
:
指定 PHP-FPM 服务的地址和端口,通常是127.0.0.1:9000
,这里选择unix:/run/php-fpm.socket
。fastcgi_index index.php;
:
指定默认的 PHP 文件,当请求目录时,Nginx 将尝试使用index.php
。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
:
设置 FastCGI 参数SCRIPT_FILENAME
,告诉 PHP-FPM 处理哪个文件。这里将$document_root
(根目录)与$fastcgi_script_name
(请求的脚本名)组合起来。
include /home/vv/project/CyberSpirit/forum/flarum/.nginx.conf;
:
引入额外的 Nginx 配置文件,可能包含其他配置,如安全设置、压缩、缓存等。
这段配置的总体作用是将所有访问 localhost
的请求(特别是 .php
文件)传递给 PHP-FPM 进行处理,并确保可以正确找到和执行 Flarum 应用的入口文件。
其中/etc/php/fpm-php8.3/fpm.d/www.conf
:
listen = /run/php-fpm.socket
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx
测试nginx
配置是否正确
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载
$ sudo nginx -s reload
打开对应网页:http://localhost:90/
首先修改读写权限
sudo chmod 775 -R flarum
然后更改组权限
chown -R nginx:nginx /path/to/directory
还是存在问题:
2024/10/01 00:01:23 [error] 1751#0: *11 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(/home/vv/project/CyberSpirit/forum/flarum/storage/sessions/zHnFCrDJ9yufNQEG6AZn73r1HX284Fv6Rme6MgYg): Failed to open stream: Permission denied in /home/vv/project/CyberSpirit/forum/flarum/vendor/illuminate/filesystem/Filesystem.php on line 187" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:90"
但是可以发现是 php-fpm 相关的问题,找到对应的配置文件
发现/etc/php/fpm-php8.3/fpm.d/www.conf
user = nobody
group = nobody
修改为
user = nginx
group = nginx
刷新页面,已经能够正常访问
数据库的创建
CREATE DATABASE flarum;
CREATE USER 'flarum'@'localhost' IDENTIFIED BY 'your_passwd';
GRANT ALL PRIVILEGES ON flarum.* TO 'flarum'@'localhost';
FLUSH PRIVILEGES;
更新
php composer.phar update --prefer-dist --no-plugins --no-dev -a --with-all-dependencies
php flarum migrate
php flarum cache:clear
- Valine
- LiveRe
- ChangYan