由于老站是apache与老版本的php,如今有需求把一些老站合并到同一台服务器上。因为老站没有多少流量 ,占一台服务器确实比较浪费。
老版的代码环境在PHP7是不能够兼容的,大家都知道php7已经不对mysql_系统的函数支持了,全面被弃。没办法只能低版本兼容了。
nginx 与apache 都是web服务,要共存也非常简单。nginx把所有老站请求反向代理到 apache就可以了
比如:
location / {
proxy_pass http://127.0.0.1:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
然后apache只需要listen 7081端口就可以了。
假如我需要反向代理多个站点到apache怎么办,那也非常简单,apache可以listen多个端口,再加一个端口的兼听就行,比如 listen 7080 7081 708....
这可以让老站所有环境不被破坏的无缝迁移了。
php7的编译做个记录,我用的编译参数是:
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-jpeg-dir --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --disable-fileinfo
应该主流的组件都在里面了。
编译后,make && make install
下面需要对php-fpm做一下配置.
cd 到你的PHP7源码文件夹
cp php.ini-production /usr/local/php/etc/php.ini 做一个生产环境的基本配置
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 复制一份到启动项
ln -s /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 做个PHP-FPM配置的软件链接
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
还需要优参数的自己去改了。。。。哈哈
先搞个默认的配置。
添加个环境变量,PHP换成7了。
echo -e '\nexport PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH\n' >> /etc/profile && source /etc/profile
添加到服务里面
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
php-fpm -t (测试一下配置)
到这里,你就可以启动php-fpm。