PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,它是免费高效开源的。本文介绍了在CentOS 7下源码编译安装PHP7.2,笔者亲自动手安装将安装步骤记录下来,分享给大家。
首先我们需要准备安装所需的依赖包:
# 如果是CentOS系统,运行: yum -y install libxml2 libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libicu-devel libxslt-devel openssl-devel glibc-headers gcc-c++ # Ubuntu系统中,运行命令: apt-get install build-essential install g++
目前PHP最新稳定版是7.2.13,我们可以到php官网上下载安装包:http://php.net/get/php-7.2.13.tar.bz2/from/a/mirror
tar -zxvf php-7.2.13.tar.gz cd php-7.2.13
./configure
这一步非常重要,启用需要的扩展模块,并指定php的安装目录等。配置和编译的时间稍长,一般10分钟左右,请耐心等待。
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --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 --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl
make && make install
这个时候我们还在解压后的源码目录,我们把php.ini拷贝到安装目录下的配置文件目录:
cp php.ini-production /usr/local/php/etc/php.ini
将php-fpm控制脚本加入到/etc/init.d/
下,并给予可执行权限:
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
修改配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf vim /usr/local/php/etc/php-fpm.conf
新建php-fpm.conf文件,加入以下内容:
[global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log log_level = notice [www] listen = /tmp/php-cgi.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www ;pm = dynamic ;pm.max_children = 20 ;pm.start_servers = 10 ;pm.min_spare_servers = 10 ;pm.max_spare_servers = 20 request_terminate_timeout = 100 request_slowlog_timeout = 0 slowlog = var/log/slow.log
保存即可,具体各项参数的意义我们会在接下来的文章中专门讲解。
PHP的启动、停止和重启通过使用php-fpm命令如下:
/etc/init.d/php-fpm start #启动 /etc/init.d/php-fpm stop #停止 /etc/init.d/php-fpm restart #重启 #开机启动 chkconfig php-fpm on
再次报错说www 用户不存在:
[26-Feb-2015 15:57:38] ERROR: [pool www] cannot get uid for user 'www' [26-Feb-2015 15:57:38] ERROR: FPM initialization failed好,那我们新建www 用户组:
groupadd www useradd -g www www 再次启动: /usr/local/php/sbin/php-fpm添加环境变量
安装好php后,我们要想在系统中可以直接使用像php -v
这样的命令的话,需要将php加入到环境变量中:
# 如果之前已经安装过其它版本的PHP,那么就要先删除原版本的php目录,具体操作方法如下: # 先查找php.ini find / -name php.ini # 得出两个ini /usr/local/php/etc/php.ini /etc/php.ini php -i | grep php.ini # 查看PHP加载的是哪个配置文件,这个获取的是系统内的php.ini 的位置。不是网页apache加载的php.ini文件查找一下系统里的PHP目录相关的东西 find / -name php # 这个好像是阿里云默认安装的PHP /usr/bin/php -v # 解决方法:删除 rm -rf /usr/bin/目录下的所有的PHP的东西 # 再环境变量里加上要使用的PHP的路径 # 如果之前未安装过PHP,那就简单如下: vim /etc/profile # 在文档最后,添加: export PATH="/usr/local/php/bin:$PATH" # 保存,退出,然后运行: source /etc/profile # 不报错则成功。
然后运行php -v
就可看到php的版本信息了。
PHP 7.2.5 (cli) (built: May 5 2018 17:43:33) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
回到我们之前的文章:CentOS7使用源码编译安装Nginx。Nginx默认不支持PHP,需要配置好PHP引擎相关设置才行。这里我们先直接修改Nginx.conf配置文件。
---------------------------------------------------------------------------------------------------------------------------------------------------------
CentOS 7使用源码编译安装Nginx
Nginx是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器,也就是说Nginx本身就可以托管网站,进行Http服务处理,也可以作为反向代理服务器使用。本文介绍在CentOS 7下使用源码编译安装Nginx。
1.准备一台干净的centos7服务器,或者虚拟机或者购买的VPS。Nginx是C开发的,建议在 Linux上运行,当然,也可以安装Windows 版本。
2.安装依赖,安装需要gcc环境,所以需要安装gcc;zlib是用来对http包的内容进行gzip压缩的;openssl则是支持https的SSL协议;pcre库是用来匹配正则的,rewrite规则需要它。
yum -y install gcc gcc-c++ make kernel-headers glibc-headers zlib-devel openssl openssl-devel pcre-devel
3.下载最新稳定版的nginx,目前稳定版是1.12.2。官网下载地址:http://nginx.org/en/download.html,下载后将安装包上传到CentOS中。
当然也可以使用wget
命令直接下载到CentOS系统中:
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
4.添加系统用户,我们单独为nginx添加www用户和组。
groupadd www
useradd -s /sbin/nologin -g www www
1.进入下载的安装包目录,解压nginx,进入nginx解压后的目录,配置安装参数:
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
配置中,使用www用户和组,配置了nginx的安装路径为/usr/local/nginx,启用https,gzip模块等等。
执行配置完成会提示如下信息,说明配置成功了。
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
./configure: warning: the "--with-ipv6" option is deprecated
2.执行编译:
make && make install
如果一切顺利就完成编译安装了,
1.启动nginx服务:
/usr/local/nginx/sbin/nginx
我们使用netstat
命令来查看端口侦听情况:
netstat -lntp
我们看到了80端口被nginx在侦听,此时打开浏览器访问:http://您的服务器ip/ 即可看到如下内容就说明nginx已经正常运行起来了。
如果你的服务器启用了防火墙,需要把80端口添加到防火墙例外。如果你买的是阿里云服务器,可以去万网控制台,找到云服务器实例,配置安全组规则,将80端口添加进去即可;或者可以查看如何添加端口到防火墙:CentOS7使用FirewallD管理防火墙
2.重启nginx
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
/usr/local/nginx/sbin/nginx -s quit
/usr/local/nginx/sbin/nginx
3.停止和重新载入nginx配置。
/usr/local/nginx/sbin/nginx –s stop # 停止
/usr/local/nginx/sbin/nginx -s reload # 重载nginx使配置生效
4.测试配置文件是否正常。
/usr/local/nginx/sbin/nginx –t
5.开机自启动。
echo '/usr/local/nginx/sbin/nginx' >> /etc/rc.local
chmod +x /etc/rc.local
本节文章介绍了源码安装Nginx以及如何启动和管理nginx的一些命令。接下来我们会有文章介绍Nginx的日常维护管理,如:Nginx配置优化,让Nginx支持PHP,部署站点(https),Nginx重定向,Nginx Rewrite规则设置,Nginx反向代理配置,Nginx负载均衡配置以及自动化安装配置Nginx等等。
-----------------------------------------------------------------------------------------------------------------------------------------------------------
vim /usr/local/nginx/conf/nginx.conf
在server模块添加如下配置:
location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; }
保存好后,重新启动Nginx使配置生效:
/usr/local/nginx/sbin/nginx -s reload
然后在站点目录下/usr/local/nginx/html创建测试php文件,新建文件t.php,添加测试php内容:
1 2 3 | <?php echo phpinfo(); ?> |
浏览器打开网页,如果看到以下内容,那么恭喜你php安装成功!
评论专区