yum -y install libxml2 libxml2-devel curl-devel libpng-devel freetype-devel libmcrypt-devel libjpeg-develphp
下载页面:http://www.php.net/downloads.phpcss
这里用的是 php-7.0.24.tar.gzhtml
cd /usr/local/src/mysql
tar -xvf php-7.0.24.tar.gznginx
cd php-7.0.24web
./configure --prefix=/usr/local/php --with-mcrypt=/usr/include --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-fpm --enable-ftp --enable-xml --enable-zip --enable-soap --enable-pcntl --enable-shmop --enable-bcmath --enable-shared --enable-mysqlnd --enable-opcache --enable-session --enable-sockets --enable-sysvsem --enable-mbregex --enable-mbstring --enable-gd-native-ttf --enable-inline-optimization --with-gd --with-curl --with-zlib --with-mhash --with-iconv --with-xmlrpc --with-gettext --with-jpeg-dir --with-freetype-dir --with-fpm-user=nginx --with-fpm-group=nginx --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --without-gdbm --without-pear --disable-debug --disable-rpath --disable-fileinfosql
make && make installapache
若./configure报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.vim
yum install -y epel-release
yum install -y libmcrypt-develapi
注:两个不能一块儿安装,由于CentOS6默认的yum源没有 libmcrypt-devel这个包,只能借助epel的yum源,所
以先安装epel,再安装libmcrypt。
cp /usr/local/src/php-7.0.24/php.ini-development /usr/local/php/etc/php.ini
vim /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH
source /etc/profile
vim /usr/local/apache/conf/httpd.conf
DirectoryIndex index.html index.php
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Addtype application/x-httpd-php .php .phtml
service httpd restart
<?php
phpinfo();
访问URL,如:http://192.168.198.119:8080/phpinfo.php
页面显示正常,则配置成功
php-fpm.conf是 php-fpm 进程服务的配置文件
www.conf这是 php-fpm 进程服务的扩展配置文件
cd /usr/local/php/etc
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
编辑www.conf文件,将user和group改为和nginx.conf中的user和group一致(默认是nobody用户和用户组)
vim /usr/local/php/etc/php-fpm.d/www.conf
找到
user = nginx
group = nginx改成
user = nobody
group = nobody
cp /usr/local/src/php-7.0.24/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
vim /usr/local/nginx/conf/nginx.conf
location / {
root /var/www/wwwroot; #指定web根目录
fastcgi_pass 127.0.0.1:9000; #php-fpm的默认端口是9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
service nginx restart
<?php
phpinfo();
访问URL,如:http://192.168.198.119/phpinfo.php
页面显示正常,则配置成功
PIS:从5.3.9开始,php官方加入了一个配置"security.limit_extensions",默认状态下只容许执行扩展名
为".php"的文件,形成了其余类型的文件不支持的问题。因此访问其余类型文件会出现 “Access denied”
修改php-fpm 进程服务的扩展配置文件
vim /usr/local/php/etc/php-fpm.conf
在后面加上一行:
security.limit_extensions = .php .asmx .html .js .css .jpg .jpeg .gif .png .htm
在web目录下添加php文件,如/var/www/wwwroot/test.php
<?php $host = 'localhost'; $user = 'root'; $pass = 'root'; $database = 'mysql'; $sql = 'SELECT * FROM user LIMIT 1'; /*链接PDO*/ try { $dbh = new PDO("mysql:host=$host;dbname=$database", $user, $pass); foreach ($dbh->query($sql) as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "PDO Error: " . $e->getMessage() . "<br/>"; }
访问URL,如:http://192.168.198.119/test.php
页面显示正常,则配置成功
PHP7安装完毕!