前情提要
這裡主要記錄一下一些基本操作記錄
這裡我們使用寶塔皮膚安裝,我們需要從軟體商店中準備如下工具
- Nginx
- PHP8 + Swoole4
- Supervisor 管理器 2.2
- iterm2
拉取程式碼
我們這裡用的是 coding
cd /www/wwwroot
git clone git@e.coding.net:dotdotbear/kwh/project.git
cd project
# composer 配置 aliyun
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
# composer 安裝 vendor 包
composer install -vvv
# 出現異常 ? 或
composer install -vvv --ignore-platform-reqs
# 或許這個地方,會出現類似的問題: putenv() has been disabled for security reasons
# 進入php管理介面,開啟禁用函式 刪除對應函式即可
# 配置 Env 配置
cp .env.example .env
Supervisord 安裝與配置
基本上,在寶塔中已經提供了基礎的 Supervisord 服務。可以直接使用它
常用命令
- supervisorctl status // [當前執行服務狀態]
- supervisorctl stop service_name // [停止服務]
- supervisorctl start service_name // [啟動服務]
- supervisorctl restart service_name // [重啟服務]
- supervisorctl reload // [過載配置檔案並重啟]
- supervisorctl reread // [讀取當前執行配置和 program 配置檔案的差異]
- supervisorctl update // [過載配置檔案並重啟]
啟動配置
[program:hyperf]
command=/www/server/php/80/bin/php bin/hyperf.php start
directory=/www/wwwroot/hyperf-project/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/server/panel/plugin/supervisor/log/hyperf.out.log
stderr_logfile=/www/server/panel/plugin/supervisor/log/hyperf.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d
Hyperf 常用函式
獲取 Driver 佇列
/**
* 獲取一個佇列例項
* DateTime: 2021/11/30 9:34 上午
*/
public static function getDriver($driver = 'default')
{
return ApplicationContext::getContainer()->get(DriverFactory::class)->get($driver);
}
獲取 Logger 例項
/**
* 獲取 Logger 例項
* DateTime: 2021/12/3 9:47 上午
* @param string $name
* @return LoggerInterface
*/
public static function get(string $name = 'default'): LoggerInterface
{
return ApplicationContext::getContainer()->get(LoggerFactory::class)->get($name, $name);
}
獲取 Redis 例項
public static function get($app = 'default')
{
$container = ApplicationContext::getContainer();
$redis = $container->get(RedisFactory::class)->get($app);
return $redis;
}
其他問題
如何修改寶塔預設 PHP 版本
ln -sf /www/server/php/74/bin/php /usr/bin/php
putenv() has been disabled for security reasons
進入 php 管理介面,開啟禁用函式, 刪除即可
或者進入對應 php 版本,檢視 disable_functions
版本問題 ?
安裝 PHP8 且 安裝 > Swoole4
可以使用自定義 php 版本執行
/www/server/php/74/bin/php bin/hyperf.php start
/www/server/php/80/bin/php bin/hyperf.php start
composer 問題 ?
# 顯示下載情況
composer install -vvv
# 忽略版本問題
omposer install -vvv --ignore-platform-reqs
# 重新載入 composer 對映檔案
composer dump
swoole 問題 ?
php.ini 配置
swoole.use_shortname = ‘Off’
參考文章
本作品採用《CC 協議》,轉載必須註明作者和本文連結