yaf3.x.x需要php7以上的环境。
第一步:配置php7
找到lnmp安装包的位置
执行命令
./install.sh mphp
这里面,我们选择PHP7.2
此时我们看,就会多一个php的文件夹
# whereis php
php: /usr/bin/php /usr/local/php /usr/local/php7.2
第二步配置php7.2中的yaf模块
没装之前
# /usr/local/php7.2/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zlib
[Zend Modules]
我们可以看到,里面没有yaf模块,也没有redis模块。
下面我们开始安装yaf模块。
- 下载yaf
sudo wget https://github.com/laruence/yaf/archive/yaf-3.0.9.tar.gz
- 解压
sudo tar -zvxf yaf-3.0.9.tar.gz
- 进入,并phpize处理
cd yaf-yaf-3.0.9 && /usr/local/php7.2/bin/phpize
- 编译
./configure --with-php-config=/usr/local/php7.2/bin/php-config
- 安装
make && make install
- 测试一波
make test
- 开启一些函数 shell_exec,proc_get_status,proc_open
vim /usr/local/php7.2/etc/php.ini
- 增加ini配置
extension = "yaf.so"
- 重启lnmp
# lnmp restart
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Stoping LNMP...
Stoping nginx... done
Shutting down MySQL.. SUCCESS!
Gracefully shutting down php-fpm . done
Gracefully shutting down php-fpm . done
Starting LNMP...
Starting nginx... done
Starting MySQL. SUCCESS!
Starting php-fpm done
Starting php-fpm done
此时查看模块
#/usr/local/php7.2/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaf
zlib
[Zend Modules]
我们发现,多了一个yaf
第三步配置php7.2中的redis模块
redis是必须的,很多项目都需要用到
./addons.sh install redis
就这么简单!
# /usr/local/php7.2/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaf
zlib
[Zend Modules]
尝试运行项目
创建enable-php7.2-pathinfo.conf
cp enable-php-pathinfo.conf enable-php7.2-pathinfo.conf
修改内容为
location ~ [^/]\.php(/|$)
{
fastcgi_pass unix:/tmp/php-cgi7.2.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
配置nginx
server
{
listen 80;
#listen [::]:80;
server_name official.caomall.cn;
index index.html index.htm index.php;
root /home/wwwroot/default/official/tiger/public;
#error_page 404 /404.html;
include enable-php7.2-pathinfo.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
access_log /home/wwwlogs/access.official.log;
}
没毛病。环境搭建ok!