Start
이전에 서버에 lamp
환경을 구축했고 nginx로 전환하고 싶습니다. 더 강력한 성능으로
서버 소프트웨어로서 php5를 php7로 업그레이드하고 싶습니다.
nginx 설치에 대해 자세히 설명할 필요가 없습니다. sudo apt-get install nginx
, 수정 ng를 시작하기 전에 아파치 포트. lamp
环境,想换用性能更强的nginx
作为服务器软件,又想将php5升级为php7.
安装nginx无需赘述:sudo apt-get install nginx
,启动ng前修改apache的端口。
安装php7
源码在http://php.net/downloads.php 下载,并解压。
# cd php7*** # ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt=/usr/include --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache # make # make install
为不与5冲突,文件夹都用php7,安装过程中报错的安装响应的依赖。
对接nginx
nginx本身不能处理php脚本,需要发给php解释器处理。nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。
# cp php.ini-production /usr/local/php7/etc/php.ini # cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm # chmod +x /etc/init.d/php7-fpm # cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf # cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
启动php-fpm
# service php7-fpm start
中途如遇到日志文件路径不存在就手动创建并给予写的权限。
# service php7-fpm start Starting php-fpm [07-Apr-2016 11:16:11] ERROR: [pool www] cannot get gid for group 'nobody' [07-Apr-2016 11:16:11] ERROR: FPM initialization failed failed
遇到这个错误时,要添加个nobody组groupadd nobody
php7 설치
http://php.net/downloads.php에서 소스코드를 다운로드하고 압축을 풀어주세요.location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }5번과 충돌하지 않기 위해 모든 폴더는 php7을 사용하며, 설치 과정에서 오류가 발생하는 설치 응답 종속성도 있습니다.