linux下nginx安装php
把php安装包上传到linux的/usr/local/src
1.解压
1 2 3 4 5 | cd /usr/local/src tar zxvf php-5.6.9.tar.gz cd php-5.6.9 |
新增php7.2.0安装手记
下载地址
链接:https://pan.baidu.com/s/1JpDpVEylcup3ZYB32aEoGQ
提取码:1edc
先安装如下依赖
$ yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
解压php-7.2.0.tar.gz 然后进入目录,编译。命令如下:
1 2 3 | $ tar -zxvf php-7.2.0.tar.gz $ cd php-7.2.0 |
$ ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --with-openssl --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl
【配置PHP】
在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php下,并改名为php.ini:
1 | $ cp php.ini-production /usr/local/php/php.ini |
[可选项] 设置让PHP错误信息打印在页面上
1 | $ vim /usr/local/php/php.ini |
复制启动脚本:
1 2 3 | $ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm $ chmod +x /etc/init.d/php-fpm |
修改php-fpm配置文件:
1 2 3 4 5 | $ cd /usr/local/php/etc $ cp php-fpm.conf. default php-fpm.conf $ vim php-fpm.conf |
1 2 3 4 5 | $ cd php-fpm.d $ cp www.conf. default www.conf $ vim www.conf |
【启动PHP】
1 2 3 4 5 6 7 | $ /etc/init.d/php-fpm start #php-fpm启动命令 $ /etc/init.d/php-fpm stop #php-fpm停止命令 $ /etc/init.d/php-fpm restart #php-fpm重启命令 $ ps -ef | grep php 或者 ps -A | grep -i php #查看是否已经成功启动PHP |
参考:https://www.cnblogs.com/rxbook/p/9106513.html
2.编译安装
1 2 3 4 5 6 7 8 9 10 11 | ./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \ --enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath \ --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \ --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \ --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \ --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar |
错误
1 2 3 4 5 6 7 | checking for cc... no checking for gcc... no 源码编译,提示缺少gcc cc cl.exe 解决方案: yum install -y gcc glibc |
错误1
1 2 3 4 | configure: error: xml2-config not found. Please check your libxml2 installation. 配置:错误:xml2-config不见了。请检查你的libxml2安装。 解决: yum install libxml2 libxml2-devel -y |
错误2
1 2 3 4 | configure: error: Cannot find OpenSSL’s <evp.h> 配置:错误:找不到OpenSSL的< evp.h > 解决: yum install openssl openssl-devel -y |
错误
1 2 3 | error: cURL version 7.10.5 or later is required to compile php with cURL support 原因:php7.0.27以上 curl需要单独安装 解决:yum -y install curl-devel |
错误3
1 2 3 4 | Configure: error: Please reinstall the BZip2 distribution 配置:错误:请重新安装BZip2分布 解决: yum install bzip2 bzip2-devel -y |
错误4
1 2 3 4 | configure: error: jpeglib.h not found. 配置:错误:jpeglib。没有找到。 解决: yum install libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel -y |
错误5
1 2 3 4 5 6 | Configure: error: mcrypt.h not found. Please reinstall libmcrypt. 配置:错误:mcrypt。没有找到。请重新安装libmcrypt。 解决: 安装epel-release源 yum install epel-release -y yum install libmcrypt-devel –y |
最后最重要
1 2 | make make install |
3.拷贝PHP主配置文件
1 | cp php.ini-production /usr/local/etc/php.ini |
2、为php-fpm提供配置文件
1 2 3 4 5 | cd /usr/local/php cp etc/php-fpm.conf. default etc/php-fpm.conf vim etc/php-fpm.conf |
修改 /usr/local/php/etc/php-fpm.d/www.conf 文件
1 2 | user = www-data group = www-data |
如果www-data用户不存在,那么先添加www-data用户,命令行:
1 2 3 | groupadd www-data useradd -g www-data www-data |
配置文件修改
1 2 3 4 5 6 7 8 9 | pm.max_children = 150 pm.start_servers = 8 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pid = /usr/local/php/ var /run/php-fpm.pid |
当nginx、php-fpm、Permission denied:https://blog.csdn.net/dfq737211338/article/details/89176104
配置php可执行
方法一:
打开用户根目录下的:
1 | vi ~/.bash_profile |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH alias php=/usr/local/php/bin/php |
修改后保存
然后执行
1 | source ~/.bash_profile |
测试一下 php -v
方法二:
设置环境变量 :修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php/bin export PATH
然后执行生效命令
source /etc/profile
查看PHP版本信息
php -v
3、启动php-fpm
执行
1 | /usr/local/php/sbin/php-fpm |
停止
1 | pkill php-fpm |
使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
1 | ps aux | grep php-fpm |
3、nginx和php-fpm整合
编辑/usr/local/nginx/nginx.conf
1 | vim /usr/local/nginx/nginx.conf |
修改如下:
红框中“#”号去掉
红框中“#”号去掉
添加红框中内容
改成如下
1 2 3 4 5 6 7 8 9 10 11 | location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } |
重新载入nginx的配置文件:
1 | /usr/loca/nginx/sbin/nginx -s reload |
4、测试php文件
在/usr/local/nginx/html下创建index.php文件,输入如下内容
1 2 3 4 5 | <?php phpinfo(); ?> |
5、浏览器访问
访问http://你的服务器ip/index.php,皆可以见到php信息了。
参考:http://www.cnblogs.com/flywind/p/6019631.html (php-fpm)
附:
如果Loaded Configuration File为none,把php.ini复制一份到Configuration File (php.ini) Path的目录下,重启fpm
cp /usr/local/etc/php.ini /usr/local/php/lib
pkill -9 php-fpm
/usr/local/php/sbin/php-fpm
设置时区,php.ini
;date.timezone =
改为
date.timezone = Asia/Shanghai
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!