PHP学习笔记

2023-12-14 11:03:36

一、配置环境

1)安装lnmp

  • 介绍
    LNMP 一键安装包是一个用 Linux Shell 编写的可以为 C entOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS 或独立主机安装 LNMP (Nginx/MySQL/PHP)、LNMPA (Nginx/MySQL/PHP/Apache)、LAMP (Apache/MySQL/PHP) 生产环境的 Shell 程序
  • 命令
wget http://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && LNMP_Auto="y" DBSelect="0" PHPSelect="12" SelectMalloc="1" ./install.sh lnmp

2)安装swoole

①需要提前下载phpiz 5.0.3版本,安装phpiz

  • 介绍
    phpiz是一个运行脚本,主要作用是检测php的环境并在特定的目录生成相应的configure文件。这样,在makeinstall之后,生成的.so文件才会自动加载到php扩展目录下面。
  • 命令
sudo apt-get install php-dev

①切换root用户,安装swoole

tar -zxvf swoole-src-5.0.3.tar.gz


cd swoole-src-5.0.3 && \
phpize && \
./configure && \
make && sudo make install

②编译安装到系统后,需要在php配置文件php.ini添加

extension=swoole.so  --启动swoole扩展
swoole.use_shortname=0  --方便启动Hyperf

但是如果php --ri swoole或php -m看不到swoole,可能是php.ini没配置上(可能安装了多个PHP)

  • 解决方法
    php --ini来定位php.ini的位置
    ③重启php生效swoole
service php-fpm restart

3)安装redis 6.0.16和mariadb(略)

二、启动SWOOLE

1)启动信息和查看扩展情况

用php --ri swoole查看扩展情况

root@sebastian:~/3rd/swoole# php --ri swoole

swoole

Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 5.0.3
Built => Dec 13 2023 18:01:49
coroutine => enabled with boost asm context
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
http2 => enabled
json => enabled
pcre => enabled
zlib => 1.2.11
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
async_redis => enabled

Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => Off => Off
swoole.unixsock_buffer_size => 8388608 => 8388608

2)用swoole启动一个服务

  • 传统的做法
    使用FastCGI启动php-fpm这种形式,绑定9000端口

  • 实例代码
    在这里插入图片描述
    把代码保存程test.php

php test.php  --启动服务

输入对应地址:
在这里插入图片描述
在这里插入图片描述
①echo默认输出到stdout,打印到页面上就是得response->end
②var_dump都会打印在命令行
在这里插入图片描述
③不同进程不会共享全局变量,就是被global修饰的变量

global $i

三、安装运行Hyperf

1)开始安装Hyperf

  • 安装条件
    需要Swoole大于4.5,PHP版本需要大于等于7.4
  • 安装指令
composer create-project hyperf/hyperf-skeleton
  • 修改php.ini
    问题:laravel新建应用报错:The Process class relies on proc_open, which is not
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

或
disable_functions = passthru,system,chroot,chgrp,chown,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

找到proc_open并删除即可

2)开始启动Hyperf

php bin/hyperf.php start

四、

文章来源:https://blog.csdn.net/weixin_43679037/article/details/134976904
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。