真坑啊,准备试验一下php8.0效果咋样,发现他还不支持8.0 阿西吧,然后装了php7.4最高版本的,保留php8.0下次修改完成后使用8.0
环境准备
线上环境 centos8.0+nginx1.8+php8+php7.4+mysql8
线下环境 window10+nginx+php7.4+mysql5.7
首先去官网下载安装包
https://iuok.cn/ 我这里是下载的zip安装包
上传到linux服务器进行处理
运行系统安装上后发现一直报反射类的一个错,然后开始安装php7.4
这是php8的一个依赖,其中有几个是php8必须的,所以在安装php之前先执行一下这个
yum -y install autoconf freetype gd libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel net-snmp-devel libjpeg-devel php-ldap openldap-devel openldap-clients freetype-devel gmp-devel libzip libzip-devel sqlite-devel
php8在安装之前需要先安装一下oniguruma依赖,这个不好下载
安装oniguruma的时候可能没有configure,先执行autogen.sh进行生成configure 然后在执行./configure 进行安装
完成之后进入php的解压文件夹内容进行编译,执行下列代码 意思是指定安装文件位置和开启php的模块
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-opcache --with-pcre-jit --enable-gd --with-jpeg --with-freetype --with-gettext --with-curl --with-openssl --enable-sockets --enable-mbstring --enable-xml --with-zip --with-zlib --with-snmp --with-mhash --enable-ftp --enable-bcmath --enable-soap --enable-shmop --enable-sysvsem --enable-pcntl --with-gmp
如果显示欢迎使用php的话执行 make && make install
安装完成后php就安装好了,需要配置php.ini 把php.ini从一开始解压的那个文件复制过来
cp /mnt/php8.0/php.ini.dev~~ php.ini
把php/etc/内容中带defunt的删掉defunt进行配置,复制一个最好
然后检测php-fpm的语法是否正确
/usr/local/php/sbin/php-fpm -t
安装完php后在下面这个路径中有一个optache.so,配置到php.ini中
/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930
在php.ini中配置
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/opcache.so
设置开机启动
vi ~/.bash_profile
增加代码
alias php=/usr/local/php/bin/php
重载文件
source ~/.bash_profile
nginx设置直接复制到后面就可以了nginx.conf
server{ listen 80; server_name blog.zhoujunfeng.cn; access_log logs/blog.access.log main; root html/blog/public; index index.php index.html; #为了YFtp加的 location /{ if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } location ~ .php$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $1; include fastcgi_params; } location /nginxstatus { stub_status; } }
php和nginx配置完毕
mysql的话直接官网上查看安装信息就可以了
我看的是这个
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
mysql安装上以后,就是配置YFtp了搞了一天
报错信息呢就是令牌验证失败
令牌验证失败的原因是session没有开启,权限不足,没有这个文件
然后接下来就是权限不足导致的,要把你这个项目的文件所有权限都开了,或者都给一个用户,我这里是安装nginx的时候给nginx创建了一个用户,所以直接把所有权限赋值给nginx就可以了。
还有一个错误是报的.env的错误,这个直接把.env删掉就可以了。
最后在附上我的测试地址,就是他
http://blog.zhoujunfeng.cn/