contos7 lnmpa 装多版本php
contos7 lnmpa 装多版本php
背景
由于服务器前期安装了lnmpa php5.4 ,有项目在线运行。
后面开发了一个新项目要放到这个服务器上运行,但要求php版本不能低于7 。
在lnmp.org 官网上找了一下,lnmpa 没有直接安装多版本php的脚本 。 只能自己动手解决了。
1. 上传php7安装包
可以直接到官网下载,或者再lnmp安装包里面找
2. 执行编译php7
解压并进入进入人php安装包,主要注意路径不要覆盖原来的php文件就好,不一定要叫/usr/local/php71,你想把php安装到别目录,可以直接替换/usr/local/php71这个路径成为你自己的路径。
./configure --prefix=/usr/local/php71 --with-config-file-path=/usr/local/php71/etc --with-config-file-scan-dir=/usr/local/php71/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl
3. 安装php
make ZEND_EXTRA_LIBS='-liconv'
make install
4. 在源码包,复制配置文件
cp -R ./sapi/fpm/php-fpm.conf /usr/local/php71/etc/php-fpm.conf
cp php.ini-development /usr/local/php71/lib/php.ini
cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm71
5. 改配置文件
5.1 配置文件:vim /usr/local/php71/etc/php-fpm.conf
[global]
pid = /usr/local/php71/var/run/php-fpm.pid
error_log = /usr/local/php71/var/log/php-fpm.log
log_level = notice
5.2配置文件:vim /usr/local/php71/etc/php-fpm.d/www.conf
listen = /tmp/php71-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
6. 启动php-fpm
/etc/init.d/php-fpm71
6.1 php安装成功查看进程:
ps aux|grep php
执行结果:
root 2161 0.0 0.3 266396 7096 ? Ss 17:00 0:00 php-fpm: master process (/usr/local/php71/etc/php-fpm.conf)
www 2162 0.0 0.3 266396 6500 ? S 17:00 0:00 php-fpm: pool www
www 2163 0.0 0.3 266396 6500 ? S 17:00 0:00 php-fpm: pool www
www 2164 0.0 0.3 266396 6500 ? S 17:00 0:00 php-fpm: pool www
www 2165 0.0 0.3 266396 6500 ? S 17:00 0:00 php-fpm: pool www
www 2166 0.0 0.3 266396 6504 ? S 17:00 0:00 php-fpm: pool www
www 2167 0.0 0.3 266396 6504 ? S 17:00 0:00 php-fpm: pool www
www 2168 0.0 0.3 266396 6504 ? S 17:00 0:00 php-fpm: pool www
www 2169 0.0 0.3 266396 6504 ? S 17:00 0:00 php-fpm: pool www
www 2170 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2171 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2172 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2173 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2174 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2175 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2176 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2177 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2178 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2179 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2180 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
www 2181 0.0 0.3 266396 6508 ? S 17:00 0:00 php-fpm: pool www
root 2245 0.0 0.0 112728 988 pts/0 S+ 17:01 0:00 grep --color=auto php
7. php-fpm 开机启动
vim /etc/rc.local
/etc/init.d/php-fpm71
8. nginx项目配置
server
{
listen 80;
#listen [::]:80;
server_name 2.yunlianip.my 1231232.yunlianip.my;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/2.yunlianip.my/public;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
# tp5 pathinfo 配置
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
## 这里才是关键 -- start
location ~ \.php(.*)$ {
fastcgi_pass unix:/tmp/php71-cgi.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
## 这里才是关键 -- end
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/2.log;
}